2012-05-17 25 views
10

Estaba escribiendo una aplicación de Android para Android SDK 2.3.3 pero luego me pidieron que la probara en un dispositivo con Android 2.2.1. Así que establecí mi objetivo en 8 en lugar de 10. Pero luego java.util.concurrent.TimeUnit solo tenía la característica Java 1.5 establecida en lugar del conjunto de características Java 1.6/1.7 de java.util.concurrent.TimeUnit. Así que puse la implementación de openjdk 6 de TimeUnit en mi paquete para mi aplicación Android y todo funciona bien.¿Qué versiones de Android SDK admiten la codificación en qué versiones de Java?

¿Alguien sabe dónde puedo obtener documentación que me da un gráfico que me dice, por ejemplo, que cuando se utiliza el SDK oficial, Android 2.2 debe codificarse usando palabras clave/sintaxis/API Java 1.5, Android 2.3. 3 se pueden codificar utilizando palabras clave/sintaxis/API de Java 1.6, etc. ...?

+0

Me parece extraño que Android alguna vez te obligue a usar 1.5, ya que Java 1.6 es anterior a Android. Quizás hay más cosas aquí. – jpaugh

+0

Apuesto a que OpenJDK era solo de hasta 1.5 en ese momento y eso tiene algo que ver con eso. openjdk 7 no fue lanzado hasta el 28/07/2011 –

+0

duplicados: http://stackoverflow.com/q/7535385/324625 y http://stackoverflow.com/q/390482/324625 –

Respuesta

6

Está tratando de ver a Android como un subconjunto de Java que no lo es. Ellos están completamente separados. A pesar de que Android viene de Java, ya se apartó bastante de él y ya no existe una correlación 'de versión' entre los dos.

Lo que puede ver es la documentación de Android. Para cada instrucción/comando/método/propiedades, en la parte superior derecha encontrará el nivel de API al que puede acceder a dicha propiedad.

Al hacer clic en el nivel de la API, accederá a una página que contiene una tabla que traduce el nivel de la API a las versiones de Android.

La manera fácil de saber si se le permite usar una propiedad es usando eclipse y haciendo lo que acaba de hacer: Cambiar el nivel de la API objetivo. Entonces, cualquier llamada a métodos o propiedades que no estén disponibles generará errores fatales.

+1

"y ya no hay correlación entre los dos." Bueno, eso no es verdad? – keyser

+0

@Keyser El punto de Yahel parece ser que no debe intentar mapear versiones de Android a versiones específicas de Java para averiguar qué es compatible, sino que debe verificar directamente la documentación de Android. –

+0

@Keyser: Si te interesa elaborar :) – Yahel

Cuestiones relacionadas