page.title=Recursos de linguagem do Java 8 page.keywords="android N", "Java 8", "Jack" @jd:body
  1. Recursos de linguagem e APIs do Java 8 com suporte
  2. Como ativar os recursos do Java 8 e a cadeia de ferramentas Jack

O Android N introduz o suporte aos recursos de linguagem do Java 8 que podem ser usados ao desenvolver aplicativos direcionados ao Android N. Esta página descreve os novos recursos de linguagem com suporte no Android N Preview, como configurar seu projeto para usá-los e os problemas conhecidos que você poderá encontrar.

Para começar a usar esses recursos, primeiro faça o download e instale o Android Studio 2.1 e o Android N Preview SDK, que inclui a cadeia de ferramentas Jack obrigatória e o Android Plugin for Gradle atualizado. Se você ainda não instalou o Android N Preview SDK, consulte Preparação para desenvolver para o Android N.

Observação: O uso dos novos recursos de linguagem do Java 8 não é obrigatório para desenvolver aplicativos direcionados à plataforma Android N. Se não quiser escrever código com os recursos de linguagem do Java 8, você poderá manter os valores de compatibilidade de origem e destino do seu projeto definidos para o Java 7, mas ainda será necessário compilar com o JDK 8 para desenvolver para a plataforma Android N.

Recursos de linguagem e APIs do Java 8 com suporte

Atualmente, o Android não oferece suporte a todos os recursos de linguagem do Java 8. No entanto, os recursos a seguir agora estão disponíveis para o desenvolvimento de aplicativos direcionados ao Android N Preview:

Observação: Para testar expressões Lambda ou referências de método em versões mais antigas do Android, acesse o arquivo {@code build.gradle} e configure {@code compileSdkVersion} e {@code targetSdkVersion} como 23 ou anterior. Você precisará permitir que a cadeia de ferramentas Jack use esses recursos do Java 8.

Além disso, as seguintes APIs de recursos de linguagem do Java 8 agora estão disponíveis:

Como ativar os recursos do Java 8 e a cadeia de ferramentas Jack

Para usar os novos recursos de linguagem do Java 8, você também deve usar a nova cadeia de ferramentas Jack. Essa nova cadeia de ferramentas Android compila o código-fonte de linguagem Java em um código de bytes dex que pode ser lido no Android, tem o próprio formato de biblioteca {@code .jack} e fornece a maioria dos recursos de uma cadeia de ferramentas em uma só ferramenta: reempacotamento, redução, ofuscação e multidex.

Veja uma comparação entre duas cadeias de ferramentas usadas para compilar arquivos Android DEX:

Configuração do Gradle

Para ativar os recursos de linguagem do Java 8 e o Jack para seu projeto, insira o seguinte no arquivo {@code build.gradle} de nível do módulo:

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

Problemas conhecidos

O Instant Run não funciona com o Jack e será desativado enquanto a nova cadeia de ferramentas estiver em uso.

Como o Jack não gera arquivos de classe intermediária ao compilar um aplicativo, ferramentas que dependem desses arquivos não funcionam com o Jack. Alguns exemplos dessas ferramentas são:

Se encontrar outros problemas ao usar o Jack, envie um relatório de erros.