Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Plug-in do Android para Gradle 2.2.0 (setembro de 2016)
- Dependências:
|
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. |
- 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 arquivo
gradle.properties
. Ao usar a nova ferramenta
de empacotamento, a tarefa zipalignDebug
não ficará disponível. No entanto,
você pode criar uma chamando o método
createZipAlignTask(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 de
buildTypes.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 como false
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 o PackageManager
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
e
applicationIdSuffix
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 como true
.
- 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 DSL
javaCompileOptions.annotationProcessorOptions {}
(em inglês)
no arquivo build.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
}
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
- 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
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-08-30 UTC.
[null,null,["Última atualização 2025-08-30 UTC."],[],[],null,["\u003cbr /\u003e\n\nAndroid Gradle Plugin 2.2.0 (September 2016)\n\nDependencies:\nNew:\n:\n - Uses Gradle 2.14.1, which includes performance improvements and new features, and fixes a security vulnerability that allows local privilege escalation when using the Gradle daemon. For more details, see the [Gradle release notes](https://docs.gradle.org/2.14.1/release-notes).\n - Using the [`externalNativeBuild {}`](https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.ExternalNativeBuild.html) DSL, Gradle now lets you link to your native sources and compile native libraries using CMake or ndk-build. After building your native libraries, Gradle packages them into your APK. To learn more about using CMake and ndk-build with Gradle, read [Add C and C++ Code to Your\n Project](/studio/projects/add-native-code).\n - When you [run a\n build from the command line](/studio/build/building-cmdline), Gradle now attempts to auto-download any missing SDK components or updates that your project depends on. To learn more, read [Auto-download\n missing packages with Gradle](/studio/intro/update#download-with-gradle).\n - A new experimental caching feature lets Gradle speed up build times by pre-dexing, storing, and reusing the pre-dexed versions of your libraries. To learn more about using this experimental feature, read the [Build\n Cache](/studio/build/build-cache) guide.\n - Improves build performance by adopting a new default packaging pipeline which handles zipping, signing, and [zipaligning](/studio/command-line/zipalign) in one task. You can revert to using the older packaging tools by adding `android.useOldPackaging=true` to your `gradle.properties` file. While using the new packaging tool, the `zipalignDebug` task is not available. However, you can create one yourself by calling the `createZipAlignTask(String taskName, File inputFile, File\n outputFile)` method.\n - APK signing now uses [APK Signature Scheme\n v2](/about/versions/nougat/android-7.0#apk_signature_v2) in addition to traditional JAR signing. All Android platforms accept the resulting APKs. Any modification to these APKs after signing invalidates their v2 signatures and prevents installation on a device. To disable this feature, add the following to your module-level `build.gradle` file: \n\n Groovy \n\n ```groovy\n android {\n ...\n signingConfigs {\n config {\n ...\n v2SigningEnabled false\n }\n }\n }\n \n ```\n\n Kotlin \n\n ```kotlin\n android {\n ...\n signingConfigs {\n create(\"config\") {\n ...\n v2SigningEnabled = false\n }\n }\n }\n \n ```\n - For multidex builds, you can now use ProGuard rules to determine which classes Gradle should compile into your app's *main* DEX file. Because the Android system loads the main DEX file first when starting your app, you can prioritize certain classes at startup by compiling them into the main DEX file. After you create a ProGuard configuration file specifically for your main DEX file, pass the configuration file's path to Gradle using [buildTypes.multiDexKeepProguard](https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.BuildType.html#com.android.build.gradle.internal.dsl.BuildType:multiDexKeepProguard). Using this DSL is different from using [`buildTypes.proguardFiles`](https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.BuildType.html#com.android.build.gradle.internal.dsl.BuildType:proguardFiles(java.lang.Object[])), which provides general ProGuard rules for your app and does not specify classes for the main DEX file.\n - Adds support for the `android:extractNativeLibs` flag, which can reduce the size of your app when you install it on a device. When you set this flag to `false` in the [`\u003capplication\u003e`](/guide/topics/manifest/application-element) element of your app manifest, Gradle packages uncompressed and aligned versions of your native libraries with your APK. This prevents [`PackageManager`](/reference/android/content/pm/PackageManager) from copying out your native libraries from the APK to the device's file system during installation and has the added benefit of making delta updates of your app smaller.\n - You can now specify [`versionNameSuffix`](https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.ProductFlavor.html#com.android.build.gradle.internal.dsl.ProductFlavor:versionNameSuffix) and [`applicationIdSuffix`](https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.ProductFlavor.html#com.android.build.gradle.internal.dsl.ProductFlavor:applicationIdSuffix) for product flavors. ([Issue 59614](http://b.android.com/59614))\n\n\nChanges:\n:\n - `getDefaultProguardFile` now returns the default ProGuard files that Android plugin for Gradle provides and no longer uses the ones in the Android SDK.\n - Improved Jack compiler performance and features:\n - Jack now supports Jacoco test coverage when setting [testCoverageEnabled](https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.BuildType.html#com.android.build.gradle.internal.dsl.BuildType:testCoverageEnabled) to `true`.\n - Improved support for annotation processors. Annotation processors on your classpath, such as any `compile` dependencies, are automatically applied to your build. You can also specify an annotation processor in your build and pass arguments by using the [`javaCompileOptions.annotationProcessorOptions {}`](https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.AnnotationProcessorOptions.html) DSL in your module-level `build.gradle` file: \n\n Groovy \n\n ```groovy\n android {\n ...\n defaultConfig {\n ...\n javaCompileOptions {\n annotationProcessorOptions {\n className 'com.example.MyProcessor'\n // Arguments are optional.\n arguments = [ foo : 'bar' ]\n }\n }\n }\n }\n \n ```\n\n Kotlin \n\n ```kotlin\n android {\n ...\n defaultConfig {\n ...\n javaCompileOptions {\n annotationProcessorOptions {\n className = \"com.example.MyProcessor\"\n // Arguments are optional.\n arguments(mapOf(foo to \"bar\"))\n }\n }\n }\n }\n \n ```\n\n\n If you want to apply an annotation processor at compile\n time but not include it in your APK, use the\n `annotationProcessor` dependency scope: \n\n Groovy \n\n ```groovy\n dependencies {\n compile 'com.google.dagger:dagger:2.0'\n annotationProcessor 'com.google.dagger:dagger-compiler:2.0'\n // or use buildVariantAnnotationProcessor to target a specific build variant\n }\n \n ```\n\n Kotlin \n\n ```kotlin\n dependencies {\n implementation(\"com.google.dagger:dagger:2.0\")\n annotationProcessor(\"com.google.dagger:dagger-compiler:2.0\")\n // or use buildVariantAnnotationProcessor to target a specific build variant\n }\n \n ```\n - For a list of parameters you can set, run the following from the command line: \n\n ```\n java -jar /build-tools/jack.jar --help-properties\n ```\n - By default, if the Gradle daemon's heap size is at least 1.5 GB, Jack now runs in the same process as Gradle. To adjust the daemon heap size, add the following to your `gradle.properties` file:\n\n \u003cbr /\u003e\n\n ```\n # This sets the daemon heap size to 1.5GB.\n org.gradle.jvmargs=-Xmx1536M\n ```\n\n \u003cbr /\u003e\n\n\n\u003cbr /\u003e"]]