Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Plug-in Android per Gradle 2.2.0 (settembre 2016)
- Dipendenze:
|
Versione minima |
Versione predefinita |
Note |
Gradle |
2.14.1 |
2.14.1 |
Per scoprire di più, consulta la sezione Aggiornare Gradle. |
Strumenti di compilazione SDK |
23.0.2 |
23.0.2 |
Installa o configura gli strumenti di creazione dell'SDK. |
- Novità:
-
- Utilizza Gradle 2.14.1, che include miglioramenti delle prestazioni
e nuove funzionalità e corregge una vulnerabilità di sicurezza che consente
l'escalation dei privilegi locali quando si utilizza il daemon Gradle. Per maggiori dettagli, consulta le
note di rilascio di Gradle.
- Utilizzando il linguaggio specifico del dominio
externalNativeBuild {}
, Gradle ora ti consente di
collegarti alle tue origini native e compilare librerie native utilizzando
CMake o ndk-build. Dopo aver creato le librerie native, Gradle
le inserisce nel tuo APK. Per scoprire di più sull'utilizzo di CMake e
ndk-build con Gradle, leggi Aggiungere codice C e C++ al tuo
progetto.
- Quando esegui una build dalla riga di comando, Gradle ora tenta di scaricare automaticamente tutti i componenti SDK o gli aggiornamenti mancanti da cui dipende il tuo progetto.
Per saperne di più, leggi Download automatico
dei pacchetti mancanti con Gradle.
- Una nuova funzionalità di memorizzazione nella cache sperimentale consente a Gradle di velocizzare i tempi di compilazione
eseguendo il pre-dexing, l'archiviazione e il riutilizzo delle versioni pre-dexed delle
tue librerie. Per scoprire di più sull'utilizzo di questa funzionalità sperimentale,
leggi la guida Build
Cache.
- Migliora il rendimento della build adottando una nuova pipeline di packaging predefinita che gestisce la compressione, la firma e l'allineamento zip in un'unica attività. Puoi
tornare a utilizzare gli strumenti di creazione dei pacchetti precedenti aggiungendo
android.useOldPackaging=true
al tuo
file gradle.properties
. Quando utilizzi il nuovo strumento
di packaging, l'attività zipalignDebug
non è disponibile. Tuttavia,
puoi crearne uno chiamando il metodo
createZipAlignTask(String taskName, File inputFile, File
outputFile)
.
- La firma dell'APK ora utilizza lo schema di firma dell'APK
v2 oltre alla tradizionale firma JAR. Tutte le piattaforme Android accettano gli APK risultanti. Qualsiasi modifica a questi APK dopo la firma invalida le firme v2 e impedisce l'installazione su un dispositivo. Per disattivare questa funzionalità,
aggiungi quanto segue al file
build.gradle
a livello di modulo:
Trendy
android {
...
signingConfigs {
config {
...
v2SigningEnabled false
}
}
}
Kotlin
android {
...
signingConfigs {
create("config") {
...
v2SigningEnabled = false
}
}
}
- Per le build multidex, ora puoi utilizzare le regole ProGuard per determinare quali
classi Gradle deve compilare nel file DEX principale della tua app. Poiché
il sistema Android carica prima il file DEX principale all'avvio dell'app, puoi
dare la priorità a determinate classi all'avvio compilando il file DEX
principale. Dopo aver creato un file di configurazione ProGuard specifico per il tuo
file DEX principale, passa il percorso del file di configurazione a Gradle utilizzando
buildTypes.multiDexKeepProguard
. L'utilizzo di questo DSL è diverso
dall'utilizzo di
buildTypes.proguardFiles
, che fornisce regole ProGuard generali
per la tua app e non specifica le classi per il file DEX principale.
- Aggiunge il supporto del flag
android:extractNativeLibs
,
che può ridurre le dimensioni dell'app quando la installi su un
dispositivo. Quando imposti questo flag su false
nell'elemento
<application>
del file manifest dell'app, Gradle pacchettizza le versioni non compresse e
allineate delle librerie native con l'APK. In questo modo, PackageManager
non copia le librerie native dall'APK al file system del dispositivo durante l'installazione e si ottiene l'ulteriore vantaggio di ridurre le dimensioni degli aggiornamenti delta dell'app.
- Ora puoi specificare
versionNameSuffix
e
applicationIdSuffix
per le varianti di prodotto. (Problema 59614)
-
Modifiche:
-
-
getDefaultProguardFile
ora restituisce i file ProGuard predefiniti
forniti dal plug-in Android per Gradle e non utilizza più
quelli nell'SDK Android.
- Miglioramento delle prestazioni e delle funzionalità del compilatore Jack:
- Jack ora supporta la copertura dei test Jacoco quando imposti
testCoverageEnabled
su true
.
- Supporto migliorato per i processori di annotazioni. I processori
di annotazioni nel classpath, come le dipendenze
compile
, vengono applicati automaticamente alla build. Puoi
anche specificare un processore di annotazioni nella build e passare
gli argomenti utilizzando il DSL
javaCompileOptions.annotationProcessorOptions {}
nel file
build.gradle
a livello di modulo:
Trendy
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 vuoi applicare un processore di annotazioni in fase di compilazione
ma non includerlo nell'APK, utilizza l'ambito
della dipendenza annotationProcessor
:
Trendy
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
}
Per un elenco dei parametri che puoi impostare, esegui questo comando dalla riga di comando:
java -jar /build-tools/jack.jar --help-properties
- Per impostazione predefinita, se la dimensione dell'heap del daemon Gradle è di almeno 1,5 GB, Jack viene eseguito nello stesso processo di Gradle. Per regolare le dimensioni
dell'heap del daemon, aggiungi quanto segue al tuo
file
gradle.properties
:
# This sets the daemon heap size to 1.5GB.
org.gradle.jvmargs=-Xmx1536M
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-08-30 UTC.
[null,null,["Ultimo aggiornamento 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"]]