¿Es importante la versión de JDK que utilizo en Android Studio?

Sé que puedo elegir la ubicación del SDK en la estructura del proyecto de Android Studio. Estructura del proyecto, ubicación del SDK

Tengo dos preguntas:

  1. ¿Por qué necesitamos JDK cuando ya estamos usando Android SDK? Después de todo, no estamos desarrollando para JVM.

  2. ¿Hay alguna diferencia entre usar JDK 1.6, 1.7 y 1.8?

¿Por qué necesitamos JDK cuando ya estamos usando Android SDK? Después de todo, no estamos desarrollando para JVM.

El proceso de generación de Android depende de varias herramientas del JDK. Consulte la documentación general del sistema de compilación . La primera pieza grande que necesitamos de JDK es javac – todo su código fuente escrito en Java necesita ser compilado antes de que pueda ser convertido al forame de DEX.

Una vez que su código ha sido compilado, dexed y empaquetado en un APK, necesitamos jarsigner para firmar el APK.

¿Hay alguna diferencia entre usar JDK 1.6, 1.7 y 1.8? Eso depende de las características que está utilizando de cada uno. Los proyectos más antiguos que no utilizan funciones Java 7 pueden utilizar Java 6 sin problema. Yo personalmente recomiendo Java 7 para la mayoría de los proyectos modernos. Si puedes usarlo, ¿por qué no?

Hay algunos esfuerzos por ahí para llevar las características de Java 8 a Android, sobre todo gradle-retrolambda . Algunos de estos requieren JDK 8 para compilar correctamente.

Android siempre es compatible con Java 6.

Android ahora es compatible con Java 7 por lo que es el recomendado (ya que KitKat).

Android no es compatible con Java 8 hasta el momento.

Puede especificar Java 7 así en su archivo build.gradle :

 android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } } 

La única diferencia es que la versión de Java (Java 7 añade características, por supuesto) y el hecho de que Android no es compatible con Java 8 período.

EDITAR

En realidad esto fue contestado aquí: ¿Qué versión JDK (Language Level) es necesaria para Android Studio?

  • ¿Por qué no están dibujando mis puntos de vista?
  • Calendario de Android, obtener ID de evento
  • Mediaplayer androide buffer interminable
  • Android Studio DexIndexOverflowException: ID del método no en
  • Evitar Android volver a agregar automáticamente mi fragmento en el cambio de orientación
  • Mantener sesión entre llamadas HttpUrlConnection (Native / Webview)
  • FTPClient Subiendo archivo = SocketException: Conexión restablecida
  • API de Google Maps Android - NullPointerException - setBoundsInParent
  • Camera java.lang.RuntimeException: setParameters ha fallado
  • Android Studio 2.2 Error NullPointerException
  • Cómo obtener rápidamente el ancho y la altura de TextView utilizando Paint.getTextBounds ()?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.