Plug-in Android pour Gradle, révision 1.5.0 (novembre 2015)

Dépendances :
  • Gradle 2.2.1 ou version ultérieure.
  • Build Tools version 21.1.1 ou supérieure.
Remarques générales :
  • Intégration du plug-in de liaison de données au plug-in Android pour Gradle. Pour l'activer, ajoutez le code suivant à chaque fichier build.gradle par projet qui utilise le plug-in :
  • android {
        dataBinding {
            enabled = true
        }
    }
            
    android {
        dataBinding {
            enabled = true
        }
    }
            
  • Ajout d'une nouvelle API Transform pour permettre aux plug-ins tiers de manipuler les fichiers .class compilés avant qu'ils soient convertis en fichiers .dex. L'API Transform simplifie l'injection de manipulations de classe personnalisées tout en offrant plus de flexibilité par rapport à ce que vous pouvez manipuler. Pour intégrer une API Transform dans un build, créez une nouvelle classe intégrant l'une des interfaces Transform, puis enregistrez-la avec android.registerTransform(theTransform) ou android.registerTransform(theTransform, dependencies). Il n'est pas nécessaire de relier les tâches ensemble. Notez les points suivants à propos de l'API Transform :
    • Une API Transform peut s'appliquer à un ou plusieurs des éléments suivants : le projet, les sous-projets et les bibliothèques externes actuels.
    • Une API Transform doit être enregistrée globalement ; elle s'adapte donc à toutes les variantes.
    • Le traitement de code interne, via la bibliothèque de couverture de code Java (JaCoCo), ProGuard et MultiDex, utilise désormais l'API Transform. Cependant, le kit de compilation Java Android (Jack) n'utilise pas cette API : seul le chemin de code javac/dx le fait.
    • Gradle exécute les transformations dans cet ordre : JaCoCo, plug-ins tiers, ProGuard. L'ordre d'exécution des plug-ins tiers correspond à celui des transformations ajoutées par les plug-ins tiers. Les développeurs de plug-ins tiers ne peuvent contrôler l'ordre d'exécution des transformations via une API.
  • Le getter dex a été abandonné dans la classe ApplicationVariant. Vous ne pouvez plus accéder à la tâche Dex via l'API des variantes, car elle a été effectuée via une transformation. Il n'existe actuellement aucun remplacement pour contrôler le processus DEX.
  • Correction de la compatibilité incrémentielle pour les composants.
  • Amélioration de la compatibilité avec MultiDex, désormais disponible pour les projets de test. Les tests ont désormais automatiquement la dépendance de com.android.support:multidex-instrumentation.
  • Ajout de la possibilité d'abandonner correctement un build Gradle et de signaler la cause de l'erreur sous-jacente lorsque le build Gradle appelle des tâches asynchrones et que le processus du nœud de calcul échoue.
  • Ajout de la possibilité de configurer une interface binaire d'application (ABI) spécifique dans des variantes en contenant plusieurs.
  • Ajout de la prise en charge d'une liste de numéros de série d'appareils séparés par une virgule pour la variable d'environnement ANDROID_SERIAL au moment d'installer ou d'exécuter des tests.
  • Correction d'un échec d'installation sur les appareils équipés d'Android version 5.0 (niveau 20 d'API) ou supérieure si le nom de l'APK contient une espace.
  • Correction de divers problèmes liés au résultat d'erreur de l'outil Android Asset Packaging Tool (AAPT).
  • Ajout de la prise en charge de l'instrumentation incrémentielle JaCoCo pour des compilations incrémentielles plus rapides. Le plug-in Android pour Gradle appelle maintenant directement l'instrumentation JaCoCo. Pour forcer une version plus récente de l'instrument JaCoCo, vous devez l'ajouter en tant que dépendance du script de build.
  • Correction de compatibilité de JaCoCo de manière à ignorer les fichiers qui ne sont pas des classes.
  • Ajout de la prise en charge de la fonction drawable vectoriel pour générer des fichiers PNG au moment de la compilation afin d'assurer la rétrocompatibilité. Le plug-in Android pour Gradle génère des fichiers PNG pour chaque drawable vectoriel trouvé dans un répertoire de ressources qui ne précise pas de version d'API, ou qui indique un attribut android:minSdkVersion de 20 ou inférieur dans l'élément <uses-sdk> du fichier manifeste de l'application. Vous pouvez définir des densités PNG à l'aide de la propriété generatedDensities dans les sections defaultConfig ou productFlavor d'un fichier build.gradle.
  • Ajout du partage de la simulation de android.jar, que le plug-in ne génère qu'une seule fois et utilise pour les tests unitaires. Plusieurs modules, comme app et lib, peuvent désormais le partager. Supprimez $rootDir/build pour le générer à nouveau.
  • Modification du traitement des ressources Java avant les tâches d'obscurcissement plutôt que pendant l'empaquetage de l'APK. Cette modification permet aux tâches d'obscurcissement de pouvoir adapter les ressources Java en fonction de l'obscurcissement des packages.
  • Correction d'un problème lié à l'utilisation du code Java Native Interface (JNI) dans le plug-in de bibliothèque expérimentale.
  • Ajout de la possibilité de définir la version de la plate-forme séparément de l'attribut android:compileSdkVersion dans le plug-in de la bibliothèque expérimentale.