page.title=Funciones del lenguaje Java 8 page.keywords="android N", "Java 8", "Jack" @jd:body
  1. Funciones y API admitidas del lenguaje Java 8
  2. Habilitar funciones de Java 8 y del conjunto de herramientas Jack

En Android N se ofrece compatibilidad con funciones del idioma Java 8 que puedes usar al desarrollar aplicaciones orientadas a Android N. En esta página se describen las funciones de idioma compatibles con la Android N Preview, también la manera adecuada de configurar tu proyecto para usarlas y muchos problemas conocidos que puedes experimentar.

Para comenzar a usar estas funciones, debes descargar y configurar Android Studio 2.1 y el Android N Preview SDK, en el que se incluyen el conjunto de herramientas Jack y el complemento de Android para Gradle. Si aún no instalaste el Android N Preview SDK, consulta Configuración para desarrollar con Android N.

Nota: No es obligatorio usar las nuevas funciones del lenguaje Java 8 para desarrollar aplicaciones orientadas a la plataforma de Android N. Si no deseas escribir código con funciones del lenguaje Java 8, puedes mantener los valores de compatibilidad de origen y destino de tu proyecto en Java 7, pero debes usar JDK 8 para crear la compilación en función de la plataforma de Android N.

Funciones y API admitidas del lenguaje Java 8

Actualmente, Android no admite todas las funciones del lenguaje Java 8. Sin embargo, las siguientes características ahora se encuentran disponibles para el desarrollo de aplicaciones orientadas a la Android N Preview:

Nota: Para probar expresiones Lambda y métodos de referencia en versiones anteriores de Android, accede al archivo {@code build.gradle} y fija {@code compileSdkVersion} y {@code targetSdkVersion} en 23 o un valor inferior. Tendrás que habilitar la cadena de herramientas Jack para usar estas funciones de Java 8.

A su vez, las siguientes API de funciones del lenguaje Java 8 ahora se encuentran disponibles:

Habilitar funciones de Java 8 y del conjunto de herramientas Jack

Para usar las nuevas funciones del lenguaje Java 8, también debes usar el nueva conjunto de herramientas Jack. Este nueva conjunto de herramientas de Android permite compilar fuentes del lenguaje Java en código de bytes dex legible a través de Android, también tiene su propio formato de biblioteca {@code .jack} y proporciona la mayoría de las funciones de conjunto de herramientas como parte de una única herramienta: reempaquetado, reducción, alteración y MultiDex.

A continuación, se muestra una comparación de los conjuntos de herramientas empleados para generar archivos DEX de Android:

Configuración de Gradle

Si deseas habilitar las funciones del lenguaje Java 8 y de Jack para tu proyecto, escribe lo siguiente en tu archivo de nivel de módulo {@code build.gradle}:

android {
  ...
  defaultConfig {
    ...
    jackOptions {
      enabled true
    }
  }
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}

Problemas conocidos

Actualmente, Instant Run no funciona con Jack y permanecerá deshabilitado cuando se use el nuevo conjunto de herramientas.

Debido a que Jack no genera archivos de clase intermedia al compilar una aplicación, las herramientas que dependen de estos archivos actualmente no funcionan con Jack. Algunos ejemplos de estas herramientas:

Si experimentas otros problemas al usar Jack, envía un error.