2012-05-17 17 views
10

Stavo scrivendo un'app Android per Android SDK 2.3.3 ma poi mi è stato chiesto di testarlo su un dispositivo con Android 2.2.1. Quindi ho impostato il target su 8 anziché su 10. Ma java.util.concurrent.TimeUnit aveva solo la funzionalità Java 1.5 invece del set di funzionalità Java 1.6/1.7 di java.util.concurrent.TimeUnit. Così ho messo l'implementazione openjdk 6 di TimeUnit nel mio pacchetto per la mia app per Android e tutto funziona perfettamente.Quali versioni di Android SDK supportano la codifica in quali versioni di Java?

Qualcuno sa dove posso trovare una certa documentazione che mi dà un grafico che mi dice, per esempio, che quando si utilizza l'SDK ufficiale, Android 2.2 deve essere codificato utilizzando Java 1.5 parole chiave/sintassi/API, Android 2.3. 3 può essere codificato usando le parole chiave/sintassi/API Java 1.6, ecc ...?

+0

Mi sembra strano che Android ti obbliga a utilizzare 1.5, poiché Java 1.6 è più vecchio di Android. Forse c'è di più in corso qui. – jpaugh

+0

Scommetto che openjdk era solo fino a 1.5 al momento e che ha qualcosa a che fare con esso. openjdk 7 non è stato rilasciato fino al 2011/07/28 –

+0

duplicati: http://stackoverflow.com/q/7535385/324625 e http://stackoverflow.com/q/390482/324625 –

risposta

6

Stai cercando di guardare Android come un sottoinsieme di Java che non lo è. Sono completamente separati. Anche se Android proviene da Java, ne è uscito parecchio e non c'è più alcuna correlazione "versione-saggio" tra i due.

Quello che si può vedere è la documentazione di Android. Per ogni istruzione/comando/metodo/proprietà, in alto a destra troverai il livello API a cui puoi accedere a detta proprietà.

Facendo clic sul livello API si accede a una pagina che contiene una tabella che traduce il livello API per le versioni di Android.

Il modo semplice per scoprire se è consentito utilizzare una proprietà è utilizzare eclipse e fare ciò che si è appena fatto: modificare il livello API api. Quindi qualsiasi chiamata a metodi o proprietà che non sono disponibili genererà errori fatali.

+1

"e non c'è più alcuna correlazione tra i due." beh, questo non è vero? – keyser

+0

@Keyser Il punto di Yahel sembra essere che non dovresti provare a mappare le versioni di Android a specifiche versioni java per scoprire cosa è supportato, ma dovresti controllare direttamente la documentazione di Android. –

+0

@Keyser: Se ti interessa elaborare :) – Yahel

Problemi correlati