page.title=Recursos de linguagem do Java 8 page.keywords="android N", "Java 8", "Jack" @jd:body
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.
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:
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:
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 } }
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.