Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Plug-in Android Gradle 2.2.0 (septembre 2016)
- Dépendances :
- Nouveau :
-
- Utilise Gradle 2.14.1, qui inclut des améliorations de performances et de nouvelles fonctionnalités, et corrige une faille de sécurité qui permet l'élévation des privilèges locaux lorsque le daemon de Gradle est utilisé. Pour en savoir plus, consultez les notes de version de Gradle.
- Grâce au DSL
externalNativeBuild {}
, Gradle vous permet désormais d'associer vos sources natives et de compiler des bibliothèques natives à l'aide de CMake ou de ndk-build. Une fois vos bibliothèques natives compilées, Gradle les empaquette dans votre APK. Pour en savoir plus sur l'utilisation de CMake et de ndk-build avec Gradle, consultez Ajouter du code C et C++ à votre projet.
- Lorsque vous exécutez un build à partir de la ligne de commande, Gradle essaie maintenant de télécharger automatiquement les mises à jour ou composants SDK dont votre projet a besoin.
Pour en savoir plus, consultez Télécharger automatiquement les packages manquants avec Gradle.
- Une nouvelle fonctionnalité expérimentale de mise en cache permet à Gradle réduire la durée de compilation en convertissant vos bibliothèques au format .dex, en les stockant et en réutilisant les versions converties. Pour en savoir plus sur l'utilisation de cette fonctionnalité expérimentale, consultez le guide concernant le cache de compilation.
- Améliore les performances de compilation en adoptant un nouveau pipeline de packaging par défaut qui traite la compression ZIP, la signature et l'alignement ZIP dans une seule tâche. Vous pouvez revenir à l'utilisation des anciens outils de packaging en ajoutant
android.useOldPackaging=true
à votre fichier gradle.properties
. Lorsque vous utilisez le nouvel outil de packaging, la tâche zipalignDebug
n'est pas disponible. Cependant, vous pouvez en créer une vous-même en appelant la méthode createZipAlignTask(String taskName, File inputFile, File
outputFile)
.
- En plus de la signature JAR traditionnelle, la signature APK utilise désormais APK Signature Scheme v2. Toutes les plates-formes Android acceptent les APK obtenus. Toute modification de ces APK après signature invalide leurs signatures v2 et empêche leur installation sur un appareil. Pour désactiver cette fonctionnalité, ajoutez ce qui suit à votre fichier
build.gradle
au niveau du module :
Groovy
android {
...
signingConfigs {
config {
...
v2SigningEnabled false
}
}
}
Kotlin
android {
...
signingConfigs {
create("config") {
...
v2SigningEnabled = false
}
}
}
- Pour les builds multidex, vous pouvez désormais utiliser les règles ProGuard pour déterminer les classes que Gradle doit compiler dans le fichier DEX principal de votre application. Étant donné que le système Android charge d'abord le fichier DEX principal au démarrage de votre application, vous pouvez donner la priorité à certaines classes au démarrage en les compilant dans le fichier DEX principal. Après avoir créé un fichier de configuration ProGuard spécifiquement pour votre fichier DEX principal, transmettez le chemin d'accès du fichier de configuration à Gradle avec
buildTypes.multiDexKeepProguard
. L'utilisation de ce DSL est différente de celle de buildTypes.proguardFiles
, qui fournit des règles ProGuard générales pour votre application et ne précise pas de classes pour le fichier DEX principal.
- Ajout de la prise en charge de l'indicateur
android:extractNativeLibs
, qui peut réduire la taille de votre application lorsque vous l'installez sur un appareil. Lorsque vous définissez cet indicateur sur false
dans l'élément <application>
du fichier manifeste de votre application, Gradle empaquette les versions non compressées et alignées de vos bibliothèques natives avec votre APK Cela évite que PackageManager
ne copie vos bibliothèques natives de l'APK vers le système de fichiers de l'appareil au moment de l'installation, et présente en outre l'avantage de réduire la taille des mises à jour delta de votre application.
- Vous pouvez à présent spécifier
versionNameSuffix
et applicationIdSuffix
pour les types de produit. (Problème 59614)
-
Modifications :
-
-
getDefaultProguardFile
renvoie désormais les fichiers ProGuard par défaut fournis par le plug-in Android pour Gradle et n'utilise plus ceux du SDK Android.
- Amélioration des performances et des fonctionnalités du compilateur Jack :
- Jack prend désormais en charge la couverture de test Jacoco lorsque vous définissez
testCoverageEnabled
sur true
.
- Prise en charge améliorée des processeurs d'annotations. Les processeurs d'annotations sur votre classpath, tels que les dépendances
compile
, sont automatiquement appliqués à votre build. Vous pouvez également spécifier un processeur d'annotations dans votre build et transmettre des arguments à l'aide du DSL javaCompileOptions.annotationProcessorOptions {}
dans votre fichier build.gradle
au niveau du module :
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"))
}
}
}
}
Si vous souhaitez appliquer un processeur d'annotations au moment de la compilation, sans l'inclure dans votre APK, utilisez le champ d'application de la dépendance 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
}
Pour obtenir la liste des paramètres que vous pouvez définir, exécutez la commande suivante depuis la ligne de commande :
java -jar /build-tools/jack.jar --help-properties
- Par défaut, si la taille du tas de mémoire du daemon de Gradle est d'au moins 1,5 Go, Jack s'exécute désormais dans le même processus que Gradle. Pour ajuster la taille du tas de mémoire du daemon, ajoutez les éléments suivants à votre fichier
gradle.properties
:
# This sets the daemon heap size to 1.5GB.
org.gradle.jvmargs=-Xmx1536M
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/08/27 (UTC).
[null,null,["Dernière mise à jour le 2025/08/27 (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"]]