Plug-in do Android para Gradle 2.2.0 (setembro de 2016)
- Dependências:
- Novidade:
-
- Usa o Gradle 2.14.1, que inclui melhorias de desempenho e novos recursos, além de corrigir uma vulnerabilidade de segurança que permite o escalonamento de privilégios locais ao usar o daemon do Gradle. Para ver mais detalhes, consulte as notas da versão do Gradle (em inglês).
- Com o uso da DSL
externalNativeBuild {}
, o Gradle agora permite a vinculação a origens nativas e a compilação de bibliotecas nativas usando o CMake ou o ndk-build. Depois de criar suas bibliotecas nativas, o Gradle as empacota no seu APK. Para saber mais sobre como usar o CMake e o ndk-build com o Gradle, leia Adicionar código C e C++ ao seu projeto. - Quando você executa um build na linha de comando, o Gradle agora tenta fazer o download automático de todos os componentes ou atualizações do SDK ausentes de que seu projeto depende. Para saber mais, leia Download automático de pacotes ausentes com o Gradle.
- Um novo recurso experimental de armazenamento em cache permite que o Gradle acelere o tempo de build ao fazer a pré-dexação, o armazenamento e a reutilização das versões pré-dexadas das bibliotecas. Para saber mais sobre como usar esse recurso experimental, leia o guia Cache de build.
- Melhora o desempenho do build adotando um novo pipeline
de empacotamento padrão que cuida da compactação, assinatura e zipaligning em uma tarefa. Você
pode voltar a usar as ferramentas de empacotamento anteriores adicionando
android.useOldPackaging=true
ao arquivogradle.properties
. Ao usar a nova ferramenta de empacotamento, a tarefazipalignDebug
não ficará disponível. No entanto, você pode criar uma chamando o métodocreateZipAlignTask(String taskName, File inputFile, File outputFile)
. - A assinatura do APK agora usa o Esquema de assinatura de APK
v2, além da assinatura JAR tradicional. Todas as plataformas Android aceitam os
APKs resultantes. Qualquer modificação nesses APKs, após a assinatura, invalida as
assinaturas v2 e impede a instalação em dispositivos. Para desativar esse recurso,
adicione o seguinte ao seu arquivo
build.gradle
no módulo:Groovy
android { ... signingConfigs { config { ... v2SigningEnabled false } } }
Kotlin
android { ... signingConfigs { create("config") { ... v2SigningEnabled = false } } }
- Para builds multidex, agora você pode usar as regras do ProGuard para determinar quais
classes o Gradle precisa compilar no arquivo DEX principal do app. Como
o sistema Android carrega primeiro o arquivo DEX principal ao iniciar seu app, você
pode priorizar determinadas classes na inicialização, compilando-as no arquivo
DEX principal. Depois de criar um arquivo de configuração do ProGuard especificamente para seu
arquivo DEX principal, transmita o caminho do arquivo de configuração para o Gradle usando
buildTypes.multiDexKeepProguard
. O uso dessa DSL é diferente do uso debuildTypes.proguardFiles
(em inglês), que fornece regras gerais do ProGuard para o app e não especifica classes para o arquivo DEX principal. - Foi adicionado suporte à flag
android:extractNativeLibs
, que pode reduzir o tamanho do app quando você o instala em um dispositivo. Quando você configura essa flag comofalse
no elemento<application>
do manifesto do app, o Gradle empacota as versões descompactadas e alinhadas das suas bibliotecas nativas com seu APK. Isso impede que oPackageManager
copie as bibliotecas nativas do APK para o sistema de arquivos do dispositivo durante a instalação, além de oferecer o benefício de diminuir as atualizações delta do seu app. - Agora você pode especificar
versionNameSuffix
eapplicationIdSuffix
para variações de produto (problema 59614).
- Mudanças:
-
-
O
getDefaultProguardFile
agora retorna os arquivos do ProGuard padrão fornecidos pelo Plug-in do Android para Gradle e não usa mais os que estão no SDK do Android. - Melhoria no desempenho e nos recursos do compilador Jack:
- Agora, o Jack oferece suporte à cobertura de teste Jacoco quando
testCoverageEnabled
é configurado comotrue
. - O suporte a processadores de anotações foi melhorado. Os processadores de anotações no seu caminho de classe, como as dependências
compile
, são aplicados automaticamente à build. Você também pode especificar um processador de anotação no seu build e transmitir argumentos usando a DSLjavaCompileOptions.annotationProcessorOptions {}
(em inglês) no arquivobuild.gradle
no módulo:Groovy
android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className 'com.example.MyProcessor' // Arguments are optional. arguments = [ foo : 'bar' ] } } } }
Kotlin
android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className = "com.example.MyProcessor" // Arguments are optional. arguments(mapOf(foo to "bar")) } } } }
Se você quiser aplicar um processador de anotações no tempo de compilação, sem o incluir no APK, use o escopo de dependência
annotationProcessor
:Groovy
dependencies { compile 'com.google.dagger:dagger:2.0' annotationProcessor 'com.google.dagger:dagger-compiler:2.0' // or use buildVariantAnnotationProcessor to target a specific build variant }
Kotlin
dependencies { implementation("com.google.dagger:dagger:2.0") annotationProcessor("com.google.dagger:dagger-compiler:2.0") // or use buildVariantAnnotationProcessor to target a specific build variant }
- Por padrão, se o tamanho de heap do daemon Gradle for de pelo menos 1,5
GB, o Jack vai ser executado no mesmo processo que o Gradle. Para ajustar o
tamanho de heap do daemon, adicione o seguinte ao seu arquivo
gradle.properties
:# This sets the daemon heap size to 1.5GB. org.gradle.jvmargs=-Xmx1536M
Para ver uma lista de parâmetros que podem ser configurados, execute o seguinte na linha de comando:
java -jar /build-tools/jack.jar --help-properties
- Agora, o Jack oferece suporte à cobertura de teste Jacoco quando
-
O
Versão mínima | Versão padrão | Observações | |
---|---|---|---|
Gradle | 2.14.1 | 2.14.1 | Para saber mais, consulte Como atualizar o Gradle. |
Ferramentas de build do SDK | 23.0.2 | 23.0.2 | Instale ou configure as Ferramentas de build do SDK. |