Versions antérieures

Vous trouverez ci-dessous les notes de version d'Android Studio 3.6 et versions antérieures, ainsi que du plug-in Android Gradle 3.6.0 et versions antérieures.

Versions antérieures d'Android Studio

3.6 (février 2020)

Android Studio 3.6 est une version majeure qui comprend plusieurs nouvelles fonctionnalités et améliorations.

Nous tenons à remercier tous les contributeurs de la communauté qui nous ont aidés à développer cette version.

3.6.3 (avril 2020)

Cette mise à jour mineure inclut plusieurs corrections de bugs. Pour consulter la liste des principales corrections de bugs, consultez l'article correspondant sur le blog des mises à jour des versions.

3.6.2 (mars 2020)

Cette mise à jour mineure inclut plusieurs corrections de bugs. Pour consulter la liste des principales corrections de bugs, consultez l'article correspondant sur le blog des mises à jour des versions.

3.6.1 (février 2020)

Cette mise à jour mineure inclut plusieurs corrections de bugs. Pour consulter la liste des principales corrections de bugs, consultez l'article correspondant sur le blog des mises à jour des versions.

Outils de conception

Cette version d'Android Studio inclut des mises à jour de plusieurs outils de conception, tels que l'éditeur de mise en page et le gestionnaire de ressources.

Vue fractionnée et zoom dans les éditeurs de conception

La vue fractionnée affiche à la fois les vues de conception et de texte

Les mises à jour suivantes apportées aux éditeurs de conception visuelle sont incluses dans cette version :

  • Les éditeurs de conception, tels que l'éditeur de mise en page et l'éditeur de navigation, proposent à présent une vue Split (Fractionner) qui permet de visualiser, en même temps, les affichages Project (Projet) et Code de votre UI. En haut à droite de la fenêtre de l'éditeur, trois boutons  icônes d'affichage permettent maintenant d'activer/de désactiver les options d'affichage :

    • Pour activer la vue fractionnée, cliquez sur l'icône Split (Fractionner) icône de vue fractionnée.
    • Pour activer l'affichage de la source XML, cliquez sur l'icône Source icône de la vue source.
    • Pour activer l'affichage Projet, cliquez sur l'icône Design (Conception) icône de l'affichage Projet.
  • Les commandes de zoom et de panoramique dans les éditeurs de conception ont été déplacées vers un panneau flottant situé en bas à droite de la fenêtre de l'éditeur.

Pour en savoir plus, consultez Créer une UI avec l'éditeur de mise en page.

Onglet "Resource" (Ressource) du sélecteur de couleur

Pour vous aider à mettre à jour rapidement les valeurs de ressource de couleur dans votre application lorsque vous utilisez le sélecteur de couleur dans votre fichier XML ou les outils de conception, l'IDE insère maintenant les valeurs de ressource de couleur pour vous.

Sélecteur de couleur avec valeurs de couleur insérées

Gestionnaire de ressources

Le gestionnaire de ressources contient les mises à jour suivantes :

  • Le gestionnaire de ressources est désormais compatible avec la plupart des types de ressources.
  • Lorsque vous recherchez une ressource, le gestionnaire de ressources affiche à présent les résultats de tous les modules du projet. Auparavant, les recherches ne renvoyaient que les résultats du module sélectionné.
  • Le bouton de filtre vous permet d'afficher les ressources des modules dépendants locaux, des bibliothèques externes et du framework Android. Vous pouvez également utiliser le filtre pour afficher des attributs de thème.
  • Vous pouvez maintenant renommer des ressources lors du processus d'importation. Pour ce faire, cliquez dans la zone de texte au-dessus de la ressource.

Pour en savoir plus, consultez Gérer les ressources d'UI de votre application avec le gestionnaire de ressources.

Mises à jour du plug-in Android Gradle

La dernière version du plug-in Android Gradle comprend de nombreuses mises à jour, y compris des optimisations de la vitesse de compilation, la prise en charge du plug-in de publication Maven et la compatibilité avec la liaison de vue. Pour en savoir plus, consultez les notes de version complètes.

Liaison de vue

La liaison de vue vous permet d'écrire plus facilement du code qui interagit avec les vues en générant une classe de liaison pour chaque fichier de mise en page XML. Ces classes contiennent des références directes à toutes les vues qui ont un identifiant dans la mise en page correspondante.

Étant donné qu'elle remplace findViewById(), la liaison de vue élimine le risque d'exceptions de pointeur nul résultant d'un ID de vue non valide.

Pour activer la liaison de vue, vous devez utiliser le plug-in Android Gradle 3.6.0 ou version ultérieure, et inclure les éléments suivants dans le fichier build.gradle de chaque module :

Groovy

  android {
      buildFeatures.viewBinding = true
  }
  

Kotlin

  android {
      buildFeatures.viewBinding = true
  }
  

Appliquer les modifications

Vous pouvez maintenant ajouter une classe et déployer cette modification de code dans votre application en cours d'exécution en cliquant sur Apply Code Changes (Appliquer les modifications au code) ou sur Apply Changes and Restart Activity (Appliquer les modifications et redémarrer l'activité).

Pour en savoir plus sur la différence entre ces deux actions, consultez Appliquer les modifications.

Option de menu "Refactor" (Refactoriser) pour activer la prise en charge des applis instantanées

Une fois le projet d'application créé, vous pouvez activer instantanément votre module de base à tout moment comme suit :

  1. Ouvrez le panneau Project(Projet) en sélectionnant View > Tool Windows > Project (Vue > Fenêtres d'outils > Projet) dans la barre de menu.
  2. Effectuez un clic droit sur votre module de base, nommé généralement "app", puis sélectionnez Refactor > Enable Instant Apps Support (Refactoriser > Activer la prise en charge des applis instantanées).
  3. Dans la boîte de dialogue qui s'affiche, sélectionnez votre module de base dans le menu déroulant.
  4. Cliquez sur OK.

Remarque : L'option permettant d'activer instantanément le module d'application de base à partir de l'assistant Créer un projet a été supprimée.

Pour en savoir plus, consultez la Présentation de Google Play Instant.

Désobscurcir le bytecode de classe et de méthode dans l'analyseur d'APK

Lorsque vous inspectez des fichiers DEX à l'aide de l'analyseur d'APK, vous pouvez désobscurcir le bytecode de classe et de méthode comme suit :

  1. Sélectionnez Build > Analyze APK (Compiler > Analyser APK) dans la barre de menu.
  2. Dans la boîte de dialogue qui s'affiche, accédez à l'APK que vous souhaitez inspecter, puis sélectionnez-le.
  3. Cliquez sur Open (Ouvrir).
  4. Dans l'analyseur d'APK, sélectionnez le fichier DEX à inspecter.
  5. Dans la visionneuse de fichiers DEX, chargez le fichier de mappages ProGuard pour l'APK en cours d'analyse.
  6. Effectuez un clic droit sur la classe ou la méthode que vous souhaitez inspecter, puis sélectionnez Show bytecode (Afficher le bytecode).

Outils natifs

Les mises à jour suivantes sont compatibles avec le développement natif (C/C++) dans Android Studio.

Prise en charge de Kotlin

Les fonctionnalités NDK suivantes d'Android Studio, auparavant compatibles avec Java, sont à présent également prises en charge dans Kotlin :

  • Passez d'une déclaration JNI à la fonction d'implémentation correspondante en C/C++. Pour afficher ce mappage, pointez sur le repère d'élément C ou C++ près du numéro de ligne dans le fichier de code source géré.

  • Créez automatiquement une fonction d'implémentation bouchon pour une déclaration JNI. Définissez la déclaration JNI, puis saisissez "jni" ou le nom de la méthode dans le fichier C/C++ à activer.

  • Les fonctions d'implémentation natives non utilisées sont signalées en tant qu'avertissements dans le code source. Les déclarations JNI avec des implémentations manquantes sont également signalées en tant qu'erreurs.

  • Lorsque vous renommez (refactorisez) une fonction d'implémentation native, toutes les déclarations JNI correspondantes sont mises à jour. Renommez une déclaration JNI pour mettre à jour la fonction d'implémentation native.

  • Vérification de la signature pour les implémentations JNI liées implicitement

Autres améliorations JNI

L'éditeur de code d'Android Studio prend désormais en charge un workflow de développement JNI plus fluide, avec des optimisations de type améliorées, la saisie semi-automatique, des inspections et la refactorisation de code.

Actualisation de l'APK pour les bibliothèques natives {:#3.6-reload-apk}

Vous n'avez plus besoin de créer de projet lorsque l'APK de votre projet est mis à jour en dehors de l'IDE. Android Studio détecte les modifications dans l'APK et vous offre la possibilité de le réimporter.

Joindre des sources APK Kotlin uniquement

Il est maintenant possible de joindre des sources d'APK externes Kotlin uniquement lorsque vous profilez et déboguez des APK prédéfinis. Pour en savoir plus, consultez Joindre des sources Kotlin/Java.

Détecter les fuites dans le Profileur de mémoire

Lorsque vous analysez une empreinte de mémoire dans le Profileur de mémoire, vous pouvez à présent filtrer les données de profilage qui, selon Android Studio, peuvent indiquer des fuites de mémoire pour les instances Activity et Fragment de votre application.

Vous pouvez filtrer les types de données suivants :

  • Instances Activity détruites, mais qui sont toujours référencées.
  • Instances Fragment qui n'ont pas de FragmentManager valide, mais qui sont toujours référencées.

Joindre des sources APK Kotlin uniquement

Il est maintenant possible de joindre des sources d'APK externes Kotlin uniquement lorsque vous profilez et déboguez des APK prédéfinis. Pour en savoir plus, consultez Joindre des sources Kotlin/Java.

Détecter les fuites dans le Profileur de mémoire

Lorsque vous analysez une empreinte de mémoire dans le Profileur de mémoire, vous pouvez à présent filtrer les données de profilage qui, selon Android Studio, peuvent indiquer des fuites de mémoire pour les instances Activity et Fragment de votre application.

Vous pouvez filtrer les types de données suivants :

  • Instances Activity détruites, mais qui sont toujours référencées.
  • Instances Fragment qui n'ont pas de FragmentManager valide, mais qui sont toujours référencées.

Dans certains cas, comme ceux exposés ci-dessous, le filtre peut générer des faux positifs :

  • Un Fragment a été créé, mais n'a pas encore été utilisé.
  • Un Fragment est mis en cache, mais ne fait partie d'aucune FragmentTransaction.

Pour utiliser cette fonctionnalité, commencez par capturer une empreinte de la mémoire ou importer un fichier d'empreinte de la mémoire dans Android Studio. Pour afficher les fragments et les activités susceptibles de provoquer une fuite de mémoire, cochez la case Activity/Fragment Leaks (Fuites d'activité/de fragment) dans le volet d'empreinte de mémoire du Profileur de mémoire.

Profileur : détection de fuite de mémoire

Filtrage d'une empreinte de la mémoire pour identifier les fuites de mémoire.

Émulateurs

Android Studio 3.6 vous permet de bénéficier de plusieurs mises à jour incluses dans Android Emulator 29.2.7 et versions ultérieures, comme décrit ci-dessous.

Prise en charge de la localisation améliorée

Android Emulator 29.2.7 ou version ultérieure prend en charge l'émulation des coordonnées GPS et des informations sur les itinéraires. Lorsque vous ouvrez les options Extended controls (Commandes avancées) des émulateurs, les options de l'onglet "Location" (Position) sont maintenant organisées dans deux onglets : Single points (Points uniques) et Routes (Itinéraires)

Points uniques

Dans l'onglet Single points (Points uniques), vous pouvez utiliser la WebView de Google Maps pour rechercher des points d'intérêt, comme lorsque vous utilisez Google Maps sur un téléphone ou dans un navigateur. Lorsque vous recherchez ou cliquez sur un emplacement de la carte, vous pouvez l'enregistrer en sélectionnant "Save point" (Enregistrer le point) au bas de la carte. Tous vos lieux enregistrés sont listés à droite de la fenêtre Extended controls (Commandes avancées).

Pour définir la position des émulateurs sur l'emplacement que vous avez sélectionné sur la carte, cliquez sur le bouton Set location (Définir l'emplacement) en bas à droite de la fenêtre Extended controls (Commandes avancées).

Onglet "Single points" (Points uniques) dans les commandes avancées de l'émulateur..

Itinéraires

À l'instar de l'onglet Single points (Points uniques), l'onglet Routes (Itinéraires) fournit une WebView Google Maps que vous pouvez utiliser pour créer un itinéraire entre plusieurs emplacements. Pour créer et enregistrer un itinéraire, procédez comme suit :

  1. Dans la vue plan, recherchez la première destination de votre itinéraire à l'aide du champ de texte.
  2. Sélectionnez le lieu souhaité dans les résultats de recherche.
  3. Sélectionnez le bouton Navigate (Naviguer).
  4. Sélectionnez le point de départ de votre itinéraire sur la carte.
  5. (Facultatif) Cliquez sur Add destination (Ajouter une destination) pour ajouter d'autres étapes à votre itinéraire.
  6. Enregistrez votre itinéraire en cliquant sur Save route (Enregistrer l'itinéraire) dans la vue plan.
  7. Attribuez un nom à l'itinéraire, puis cliquez sur Save (Enregistrer).

Pour simuler l'émulateur selon l'itinéraire que vous avez enregistré, sélectionnez l'itinéraire dans la liste Saved routes (Itinéraires enregistrés), puis cliquez sur Play route (Lire l'itinéraire) en bas à droite de la fenêtre Extended controls (Commandes avancées). Pour arrêter la simulation, cliquez sur Stop route (Arrêter l'itinéraire).

Onglet "Routes" (Itinéraires) dans les commandes avancées de l'émulateur..

Pour simuler en continu l'émulateur selon l'itinéraire spécifié, activez le bouton bascule situé à côté de Repeat playback (Répéter la lecture). Pour modifier la vitesse à laquelle l'émulateur suit l'itinéraire spécifié, sélectionnez une option dans le menu déroulant Playback speed (Vitesse de lecture).

Compatibilité multi-écran

Android Emulator vous permet désormais de déployer votre application sur plusieurs écrans qui acceptent des dimensions personnalisables, et peuvent vous aider à tester des applications compatibles avec le mode multifenêtre et le mode multi-écran. Lorsqu'un appareil virtuel est en cours d'exécution, vous pouvez ajouter jusqu'à deux écrans supplémentaires comme suit :

  1. Ouvrez la fenêtre Extended controls (Commandes avancées), puis accédez à l'onglet Displays (Écrans).

  2. Ajoutez un autre écran en cliquant sur Add secondary display (Ajouter un écran secondaire).

  3. Dans le menu déroulant sous Secondary displays (Écrans secondaires), effectuez l'une des opérations suivantes :

  4. Sélectionnez l'un des formats prédéfinis.

  5. Sélectionnez custom (personnalisé), puis définissez les valeurs height (hauteur), width (largeur) et dpi pour votre affichage personnalisé.

  6. (Facultatif) Cliquez sur Add secondary display (Ajouter un écran secondaire) pour en ajouter un troisième.

  7. Cliquez sur Apply changes (Appliquer les modifications) pour ajouter les écrans spécifiés à l'appareil virtuel en cours d'exécution.

Ajouter plusieurs écrans avec l'onglet "Display" (Écran) de la fenêtre "Extended Controls" (Commandes avancées) de l'émulateur.

Nouveaux appareils virtuels et modèles de projet pour Android Automotive OS

Lorsque vous créez un projet à l'aide d'Android Studio, vous pouvez désormais choisir parmi trois modèles dans l'onglet Automotive de l'assistant Create New Project (Créer un projet) : No Activity (Aucune activité), Media service (Service multimédia) et Messaging service (Service de messagerie instantanée). Pour les projets existants, vous pouvez rendre vos appareils Android Automotive compatibles en sélectionnant File > New > New Module (Fichier > Nouveau > Nouveau module) dans la barre de menu, puis en sélectionnant Automotive Module (Module Automotive). L'assistant Create New Module (Créer un module) vous guide ensuite dans le processus de création d'un module à l'aide de l'un des modèles de projet d'Android Automotive.

Sélection d'un modèle de projet Android Automotive..

En outre, vous pouvez maintenant créer un appareil virtuel Android (AVD) pour les appareils Android Automotive OS en sélectionnant l'une des options suivantes dans l'onglet Automotive de l'assistant Virtual Device Configuration (Configuration de l'appareil virtuel).

  1. Polestar 2 : créez un AVD qui émule l'unité principale Polestar 2.
  2. Automotive (paysage 1024p) : créez un AVD pour les unités principales 1 024 x 768 px génériques d'Android Automotive.

Sélection d'un appareil virtuel Android Automotive..

Téléchargements de SDK avec reprise

Lorsque vous téléchargez des composants et des outils du SDK à l'aide de SDK Manager, Android Studio vous permet à présent de reprendre les téléchargements qui ont été interrompus (en raison d'un problème réseau, par exemple) au lieu de les recommencer depuis le début. Cette amélioration est particulièrement utile pour les téléchargements volumineux, comme Android Emulator ou les images système, lorsque la connexion Internet n'est pas fiable.

De plus, si une tâche de téléchargement du SDK s'exécute en arrière-plan, vous pouvez maintenant suspendre ou reprendre le téléchargement à l'aide des commandes de la barre d'état.

Tâche de téléchargement en arrière-plan dans la barre d'état avec de nouvelles commandes qui vous permettent de suspendre ou de reprendre le téléchargement.

Tâche de téléchargement en arrière-plan dans la barre d'état avec de nouvelles commandes qui vous permettent de suspendre ou de reprendre le téléchargement.

Win32 obsolète

La version Windows 32 bits d'Android Studio ne recevra plus de mises à jour après décembre 2019 et ne sera plus prise en charge après décembre 2020. Vous pouvez continuer à utiliser Android Studio. Toutefois, pour recevoir des mises à jour supplémentaires, mettez à niveau votre station de travail vers une version 64 bits de Windows.

Pour en savoir plus, consultez le blog sur la fin de la prise en charge de Windows 32 bits.

Nouvelle option permettant d'optimiser le temps de synchronisation Gradle

Dans les versions précédentes, Android Studio récupérait la liste de toutes les tâches Gradle pendant la synchronisation Gradle. Pour les projets volumineux, la récupération de la liste de tâches pouvait ralentir les synchronisations.

Pour améliorer les performances de la synchronisation Gradle, accédez à File > Settings > Experimental (Fichier > Paramètres > Expérimental), puis sélectionnez "Ne pas créer la liste de tâches Gradle pendant la synchronisation Gradle".

Lorsque vous activez cette option, Android Studio ignore la compilation de la liste des tâches lors de la synchronisation, ce qui permet à la synchronisation Gradle de se terminer plus rapidement et améliore la réactivité de l'interface utilisateur. N'oubliez pas que, lorsque l'IDE ignore la compilation de la liste des tâches, les listes de tâches du panneau Gradle sont vides et la saisie semi-automatique du nom de la tâche dans les fichiers de compilation ne fonctionne pas.

Nouvel emplacement pour activer/désactiver le mode hors connexion de Gradle

Pour activer ou désactiver le mode hors connexion de Gradle, sélectionnez d'abord View > Tool Windows > Gradle (Vue > Fenêtres d'outils > Gradle) dans la barre de menu. Ensuite, en haut de la fenêtre Gradle, cliquez sur Toggle Offline Mode (Activer/Désactiver le mode hors connexion) Bouton du mode hors connexion de Gradle dans le panneau "Gradle"..

IntelliJ IDEA 2019.2

L'IDE principal d'Android Studio a été mis à jour avec les améliorations d'IntelliJ IDEA via la version 2019.2.

Pour en savoir plus sur les améliorations des autres versions d'IntelliJ incluses cumulativement avec la version 2019.2, consultez les pages suivantes :

Contributeurs de la communauté

Merci à tous les contributeurs de notre communauté qui nous ont permis de découvrir des bugs et d'autres moyens d'améliorer Android Studio 3.6. Nous tenons tout particulièrement à remercier les personnes suivantes qui ont signalé des bugs :

  • Albert Lo
  • Alexey Rott
  • Andrea Leganza
  • Benedikt Kolb
  • César Puerta
  • Curtis Kroetsch
  • Damian Wieczorek
  • Dan Lew
  • David Burström
  • Deepanshu
  • Egor Andreevici
  • Eli Graber
  • Emin Kokalari
  • Evan Tatarka
  • Frantisek Nagy
  • Greg Moens
  • Hannes Achleitner
  • Hans Petter Eide
  • Henning Bunk
  • Hugo Visser
  • Igor Escodro
  • Iñaki Villar
  • Javentira Lienata
  • Joe Rogers
  • Kristoffer Danielsson
  • Liran Barsisa
  • Louis CAD
  • Lóránt Pintér
  • Łukasz Wasylkowski
  • Luke Fielke
  • Malvin Sutanto
  • Masatoshi Kubode
  • Mathew Winters
  • Michael Bailey
  • Michał Górny
  • Mihai Neacsu
  • Mike Scamell
  • Monte Creasor
  • Nelson Osacky
  • Nelson Osacky
  • Nick Firmani
  • Nicklas Ansman Giertz
  • Niclas Kron
  • Nicolás Lichtmaier
  • Niek Haarman
  • Niels van Hove
  • Niklas Baudy
  • Renato Goncalves
  • Roar Grønmo
  • Ruslan Baratov
  • Sinan Kozak
  • Slawomir Czerwinski
  • Stefan Wolf
  • Stephen D'Amico
  • Tao Wang
  • Tomas Chladek
  • Tomáš Procházka
  • Tony Robalik
  • Torbjørn Sørli
  • Warren He
  • Yenchi Lin
  • Zac Sweers
  • 3.5 (août 2019)

    Android Studio 3.5 est une version majeure et un résultat du projet Marble. Depuis la sortie d'Android Studio 3.3, l'initiative Projet Marble s'étend sur plusieurs versions qui visent à améliorer trois domaines principaux de l'IDE : l'intégrité du système, le perfectionnement des fonctionnalités et la correction de bugs.

    Pour en savoir plus sur ces mises à jour et d'autres du projet Marble, consultez l'article du blog des développeurs Android ou les sections ci-dessous.

    Nous tenons à remercier tous les contributeurs de la communauté qui ont pris part à cette publication.

    3.5.3 (décembre 2019)

    Cette mise à jour mineure inclut plusieurs corrections de bugs et améliorations de performances.

    3.5.2 (novembre 2019)

    Cette mise à jour mineure inclut plusieurs corrections de bugs et améliorations de performances. Pour consulter la liste des corrections de bugs principaux, lisez l'article associé sur le blog des mises à jour des versions.

    3.5.1 (octobre 2019)

    Cette mise à jour mineure inclut plusieurs corrections de bugs et améliorations de performances. Pour consulter la liste des corrections de bugs principaux, lisez l'article associé sur le blog des mises à jour des versions.

    Projet Marble : intégrité du système

    Cette section décrit les modifications apportées à Android Studio 3.5 visant à améliorer l'intégrité du système.

    Paramètres de mémoire recommandés

    Android Studio vous indique à présent s'il est possible d'améliorer les performances en augmentant la quantité maximale de RAM que votre OS doit allouer aux processus Android Studio, tels que l'IDE principal, le daemon Gradle et le daemon Kotlin. Vous pouvez accepter les paramètres recommandés en cliquant sur le lien d'action dans la notification ou ajuster ces paramètres manuellement en sélectionnant File > Settings (Fichier > Paramètres) ou Android Studio > Preferences (Android Studio > Préférences) sous macOS, puis en recherchant la section Paramètres de mémoire sous Appearance & Behavior > System Settings (Apparence et comportement > Paramètres système). Pour en savoir plus, consultez Taille maximale du tas de mémoire.

    Notification concernant les paramètres de mémoire recommandés.

    Notification concernant les paramètres de mémoire recommandés.

    Rapport sur l'utilisation de la mémoire

    Les problèmes de mémoire dans Android Studio sont parfois difficiles à reproduire et à signaler. Pour résoudre ce problème, Android Studio vous permet de générer un rapport d'utilisation de la mémoire en cliquant sur Help > Analyze Memory Usage (Aide > Analyser l'utilisation de la mémoire) dans la barre de menu. Lorsque vous procédez ainsi, l'IDE nettoie localement les données relatives aux informations personnelles avant de demander si vous souhaitez les envoyer à l'équipe Android Studio afin d'identifier la source des problèmes de mémoire. Pour en savoir plus, consultez Exécuter un rapport sur l'utilisation de la mémoire.

    Rapport sur l'utilisation de la mémoire.

    Rapport sur l'utilisation de la mémoire.

    Windows : optimisation des E/S des fichiers antivirus

    Android Studio vérifie à présent automatiquement si certains répertoires de projet sont exclus de l'analyse antivirus en temps réel. Lorsque des ajustements peuvent être effectués pour améliorer les performances de compilation, Android Studio vous en informe et vous explique comment optimiser votre configuration antivirus. Pour en savoir plus, consultez Minimiser l'impact du logiciel antivirus sur la vitesse de compilation.

    Projet Marble : perfectionnement des fonctionnalités

    Cette section décrit les modifications apportées à Android Studio 3.5 visant à améliorer les fonctionnalités existantes.

    Appliquer les modifications

    Appliquer les modifications vous permet d'appliquer des modifications de code et de ressource à l'application en cours d'exécution sans la redémarrer et, dans certains cas, sans redémarrer l'activité en cours. Appliquer les modifications met en œuvre une approche entièrement nouvelle pour conserver l'état de votre application. Contrairement à l'exécution instantanée, qui a réécrit le bytecode de votre APK, Appliquer les modifications redéfinit les classes à la volée en exploitant l'instrumentation d'exécution prise en charge dans Android 8.0 (niveau d'API 26) ou version ultérieure.

    Pour en savoir plus, consultez Appliquer les modifications.

    Boutons de la barre d'outils pour "Appliquer les modifications".

    Boutons de la barre d'outils pour "Appliquer les modifications".

    Flux de déploiement de l'application

    L'IDE dispose d'un nouveau menu déroulant qui vous permet de sélectionner rapidement l'appareil sur lequel vous souhaitez déployer votre application. Ce menu inclut également une nouvelle option qui vous permet d'exécuter votre application sur plusieurs appareils à la fois.

    Menu déroulant de sélection de l'appareil cible.

    Menu déroulant de sélection de l'appareil cible.

    Amélioration de la synchronisation Gradle et de la détection du cache

    Désormais, l'IDE détecte mieux quand Gradle efface périodiquement votre cache de compilation pour réduire l'utilisation du disque dur. Dans les versions précédentes, cet état provoquait le signalement par l'IDE de dépendances manquantes et l'échec de la synchronisation Gradle. À présent, l'IDE télécharge simplement les dépendances si nécessaire pour s'assurer que la synchronisation Gradle est effectuée correctement.

    Amélioration de la sortie des erreurs de compilation

    La fenêtre Compiler Icône de la fenêtre "Compiler" fournit à présent de meilleurs rapports d'erreurs, tels qu'un lien vers le fichier et la ligne de l'erreur signalée, pour les processus de compilation suivants :

    • Association et compilation d'AAPT
    • R8 et ProGuard
    • Conversion au format .dex
    • Fusion de ressources
    • Analyse de fichiers XML
    • Compilation Javac, Kotlin et CMake

    Mises à niveau du projet

    L'expérience de mise à jour a été améliorée pour fournir plus d'informations et d'actions, et vous aider ainsi à mettre à jour l'IDE et le plug-in Android Gradle. Par exemple, un plus grand nombre d'erreurs de synchronisation et de compilation incluent des actions permettant de limiter les erreurs lors des mises à jour.

    N'oubliez pas que vous pouvez mettre à jour l'IDE indépendamment d'autres composants, tels que le plug-in Android Gradle. Ainsi, vous pouvez mettre à jour l'IDE dès qu'une nouvelle version est disponible et mettre à jour d'autres composants ultérieurement.

    Éditeur de mise en page

    Android Studio 3.5 offre plusieurs améliorations en termes de visualisation, de gestion et d'interaction de la mise en page.

    Lorsque vous utilisez ConstraintLayout, la nouvelle section Constraints (Contraintes) du panneau Attributes (Attributs) liste les relations de contraintes du composant d'UI sélectionné. Vous pouvez sélectionner une contrainte sur la surface de conception ou dans la liste des contraintes pour la mettre en évidence dans les deux zones.

    Relations de contrainte pour un élément d'interface utilisateur sélectionné.

    Relations de contrainte pour un élément d'interface utilisateur sélectionné.

    De même, vous pouvez à présent supprimer une contrainte en la sélectionnant et en appuyant sur la touche Delete. Vous pouvez également supprimer une contrainte en maintenant enfoncée la touche Control (Command sous macOS) et en cliquant sur l'ancre de contrainte. Notez que lorsque vous maintenez la touche Control ou Command enfoncée et pointez sur une ancre, toutes les contraintes associées deviennent rouges pour indiquer que vous pouvez cliquer dessus pour les supprimer.

    Lorsqu'une vue est sélectionnée, vous pouvez créer une contrainte en cliquant sur l'une des icônes + dans la section Constraint Widget (Widget de contrainte) du panneau Attributes, comme illustré dans l'image ci-dessous. Lorsque vous créez une contrainte, l'éditeur de mise en page la sélectionne et la met en surbrillance. Vous obtenez ainsi un retour visuel immédiat sur les éléments que vous venez d'ajouter.

    Animation montrant comment utiliser le widget de contrainte pour créer des contraintes.

    Utilisation du widget de contrainte pour créer des contraintes.

    Lorsque vous créez une contrainte, l'éditeur de mise en page n'affiche désormais que les points d'ancrage éligibles auxquels vous pouvez appliquer une contrainte. Auparavant, l'éditeur de mise en page mettait en surbrillance tous les points d'ancrage sur toutes les vues, que vous puissiez y appliquer une contrainte ou non. De plus, une superposition bleue indique maintenant la cible de la contrainte. Cette mise en surbrillance est particulièrement utile lorsque vous essayez d'appliquer une contrainte sur un composant qui se superpose à un autre.

    Animation montrant comment créer une contrainte pour un composant superposé dans Android Studio 3.4.

    Création d'une contrainte pour un composant superposé dans Android Studio 3.4.

    Animation montrant comment créer une contrainte pour un composant superposé dans Android Studio 3.5.

    Création d'une contrainte pour un composant superposé dans Android Studio 3.5.

    Outre les mises à jour ci-dessus, Android Studio 3.5 inclut les améliorations suivantes pour l'éditeur de mise en page :

    • Le Constraint Widget et la liste déroulante des marges par défaut vous permettent à présent d'utiliser les ressources de dimension pour les marges.
    • Dans la barre d'outils de l'éditeur de mise en page, la liste des appareils qui déterminent la taille de la surface de conception a été mise à jour. En outre, le comportement d'ancrage lors du redimensionnement a été amélioré et les poignées de redimensionnement sur la surface de conception sont à présent toujours visibles. Lors du redimensionnement, de nouvelles superpositions s'affichent avec des tailles d'appareils courantes.
    • L'éditeur de mise en page dispose d'un nouveau jeu de couleurs qui améliore la cohérence et réduit le contraste entre les composants, le texte et les contraintes.
    • Le mode plan prend à présent en charge le texte pour certains composants où le texte n'était pas affiché.

    Pour en savoir plus sur ces modifications, consultez Projet Marble d'Android Studio : éditeur de mise en page.

    Liaison de données

    En plus d'ajouter la prise en charge du traitement incrémentiel des annotations pour la liaison de données, l'IDE améliore les fonctionnalités et les performances de l'éditeur intelligent lorsque vous créez des expressions de liaison de données au format XML.

    Animation montrant les performances de l'éditeur de code dans Android Studio 3.4.

    Performances de l'éditeur de code dans Android Studio 3.4.

    Animation montrant les performances de l'éditeur de code dans Android Studio 3.5.

    Amélioration des performances de modification du code dans Android Studio 3.5.

    Meilleure prise en charge des projets C/C++

    Android Studio 3.5 inclut plusieurs modifications qui améliorent la prise en charge des projets C/C++.

    Améliorations du panneau "Variantes de compilation" pour la synchronisation d'une seule variante

    Vous pouvez à présent spécifier la variante de compilation active et l'ABI active dans le panneau Build Variants (Variantes de compilation). Cette fonctionnalité simplifie la configuration de compilation par module et peut également améliorer les performances de synchronisation de Gradle.

    Pour en savoir plus, consultez Modifier la variante de compilation.

    Panneau "Build Variants" (Variantes de compilation) affichant la sélection d'une seule variante par ABI

    Panneau "Build Variants" (Variantes de compilation) avec sélection d'une seule variante par ABI.

    Versions côte à côte du NDK

    Vous pouvez à présent utiliser plusieurs versions du NDK côte à côte. Cette fonctionnalité vous offre davantage de flexibilité pour configurer vos projets ; par exemple si vous disposez de projets utilisant différentes versions du NDK sur la même machine.

    Si votre projet utilise le plug-in Android Gradle 3.5.0 ou version ultérieure, vous pouvez également spécifier la version du NDK que chaque module de votre projet doit utiliser. Vous pouvez utiliser cette fonctionnalité pour créer des builds reproductibles et réduire les incompatibilités entre les versions du NDK et le plug-in Android Gradle.

    Pour en savoir plus, consultez Installer et configurer le NDK, CMake et LLDB.

    Prise en charge de ChromeOS

    Android Studio est à présent officiellement compatible avec les appareils ChromeOS, tels que le Chromebook HP x360 14, le Chromebook Acer 13/Spin 13 et d'autres que vous pouvez consulter dans la configuration requise. Pour commencer, téléchargez Android Studio sur votre appareil ChromeOS compatible et suivez les instructions d'installation.

    Remarque : Android Studio sur ChromeOS ne permet actuellement de déployer votre application que sur un appareil physique connecté. Pour en savoir plus, consultez Exécuter des applications sur un appareil matériel.

    Distribution conditionnelle pour les modules de fonctionnalités

    La distribution conditionnelle vous permet de définir certaines exigences de configuration de l'appareil pour que les modules de fonctionnalités soient téléchargés automatiquement lors de l'installation de l'application. Par exemple, vous pouvez configurer un module de fonctionnalité qui inclut la fonction de réalité augmentée (RA) pour qu'il ne soit disponible lors de l'installation d'une application que pour les appareils compatibles avec la RA.

    Ce mécanisme de distribution permet actuellement de contrôler le téléchargement d'un module au moment de l'installation de l'application en fonction des configurations d'appareil suivantes :

    • Fonctionnalités matérielles et logicielles de l'appareil, y compris la version d'OpenGL ES
    • Pays de l'utilisateur
    • Niveau d'API

    Si un appareil ne répond pas à toutes les exigences spécifiées, le module n'est pas téléchargé au moment de l'installation de l'application. Cependant, votre application peut ensuite demander à télécharger le module à la demande à l'aide de la bibliothèque Play Core. Pour en savoir plus, consultez Configurer la distribution conditionnelle.

    IntelliJ IDEA 2019.1

    L'IDE principal d'Android Studio a été mis à jour avec les améliorations d'IntelliJ IDEA via la version 2019.1, telles que la personnalisation du thème.

    La dernière version d'IntelliJ incluse avec Android Studio était la version 2018.3.4. Pour en savoir plus sur les améliorations des autres versions d'IntelliJ incluses cumulativement avec cette version d'Android Studio, consultez les mises à jour de correction de bug suivantes :

    Mises à jour du plug-in Android Gradle 3.5.0

    Pour en savoir plus sur les nouveautés du plug-in Android Gradle 3.5.0, telles que l'amélioration de la compatibilité avec le traitement incrémentiel des annotations et les tests unitaires pouvant être mis en cache, consultez les notes de version.

    Contributeurs de la communauté

    Merci à tous nos contributeurs de la communauté qui nous ont permis de découvrir des bugs et d'autres moyens d'améliorer Android Studio 3.5. Nous tenons tout particulièrement à remercier les personnes suivantes qui ont signalé des bugs P0 et P1 :

    3.4 (avril 2019)

    Android Studio 3.4 est une version majeure qui comprend plusieurs nouvelles fonctionnalités et améliorations.

    3.4.2 (juillet 2019)

    Cette mise à jour mineure inclut plusieurs corrections de bugs et améliorations de performances. Pour consulter la liste des corrections de bugs principaux, lisez l'article associé sur le blog des mises à jour des versions.

    3.4.1 (mai 2019)

    Cette mise à jour mineure inclut plusieurs corrections de bugs et améliorations de performances. Pour consulter la liste des corrections de bugs principaux, lisez l'article associé sur le blog des mises à jour des versions.

    Problèmes connus de la version 3.4.0

    • Le profilage est désactivé lors du déploiement de votre application sur un appareil exécutant Android Q bêta.

    • Lorsque vous utilisez la bibliothèque Data Binding, LiveDataListener.onChanged() peut échouer avec un NPE. Un correctif sera inclus dans Android Studio 3.4.1 et est déjà disponible dans la dernière version preview d'Android Studio 3.5. Consultez le problème 122066788.

    IntelliJ IDEA 2018.3.4

    L'IDE principal d'Android Studio a été mis à jour avec les améliorations d'IntelliJ IDEA via la version 2018.3.4.

    Mises à jour du plug-in Android Gradle 3.4.0

    Pour en savoir plus sur les nouveautés du plug-in Android Gradle 3.4.0, consultez les notes de version.

    Nouvelle boîte de dialogue "Structure du projet"

    La nouvelle boîte de dialogue "Structure du projet" facilite la mise à jour des dépendances et la configuration de différents aspects de votre projet, tels que les modules, les variantes de compilation, les configurations de signature et les variables de compilation.

    Vous pouvez l'ouvrir en sélectionnant File > Project Structure (Fichier > Structure du projet) dans la barre de menu. Vous pouvez également y accéder en appuyant sur Ctrl+Shift+Alt+S sous Windows et Linux, ou sur Command+; (point-virgule) sous macOS. Vous trouverez ci-dessous la description de certaines des sections nouvelles et mises à jour de cette boîte de dialogue.

    Variables

    La nouvelle section "Variables" de la boîte de dialogue "Structure du projet" vous permet de créer et de gérer des variables de compilation, telles que celles permettant de garantir la cohérence des numéros de version des dépendances dans votre projet.

    • Affichez et modifiez rapidement les variables de compilation qui existent déjà dans les scripts de compilation Gradle de votre projet.
    • Ajoutez de nouvelles variables de compilation au niveau d'un projet ou d'un module directement depuis la boîte de dialogue "Structure du projet".

    Remarque : Si vos fichiers de configuration de compilation existants attribuent des valeurs via des scripts Groovy complexes, vous ne pourrez peut-être pas modifier ces valeurs via la boîte de dialogue "Structure du projet". Vous ne pourrez pas non plus modifier les fichiers de compilation écrits en Kotlin à l'aide de cette boîte de dialogue.

    Modules

    Configurez les propriétés appliquées à toutes les variantes de compilation d'un module existant ou ajoutez de nouveaux modules à votre projet depuis la section Modules. Par exemple, c'est là que vous pouvez configurer les propriétés defaultConfig ou gérer les configurations de signature.

    Dépendances

    Inspectez et visualisez chaque dépendance dans le graphique de dépendances de votre projet, tel que résolu par Gradle lors de la synchronisation du projet, en procédant comme suit :

    1. Dans le volet gauche de la boîte de dialogue "Project Structure" (Structure du projet), sélectionnez Dependencies (Dépendances).
    2. Dans le volet Modules, sélectionnez un module dont vous souhaitez inspecter les dépendances résolues.
    3. Dans la partie droite de la boîte de dialogue "Structure du projet", ouvrez le volet Resolved Dependencies (Dépendances résolues), comme illustré ci-dessous.

    Vous pouvez également rechercher rapidement des dépendances et les ajouter à votre projet. Pour cela, sélectionnez un module dans la section Dependencies (Dépendances) de la boîte de dialogue "PSD" (Structure du projet), cliquez sur le bouton (+) dans la section Declared Dependencies (Dépendances déclarées), puis sélectionnez le type de dépendance que vous souhaitez ajouter.

    En fonction du type de dépendance que vous sélectionnez, une boîte de dialogue semblable à celle illustrée ci-dessous doit s'afficher. Elle vous aidera à ajouter la dépendance au module.

    Variantes de compilation

    Dans cette section de la boîte de dialogue "PSD", créez et configurez des variantes de compilation et des types de produit pour chaque module de votre projet. Vous pouvez ajouter des espaces réservés de fichier manifeste, ajouter des fichiers ProGuard, attribuer des clés de signature, etc.

    Suggestions

    Consultez les suggestions de mises à jour pour les dépendances du projet et les variables de compilation dans la section Suggestions, comme illustré ci-dessous.

    Nouveau gestionnaire de ressources

    Le gestionnaire de ressources est une nouvelle fenêtre d'outil permettant d'importer, de créer, de gérer et d'utiliser des ressources dans votre application. Vous pouvez ouvrir la fenêtre d'outil en sélectionnant View > Tool Windows > Resource Manager (Vue > Fenêtres d'outil > Gestionnaire de ressources) dans la barre de menu. Le gestionnaire de ressources vous permet d'effectuer les opérations suivantes :

    • Visualiser les ressources : vous pouvez prévisualiser les drawables, les couleurs et les mises en page pour trouver rapidement les ressources dont vous avez besoin.
    • Effectuer une importation groupée : vous pouvez importer plusieurs composants drawables à la fois en les faisant glisser et en les déposant dans la fenêtre d'outil Resource Manager (Gestionnaire de ressources). Vous pouvez également utiliser l'assistant Import drawables (Importer des drawables). Pour accéder à l'assistant, sélectionnez le bouton (+) en haut à gauche de la fenêtre d'outil, puis sélectionnez Import drawables dans le menu déroulant.
    • Convertir des SVG en objets VectorDrawable : vous pouvez utiliser l'assistant Import drawables pour convertir vos images SVG en objets VectorDrawable.
    • Glisser-déposer des composants : à partir de la fenêtre d'outil Resource Manager, vous pouvez glisser-déposer des drawables sur les vues de conception et XML de l'éditeur de mise en page.
    • Afficher d'autres versions : vous pouvez à présent afficher d'autres versions de vos ressources en double-cliquant sur une ressource dans la fenêtre Tool (Outil). Cette vue affiche les différentes versions que vous avez créées et les qualificatifs inclus.
    • Vues "Tile" (Mosaïque) et "List" (Liste) : vous pouvez modifier la vue dans la fenêtre d'un outil pour visualiser vos ressources selon différentes dispositions.

    Pour en savoir plus, consultez le guide sur la gestion des ressources d'application.

    Vérifier les ID de build lors du profilage et du débogage des APK

    Lorsque vous fournissez des fichiers de décodage pour les bibliothèques partagées .so dans votre APK, Android Studio vérifie que l'ID de build des fichiers de décodage fournis correspond à celui des bibliothèques .so dans l'APK.

    Si vous compilez les bibliothèques natives dans votre APK avec un ID de build, Android Studio vérifie si l'ID de build de vos fichiers de symboles correspond à celui de vos bibliothèques natives et refuse les fichiers de symboles en cas de non-concordance. Si vous n'avez pas utilisé d'ID de build lors de la compilation, le fait de fournir des fichiers de symboles incorrects peut entraîner des problèmes de débogage.

    R8 activé par défaut

    R8 intègre le désucrage, la minification, l'obscurcissement, l'optimisation et la conversion en DEX en une seule étape, ce qui entraîne des améliorations sensibles des performances de compilation. R8 a été intégré dans le plug-in Android Gradle 3.3.0 et est à présent activé par défaut pour les projets de bibliothèques d'applications et Android utilisant le plug-in 3.4.0 et versions ultérieures.

    L'image ci-dessous offre une vue d'ensemble du processus de compilation avant l'introduction de R8.

    Avant R8, ProGuard était une étape de compilation différente de la conversion au format .dex et du désucrage.

    Avec R8, le désucrage, la minification, l'obscurcissement, l'optimisation et la conversion au format .dex (D8) sont effectués en une seule étape, comme illustré ci-dessous.

    Avec R8, le désucrage, la minification, l'obscurcissement, l'optimisation et la conversion en DEX sont effectués en une seule étape de compilation.

    N'oubliez pas que la R8 est conçu pour fonctionner avec vos règles ProGuard existantes. Vous n'aurez donc probablement aucune action à effectuer pour bénéficier de R8. Cependant, comme il s'agit d'une technologie différente de ProGuard, conçue spécialement pour les projets Android, la minification et l'optimisation peuvent entraîner la suppression de code que ProGuard n'aurait peut-être pas supprimé. Dans ce cas peu probable, vous devrez peut-être ajouter des règles supplémentaires pour conserver ce code dans votre sortie de compilation.

    Si vous rencontrez des problèmes pour utiliser R8, consultez les questions fréquentes sur la compatibilité avec R8 pour voir s'il existe une solution. Si aucune solution n'est documentée, veuillez signaler un bug. Vous pouvez désactiver R8 en ajoutant l'une des lignes suivantes au fichier gradle.properties de votre projet :

        # Disables R8 for Android Library modules only.
        android.enableR8.libraries = false
        # Disables R8 for all modules.
        android.enableR8 = false
        
      

    Remarque : Pour un type de compilation donné, si vous définissez useProguard sur false dans le fichier build.gradle du module de votre application, le plug-in Android Gradle utilise R8 pour minifier le code de votre application pour ce type de compilation, que vous désactiviez R8 ou non dans le fichier gradle.properties de votre projet.

    Tous les types d'argument compatibles avec le composant Navigation sont maintenant pris en charge dans l'éditeur de navigation. Pour en savoir plus sur les types pris en charge, consultez Transmettre des données entre les destinations.

    Améliorations apportées à l'éditeur de mise en page {:#layout-editor}

    Le volet Attributes (Attributs) de l'éditeur de mise en page a été simplifié en une seule page, avec des sections que vous pouvez développer pour afficher les attributs que vous pouvez configurer. Le volet Attributes inclut également les mises à jour suivantes :

    • La nouvelle section Declared Attributes (Attributs déclarés) présente les attributs spécifiés par le fichier de mise en page et vous permet d'en ajouter rapidement de nouveaux.
    • Désormais, le volet Attributes (Attributs) contient également des indicateurs à côté de chaque attribut, qui sont pleins lorsque la valeur de l'attribut est une référence de ressource et vides dans le cas contraire.
    • Les attributs avec des erreurs ou des avertissements sont maintenant mis en surbrillance. Les éléments surlignés en rouge indiquent des erreurs (lorsque vous utilisez des valeurs de mise en page non valides, par exemple) et les éléments surlignés en orange indiquent des avertissements (lorsque vous utilisez des valeurs codées en dur, par exemple).

    Nouvelle action d'intent pour importer rapidement des dépendances

    Si vous commencez à utiliser certaines classes Jetpack et Firebase dans votre code, une nouvelle action d'intent propose d'ajouter la dépendance de bibliothèque Gradle requise à votre projet, si ce n'est pas déjà fait. Par exemple, si vous référencez la classe WorkManager sans importer au préalable la dépendance android.arch.work:work-runtime requise, une action d'intent vous permet de le faire facilement en un clic, comme illustré ci-dessous.

    En particulier, comme Jetpack a repackagé la bibliothèque Support dans des packages distincts plus faciles à gérer et à mettre à jour, cette action d'intent vous aide à n'ajouter rapidement que les dépendances dont vous avez besoin pour les composants Jetpack que vous souhaitez utiliser.

    3.3 (janvier 2019)

    Android Studio 3.3 est une version majeure qui comprend plusieurs nouvelles fonctionnalités et améliorations.

    3.3.2 (mars 2019)

    Cette mise à jour mineure inclut plusieurs corrections de bugs et améliorations de performances. Pour consulter la liste des corrections de bugs principaux, lisez l'article associé sur le blog des mises à jour des versions.

    3.3.1 (février 2019)

    Cette mise à jour mineure inclut plusieurs corrections de bugs et améliorations de performances.

    IntelliJ IDEA 2018.2.2

    L'IDE principal d'Android Studio a été mis à jour avec les améliorations d'IntelliJ IDEA via la version 2018.2.2.

    Mises à jour du plug-in Android Gradle

    Pour en savoir plus sur les nouveautés du plug-in Android Gradle, consultez ses notes de version.

    L'éditeur de navigation vous permet de visualiser et de compiler rapidement la navigation dans votre application à l'aide du composant d'architecture de navigation.

    Pour en savoir plus, consultez Implémenter la navigation avec le composant d'architecture de navigation.

    Supprimer les répertoires Android Studio inutilisés

    La première fois que vous exécutez une version majeure d'Android Studio, elle recherche les répertoires contenant des caches, des paramètres, des index et des journaux pour les versions d'Android Studio pour lesquelles une installation correspondante est introuvable. La boîte de dialogue Supprimer les répertoires Android Studio inutilisés affiche ensuite les emplacements, les tailles et les heures de dernière modification de ces répertoires inutilisés. Elle vous permet également de les supprimer.

    Les répertoires qu'Android Studio envisage de supprimer sont indiqués ci-dessous :

    • Linux : ~/.AndroidStudio[Preview]X.Y
    • Mac : ~/Library/{Preferences, Caches, Logs, Application Support}/AndroidStudio[Preview]X.Y
    • Windows : %USER%.AndroidStudio[Preview]X.Y

    Améliorations apportées à lint

    Lorsque lint est appelé depuis Gradle, il est beaucoup plus rapide. Dans les projets plus volumineux, lint peut s'exécuter jusqu'à quatre fois plus vite.

    Assistant Créer un projet

    L'assistant Create New Project (Créer un projet) a fait peau neuve et contient des mises à jour qui simplifient la création de projets Android Studio.

    Pour en savoir plus, consultez Créer un projet.

    Mises à jour du profileur

    Android Studio 3.3 inclut des mises à jour de plusieurs profileurs individuels.

    Performances améliorées

    Suite aux commentaires des utilisateurs, nous avons considérablement amélioré les performances de rendu lors de l'utilisation des profileurs. Continuez à envoyer des commentaires, en particulier si vous continuez à rencontrer des problèmes de performances.

    Options de suivi de l'allocation de mémoire du profileur

    Pour améliorer les performances de l'application lors du profilage, le Profileur de mémoire échantillonne à présent régulièrement les allocations de mémoire par défaut. Si vous le souhaitez, vous pouvez modifier ce comportement à l'aide du menu déroulant Allocation Tracking (Suivi de l'allocation) lorsque vous effectuez des tests sur des appareils équipés d'Android 8.0 (niveau d'API 26) ou version ultérieure.

    Dans le menu déroulant Allocation Tracking, vous pouvez choisir l'un des modes suivants :

    • Full (Complet) : capture toutes les allocations de mémoire des objets. Notez que si votre application alloue de nombreux objets, vous risquez de rencontrer d'importants problèmes de performances lors du profilage.

    • Sampled (Échantillonné) : capture un échantillon périodique des allocations de mémoire des objets. Il s'agit du comportement par défaut et il a moins d'impact sur les performances de l'application lors du profilage. Vous risquez de rencontrer des problèmes de performances avec les applications qui allouent de nombreux objets sur une courte période.

    • Off (Désactivé) : désactive l'allocation de mémoire. Si ce mode n'est pas encore sélectionné, il est activé automatiquement lors de l'enregistrement d'un processeur, puis le paramètre précédent est rétabli une fois l'enregistrement terminé. Vous pouvez modifier ce comportement dans la boîte de dialogue de configuration de l'enregistrement du processeur.

      Le suivi affecte à la fois les objets Java et les références JNI.

    Inspecter les données de rendu des images

    Dans le Profileur de processeur, vous pouvez à présent inspecter le temps nécessaire à votre application Java pour afficher chaque image sur le thread UI principal et sur RenderThread. Ces données peuvent s'avérer utiles pour identifier les goulots d'étranglement qui provoquent des à-coups dans l'interface utilisateur et des fréquences d'images faibles. Par exemple, chaque image qui prend plus de 16 ms pour maintenir une fréquence d'images fluide s'affiche en rouge.

    Pour afficher les données de rendu d'images, enregistrez une trace à l'aide d'une configuration vous permettant de tracer les appels système avec l'option Trace System Calls. Après avoir enregistré la trace, recherchez des informations sur chaque image le long de la chronologie de l'enregistrement dans la section appelée FRAMES, comme illustré ci-dessous.

    Pour en savoir plus sur l'analyse et la résolution des problèmes de fréquence d'images, consultez Affichage lent.

    Fragments dans la chronologie des événements

    La chronologie des événements indique maintenant quand les fragments sont associés ou dissociés. En outre, lorsque vous pointez sur un fragment, une info-bulle indique son état.

    Afficher le texte formaté pour les charges utiles de connexion dans le Profileur de réseau

    Auparavant, le Profileur de réseau n'affichait que du texte brut provenant des charges utiles de connexion. Android Studio 3.3 formate à présent certains types de texte par défaut, y compris JSON, XML et HTML. Dans les onglets Response (Réponse) et Request (Requête), cliquez sur le lien View Parsed (Afficher le texte analysé) pour afficher le texte formaté et cliquez sur le lien View Source (Afficher la source) pour afficher le texte brut.

    Pour en savoir plus, consultez Inspecter le trafic réseau avec le Profileur de réseau.

    Téléchargement automatique des composants du SDK

    Lorsque votre projet a besoin d'un composant SDK des plates-formes SDK, NDK ou CMake, Gradle tente maintenant de télécharger automatiquement les packages requis, à condition que vous ayez déjà accepté les contrats de licence associés à l'aide de SDK Manager.

    Pour en savoir plus, consultez Télécharger automatiquement les packages manquants avec Gradle.

    Prise en charge de Clang-Tidy

    Android Studio prend désormais en charge l'analyse de code statique à l'aide de Clang-Tidy pour les projets qui incluent du code natif. Pour activer la prise en charge de Clang-Tidy, mettez à jour votre NDK vers la version r18 ou ultérieure.

    Vous pouvez ensuite activer ou réactiver les inspections en ouvrant la boîte de dialogue Settings (Paramètres) ou Preferences (Préférences) et en accédant à Editor > Inspections > C/C++ > General > Clang-Tidy (Éditeur > Inspections > C/C++ > Général > Clang-Tidy). Lorsque vous sélectionnez cette inspection dans la boîte de dialogue Settings ou Preferences, vous pouvez également voir la liste des vérifications Clang-Tidy qui sont activées et désactivées dans la section Option du panneau de droite. Pour activer des vérifications supplémentaires, ajoutez-les à la liste, puis cliquez sur Apply (Appliquer).

    Pour configurer Clang-Tidy avec des options supplémentaires, cliquez sur Configure Clang-Tidy Checks Options (Configurer les options des vérifications Clang-Tidy), puis ajoutez-les dans la boîte de dialogue qui s'ouvre.

    Suppression des options de personnalisation C++

    Les options suivantes ont été supprimées de la boîte de dialogue Customize C++ Support (Personnaliser la prise en charge de C++) :

    • Exceptions Support (-fexceptions) (Prise en charge des exceptions (-fexceptions))
    • Runtime Type Information Support (-ftti) (Prise en charge des informations sur le type d'exécution (-ftti))

    Les comportements respectifs sont activés pour tous les projets créés via Android Studio.

    CMake version 3.10.2

    La version 3.10.2 de CMake est à présent incluse dans SDK Manager. Notez que Gradle utilise toujours la version 3.6.0 par défaut.

    Pour spécifier une version CMake pour Gradle, ajoutez ce qui suit au fichier build.gradle de votre module :

        android {
            ...
            externalNativeBuild {
                cmake {
                    ...
                    version "3.10.2"
                }
            }
        }
        
      

    Pour en savoir plus sur la configuration de CMake dans build.gradle, consultez Configurer manuellement Gradle.

    Nouvelle syntaxe "+" pour spécifier les versions minimales de CMake

    Lorsque vous spécifiez une version de CMake dans le fichier build.gradle de votre module principal, vous pouvez maintenant ajouter un signe "+" pour correspondre au comportement de la commande cmake_minimum_required() de CMake.

    Attention : Nous vous déconseillons d'utiliser la syntaxe "+" avec d'autres dépendances de compilation, car les dépendances dynamiques peuvent entraîner des mises à jour de version inattendues et des difficultés à résoudre les différences de version.

    Les Android App Bundles sont maintenant compatibles avec les Applis instantanées

    Android Studio vous permet à présent de compiler des Android App Bundles entièrement compatibles avec Google Play Instant. En d'autres termes, vous pouvez maintenant compiler et déployer à la fois des applis installées et des expériences instantanées à partir d'un seul projet Android Studio et les inclure dans un seul Android App Bundle.

    Si vous créez un projet Android Studio à l'aide de la boîte de dialogue Create New Project, veillez à cocher la case Configure your project > This project will support instant apps (Configurer votre projet > Ce projet prendra en charge les applis instantanées). Android Studio crée ensuite un projet d'application selon la procédure habituelle, mais inclut les propriétés suivantes dans votre fichier manifeste pour que le module de base de votre application prenne en charge les applis instantanées :

        <manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
            <dist:module dist:instant="true" />
            ...
        </manifest>
        
      

    Vous pouvez ensuite créer une fonctionnalité permettant une utilisation instantanée en sélectionnant File > New > New Module (Fichier > Nouveau > Nouveau module) dans la barre de menu, puis en sélectionnant Instant Dynamic Feature Module (Module de fonctionnalité dynamique instantané) dans la boîte de dialogue Create New Module (Créer un module). Gardez à l'esprit que la création de ce module permet également une utilisation instantanée du module de base de votre application.

    Pour déployer votre application sur un appareil local en tant qu'expérience instantanée, modifiez votre configuration d'exécution et cochez la case General > Deploy as instant app (Général > Déployer en tant qu'application instantanée).

    Synchronisation de projets à variante unique

    La synchronisation de votre projet avec votre configuration de compilation est une étape importante pour permettre à Android Studio de comprendre la structure de votre projet. Toutefois, ce processus peut prendre du temps pour les projets de grande envergure. Si votre projet utilise plusieurs variantes de compilation, vous pouvez à présent optimiser les synchronisations du projet en les limitant à la variante qui est actuellement sélectionnée.

    Vous devez utiliser Android Studio 3.3 ou version ultérieure avec le plug-in Android Gradle 3.3.0 ou version ultérieure pour activer cette optimisation. Lorsque vous remplissez ces conditions, l'IDE vous invite à activer cette optimisation lorsque vous synchronisez votre projet. L'optimisation est également activée par défaut sur les nouveaux projets.

    Pour activer cette optimisation manuellement, cliquez sur File > Settings > Experimental > Gradle (Fichier > Paramètres > Expérimental > Gradle) ou Android Studio > Preferences > Experimental > Gradle (Android Studio > Préférences > Expérimental > Gradle) sur Mac, puis cochez la case Synchroniser uniquement la variante active.

    Remarque : Actuellement, cette optimisation ne prend en charge que les projets qui contiennent uniquement le langage de programmation Java. Par exemple, si l'IDE détecte du code Kotlin ou C++ dans votre projet, il n'active pas automatiquement cette optimisation. Vous ne devez donc pas l'activer manuellement.

    Pour en savoir plus, consultez Activer la synchronisation des projets à variante unique.

    Fournir des commentaires rapidement

    Si vous avez choisi de partager les statistiques d'utilisation pour améliorer Android Studio, les deux nouvelles icônes suivantes s'afficheront dans la barre d'état en bas de la fenêtre IDE :

    Il vous suffit de cliquer sur l'icône qui représente le mieux votre expérience avec l'IDE. Lorsque vous procédez de la sorte, l'IDE envoie des statistiques d'utilisation permettant à l'équipe Android Studio de mieux comprendre vos appréciations. Dans certains cas (par exemple, lorsque vous indiquez une expérience négative avec l'IDE), vous avez la possibilité de fournir des commentaires supplémentaires.

    Si vous ne l'avez pas déjà fait, vous pouvez activer le partage des statistiques d'utilisation. Pour cela, ouvrez la boîte de dialogue Settings (Preferences sur Mac), accédez à Appearance & Behavior > System Settings > Data Sharing (Apparence et comportement > Paramètres système > Partage des données), puis cochez la case Send usage statistics to Google (Envoyer des statistiques d'utilisation à Google).

    3.2 (septembre 2018)

    Android Studio 3.2 est une version majeure qui comprend plusieurs nouvelles fonctionnalités et améliorations.

    3.2.1 (octobre 2018)

    Cette mise à jour d'Android Studio 3.2 inclut les modifications et correctifs suivants :

    • La version Kotlin intégrée est maintenant la version 1.2.71.
    • La version par défaut des outils de compilation est à présent la version 28.0.3.
    • Dans la bibliothèque Navigation, les types d'argument type ont été renommés argType.
    • Les bugs suivants ont été corrigés :
      • Lorsque vous utilisiez la bibliothèque Data Binding, les noms de variables comportant des traits de soulignement entraînaient des erreurs de compilation.
      • CMake provoquait l'échec d'IntelliSense et d'autres fonctionnalités de CLion.
      • L'ajout d'un élément SliceProvider entraînait des erreurs de compilation dans les projets qui n'utilisaient pas de bibliothèques androidx.*.
      • Certains tests unitaires Kotlin n'étaient pas exécutés.
      • Un problème de liaison de données entraînait une erreur PsiInvalidElementAccessException.
      • Les éléments <merge> provoquaient parfois le plantage de l'éditeur de mise en page.

    Problèmes connus de la version 3.2.0

    Remarque : Ces problèmes ont été résolus dans Android Studio 3.2.1.

    • Nous vous déconseillons vivement d'utiliser la version 1.2.70 de Kotlin.

      La version 1.2.61 de Kotlin corrige un bug qui peut entraîner le blocage d'Android Studio, mais Kotlin 1.2.70 n'inclut pas ce correctif.

      Cependant, les versions 1.2.71 et ultérieures de Kotlin incluent ce correctif.

    • Bien que vous n'ayez généralement pas besoin de spécifier la version des outils de compilation, lorsque vous utilisez le plug-in Android Gradle 3.2.0 avec renderscriptSupportModeEnabled défini sur true, vous devez inclure les éléments suivants dans le fichier build.gradle de chaque module :

      android.buildToolsVersion "28.0.3"

    Assistant Nouveautés

    Un nouvel assistant vous informe des dernières modifications apportées à Android Studio.

    L'assistant s'ouvre au démarrage d'Android Studio après une nouvelle installation ou mise à jour s'il détecte de nouvelles informations à afficher. Vous pouvez également ouvrir l'assistant en sélectionnant Help > What's new in Android Studio (Aide > Nouveautés d'Android Studio).

    Android Jetpack

    Android Jetpack permet d'accélérer le développement d'Android grâce à des composants, des outils et des conseils qui éliminent les tâches répétitives, et vous permettent de créer plus rapidement et plus facilement des applications testables de haute qualité. Android Studio inclut les mises à jour suivantes pour assurer la compatibilité avec Jetpack. Pour en savoir plus, consultez la documentation de Jetpack.

    Le nouvel éditeur de navigation s'intègre aux composants de navigation d'Android Jetpack pour fournir une vue graphique permettant de créer la structure de navigation de votre application. L'éditeur de navigation simplifie la conception et l'implémentation de la navigation entre les destinations intégrées à l'application.

    Dans Android Studio 3.2, l'éditeur de navigation est une fonctionnalité expérimentale. Pour activer l'éditeur de navigation, cliquez sur File > Settings (Fichier > Paramètres) ou sur Android Studio > Preferences (Android Studio > Préférences) sous Mac, sélectionnez la catégorie Experimental (Expérimental) dans le volet de gauche, cochez la case Enable Navigation Editor (Activer l'éditeur de navigation), puis redémarrez Android Studio.

    Pour en savoir plus, consultez la documentation de l'éditeur de navigation.

    Migration vers AndroidX

    Dans le cadre de Jetpack, nous faisons migrer les bibliothèques Android Support vers une nouvelle bibliothèque d'extensions Android à l'aide de l'espace de noms androidx. Pour en savoir plus, consultez la présentation d'AndroidX.

    Android Studio 3.2 vous aide tout au long de ce processus grâce à une nouvelle fonctionnalité de migration.

    Pour migrer un projet existant vers AndroidX, sélectionnez Refactor > Migrate to AndroidX (Refactoriser > Migrer vers AndroidX). Si vous disposez de dépendances Maven qui n'ont pas été migrées vers l'espace de noms AndroidX, le système de compilation Android Studio convertit également automatiquement ces dépendances de projet.

    Le plug-in Android Gradle fournit les indicateurs globaux suivants que vous pouvez définir dans votre fichier gradle.properties :

    • android.useAndroidX : lorsque cet indicateur est défini sur true, il indique que vous souhaitez commencer à utiliser AndroidX à partir de maintenant. S'il est absent, Android Studio se comporte comme s'il était défini sur false.
    • android.enableJetifier : lorsque cet indicateur est défini sur true, il indique que vous souhaitez disposer d'un outil compatible (à partir du plug-in Android Gradle) pour convertir automatiquement les bibliothèques tierces existantes comme si elles avaient été écrites pour AndroidX. S'il est absent, Android Studio se comporte comme s'il était défini sur false.

    Les deux indicateurs sont définis sur true lorsque vous utilisez la commande Migrate to AndroidX (Migrer vers AndroidX).

    Si vous souhaitez commencer à utiliser les bibliothèques AndroidX immédiatement et que vous n'avez pas besoin de convertir les bibliothèques tierces existantes, vous pouvez définir l'indicateur android.useAndroidX sur true et l'indicateur android.enableJetifier sur false.

    Android App Bundle

    Android App Bundle est un nouveau format d'importation qui inclut l'ensemble du code et des ressources compilés de votre application, mais qui confie la génération des APK et leur signature au Google Play Store.

    Le nouveau modèle de diffusion d'applications de Google Play utilise ensuite votre app bundle pour générer et diffuser des APK optimisés pour la configuration de l'appareil de chaque utilisateur. Ainsi, chaque utilisateur ne télécharge que le code et les ressources nécessaires pour exécuter votre application. Vous n'avez plus besoin de compiler, de signer ni de gérer plusieurs APK, et les utilisateurs bénéficient de téléchargements plus petits et plus optimisés.

    Vous pouvez également ajouter des modules de fonctionnalités à votre projet d'application et les inclure dans votre app bundle. Vos utilisateurs peuvent ensuite télécharger et installer les fonctionnalités de votre application à la demande.

    Pour créer un groupe, sélectionnez Build > Build Bundle(s) / APK(s) > Build Bundle(s) (Compilation > Compiler des bundles/APK > Compiler des bundles).

    Pour obtenir plus d'informations, y compris des instructions sur la compilation et l'analyse d'un Android App Bundle, consultez Android App Bundle.

    Exemple de données dans l'éditeur de mise en page

    De nombreuses mises en page Android comportent des données d'exécution qui peuvent compliquer la visualisation de l'apparence d'une mise en page lors de la phase de conception du développement d'applications. Vous pouvez maintenant prévisualiser facilement votre vue dans l'éditeur de mise en page avec de nombreux exemples de données. Lorsque vous ajoutez une vue, un bouton  apparaît sous la vue dans la fenêtre Conception. Cliquez sur ce bouton pour définir les attributs de la vue au moment de la conception. Vous pouvez choisir parmi plusieurs exemples de modèles de données et spécifier le nombre d'exemples d'éléments qui rempliront la vue.

    Pour essayer d'utiliser des exemples de données, ajoutez une RecyclerView à une nouvelle mise en page. Ensuite, cliquez sur le bouton des attributs au moment de la mise en page  sous la vue, puis choisissez une sélection dans le carrousel d'exemples de modèles de données.

    Segments d'application

    Les segments d'application constituent un nouveau moyen d'intégrer des parties de la fonctionnalité de votre application dans d'autres surfaces d'interface utilisateur sur Android. Par exemple, les segments d'application permettent d'afficher le fonctionnement et le contenu de l'application dans les suggestions de recherche Google.

    Android Studio 3.2 dispose d'un modèle intégré pour vous aider à étendre votre application avec les nouvelles API Slice Provider, ainsi que de nouvelles vérifications lint pour vous assurer de suivre les bonnes pratiques lors de la création des segments d'application.

    Pour commencer, effectuez un clic droit sur un dossier de projet et sélectionnez New > Other > Slice Provider (Nouveau > Autre > Fournisseur de segments d'application).

    Pour en savoir plus et découvrir comment tester les interactions de segments d'application, lisez le guide de démarrage des segments d'application.

    Kotlin 1.2.61

    Android Studio 3.2 intègre Kotlin 1.2.61 et le nouveau SDK Android est mieux intégré dans Kotlin. Pour en savoir plus, consultez le blog des développeurs Android.

    IntelliJ IDEA 2018.1.6

    L'IDE principal d'Android Studio a été mis à jour avec les améliorations d'IntelliJ IDEA via la version 2018.1.6.

    Profileurs Android

    Essayez les nouvelles fonctionnalités du Profileur Android suivantes dans Android Studio 3.2.

    Sessions

    Vous pouvez à présent enregistrer les données du profileur en tant que sessions pour les revoir et les inspecter plus tard. Le profileur conserve les données de votre session jusqu'à ce que vous redémarriez l'IDE.

    Lorsque vous enregistrez une trace de méthode ou capturez une empreinte de la mémoire, l'IDE ajoute ces données (ainsi que l'activité réseau de votre application) en tant qu'entrée distincte de la session en cours. Vous pouvez facilement basculer entre les enregistrements pour comparer les données.

    Trace système

    Dans le Profileur de processeur, sélectionnez la nouvelle configuration System Trace (Trace système) pour examiner l'activité du thread et du processeur système de votre appareil. Cette configuration de trace est basée sur systrace et est utile pour analyser les problèmes au niveau du système, tels que les à-coups dans l'interface utilisateur.

    Lorsque vous utilisez cette configuration de trace, vous pouvez marquer visuellement des routines de code importantes dans la chronologie du profileur en instrumentant votre code C/C++ avec l'API de traçage natif ou votre code Java avec la classe Trace.

    Inspecter les références JNI dans le Profileur de mémoire

    Si vous déployez votre application sur un appareil équipé d'Android 8.0 (niveau d'API 26) ou version ultérieure, vous pouvez à présent inspecter les allocations de mémoire pour le code JNI de votre application à l'aide de l'outil Profileur de mémoire.

    Pendant l'exécution de votre application, sélectionnez une partie de la chronologie que vous souhaitez inspecter, puis sélectionnez JNI heap (Tas de mémoire JNI) dans le menu déroulant situé au-dessus de la liste des classes, comme illustré ci-dessous. Vous pouvez ensuite inspecter les objets du tas de mémoire comme vous le feriez normalement et double-cliquer sur les objets dans l'onglet Allocation Call Stack (Pile d'appel de l'allocation) pour voir où les références JNI sont allouées et publiées dans votre code.

    Importer, exporter et inspecter des fichiers d'empreinte de la mémoire

    Vous pouvez désormais importer, exporter et inspecter des fichiers d'empreinte de mémoire .hprof créés avec le Profileur de mémoire.

    Importez votre fichier .hprof en cliquant sur Start new profiler session (Démarrer une nouvelle session de profileur)  dans le volet Sessions du profileur, puis en sélectionnant Load from file (Charger à partir du fichier). Vous pouvez ensuite inspecter ses données dans le Profileur de mémoire comme vous le feriez pour toute autre empreinte de la mémoire.

    Pour enregistrer des données d'empreinte de la mémoire afin de les consulter ultérieurement, cliquez sur le bouton Export Heap Dump (Exporter l'empreinte de la mémoire) à droite de l'entrée Heap Dump (Empreinte de la mémoire) dans le volet Sessions. Dans la boîte de dialogue Export As (Exporter sous forme de) qui s'affiche, enregistrez le fichier avec l'extension .hprof.

    Enregistrer l'activité du processeur au démarrage de l'application

    Vous pouvez maintenant enregistrer l'activité du processeur au démarrage de votre application, comme suit :

    1. Sélectionnez Run > Edit Configurations (Exécuter > Modifier les configurations) dans le menu principal.
    2. Dans l'onglet Profiling (Profilage) de la configuration d'exécution souhaitée, cochez la case Start recording a method trace on startup (Commencer à enregistrer une trace de méthode au démarrage).
    3. Sélectionnez une configuration d'enregistrement de processeur à utiliser dans le menu déroulant.
    4. Déployez votre application sur un appareil équipé d'Android 8.0 (niveau d'API 26) ou version ultérieure en sélectionnant Run > Profile (Exécuter > Profil).
    Exporter les traces du processeur

    Après avoir enregistré l'activité du processeur avec le Profileur de processeur, vous pouvez exporter les données sous la forme d'un fichier .trace pour les partager avec d'autres utilisateurs ou les inspecter ultérieurement.

    Pour exporter une trace après avoir enregistré l'activité du processeur, procédez comme suit :

    1. Effectuez un clic droit sur l'enregistrement à exporter depuis la chronologie du processeur.
    2. Sélectionnez Export trace (Exporter la trace) dans le menu déroulant.
    3. Accédez à l'emplacement dans lequel vous souhaitez enregistrer le fichier, puis cliquez sur Save (Enregistrer).
    Importer et inspecter les fichiers de suivi du processeur

    Vous pouvez à présent importer et inspecter des fichiers .trace créés avec l'API Debug ou le Profileur de processeur. (Pour le moment, vous ne pouvez pas importer d'enregistrements de trace système.)

    Importez votre fichier de suivi en cliquant sur Start new profiler session (Démarrer une nouvelle session de profileur)  dans le volet Sessions du profileur, puis en sélectionnant Load from file (Charger à partir du fichier). Vous pouvez ensuite inspecter ses données dans le Profileur de processeur comme vous le feriez normalement, avec les exceptions suivantes :

    • L'activité du processeur n'est pas représentée dans la chronologie du processeur.
    • La chronologie d'activité des threads indique uniquement l'endroit où les données de trace sont disponibles pour chaque thread, et non les états réels des threads (en cours d'exécution, en attente ou en veille, par exemple).
    Enregistrer l'activité du processeur à l'aide de l'API Debug

    Vous pouvez à présent démarrer et arrêter l'enregistrement de l'activité du processeur dans le Profileur de processeur en instrumentant votre application avec l'API Debug. Une fois votre application déployée sur un appareil, le profileur commence automatiquement à enregistrer l'activité du processeur lorsque votre application appelle startMethodTracing(String tracePath) et arrête l'enregistrement lorsque votre application appelle stopMethodTracing(). Lors de l'enregistrement de l'activité du processeur déclenchée à l'aide de cette API, le Profileur de processeur indique API Debug comme configuration d'enregistrement du processeur sélectionnée.

    Profileur d'énergie

    Le Profileur d'énergie affiche une estimation de la consommation d'énergie de votre application, ainsi que des événements système qui affectent la consommation d'énergie, tels que les wakelocks, les alarmes et les jobs.

    Le Profileur d'énergie apparaît sous la forme d'une nouvelle ligne au bas de la fenêtre Profileur lorsque vous exécutez votre application sur un appareil connecté ou sur Android Emulator avec Android 8.0 (API 26) ou version ultérieure.

    Cliquez sur la ligne Energy (Énergie) pour agrandir la vue "Energy Profiler" (Profileur d'énergie). Placez le curseur de la souris sur une barre de la chronologie pour afficher la répartition de la consommation d'énergie en fonction des ressources de processeur, de réseau et de localisation (GPS), ainsi que des événements système pertinents.

    Les événements système qui affectent la consommation d'énergie sont indiqués dans la chronologie System, (Système) sous la chronologie Energy. Les détails des événements système sur la période spécifiée s'affichent dans le volet des événements lorsque vous sélectionnez une période dans la chronologie Energy.

    Pour afficher la pile d'appel et d'autres détails concernant un événement système, tel qu'un wakelock, sélectionnez-le dans le volet des événements. Pour accéder au code responsable d'un événement système, double-cliquez sur l'entrée dans la pile d'appel.

    Vérifications lint

    Android Studio 3.2 inclut de nombreuses nouvelles fonctionnalités améliorées pour la vérification lint.

    Les nouvelles vérifications lint vous aident à détecter et à identifier les problèmes de code courants, allant des avertissements sur les problèmes potentiels d'usabilité à des erreurs de haute priorité concernant d'éventuelles failles de sécurité.

    Vérifications lint pour l'interopérabilité Java/Kotlin

    Pour vous assurer que votre code Java fonctionne correctement avec votre code Kotlin, de nouvelles vérifications lint appliquent les bonnes pratiques décrites dans le guide d'interopérabilité Kotlin. Ces vérifications incluent, par exemple, la recherche de la présence d'annotations signalant la possibilité de valeur nulle, l'utilisation de mots clés fixes Kotlin et le positionnement des paramètres lambda en dernier.

    Pour activer ces vérifications, cliquez sur File > Settings (Fichier > Paramètres) ou Android Studio > Preferences (Android Studio > Préférences) sur Mac pour ouvrir la boîte de dialogue Settings(Paramètres), accédez à la section Editor > Inspections > Android > Lint > Interoperability > Kotlin Interoperability (Éditeur > Inspections > Android > Lint > Interopérabilité > Interopérabilité Kotlin), puis sélectionnez les règles que vous souhaitez activer.

    Pour activer ces vérifications pour les builds de ligne de commande, ajoutez ce qui suit à votre fichier build.gradle :

            android {
                lintOptions {
                    check 'Interoperability'
                }
            }
            
          
    Vérifications lint pour les segments d'application

    De nouvelles vérifications lint pour les segments d'application vous permettent de vous assurer que vous les créez correctement. Par exemple, les vérifications lint vous avertissent si vous n'avez attribué aucune action principale à un segment d'application.

    Nouvelle cible Gradle

    Utilisez la nouvelle tâche Gradle lintFix pour appliquer directement au code source tous les correctifs sécurisés suggérés par la vérification lint. SyntheticAccessor est un exemple de vérification lint qui suggère un correctif sécurisé à appliquer.

    Mises à jour des métadonnées

    Différentes métadonnées, telles que la vérification de la diffusion du service, ont été mises à jour pour que les vérifications lint fonctionnent avec Android 9 (niveau d'API 28).

    Avertissement en cas d'exécution de lint sur une nouvelle variante

    Lint enregistre à présent la variante et la version avec lesquelles une référence est enregistrée, et vous avertit si vous l'exécutez sur une variante différente de celle avec laquelle la référence a été créée.

    Améliorations apportées aux vérifications lint existantes

    Android Studio 3.2 inclut de nombreuses améliorations apportées aux vérifications lint existantes. Par exemple, les vérifications du cycle de ressources s'appliquent désormais à d'autres types de ressources, et le détecteur de traduction peut détecter à la volée les traductions manquantes dans l'éditeur.

    ID de problème plus facilement détectables

    Les ID de problème sont maintenant affichés à d'autres emplacements, y compris dans la fenêtre Inspection Results (Résultats de l'inspection). Vous pouvez ainsi trouver plus facilement les informations dont vous avez besoin pour activer ou désactiver des vérifications spécifiques via lintOptions dans build.gradle.

    Pour en savoir plus, consultez Configurer les options lint avec Gradle.

    Data Binding V2

    Data Binding V2 est désormais activé par défaut et compatible avec V1. Cela signifie que si vous avez compilé des dépendances de bibliothèque avec la version 1, vous pouvez les utiliser avec des projets utilisant Data Binding V2. Notez toutefois que les projets utilisant la version 1 ne peuvent pas utiliser les dépendances compilées avec la version 2.

    Désucrage D8

    Dans Android Studio 3.1, nous avons intégré l'étape de désucrage dans l'outil D8 en tant que fonctionnalité expérimentale, ce qui réduit la durée de compilation globale. Dans Android Studio 3.2, le désucrage avec D8 est activé par défaut.

    Nouvel outil de minification de code

    R8 est un nouvel outil d'obscurcissement et de minification de code qui remplace ProGuard. Vous pouvez commencer à utiliser la version preview de R8 en incluant les éléments suivants dans le fichier gradle.properties de votre projet :

          android.enableR8 = true
        

    Modification des ABI par défaut pour plusieurs APK

    Lorsque vous compilez plusieurs APK qui ciblent chacun une ABI différente, par défaut, le plug-in ne génère plus d'APK pour les ABI suivantes : mips, mips64 et armeabi

    Si vous souhaitez compiler des APK ciblant ces ABI, vous devez utiliser NDK r16b ou une version antérieure et les spécifier dans votre fichier build.gradle, comme indiqué ci-dessous :

        splits {
            abi {
                include 'armeabi', 'mips', 'mips64'
                ...
            }
        }
        
        splits {
            abi {
                include("armeabi", "mips", "mips64")
                ...
            }
        }
        

    Remarque : Ce changement de comportement est également inclus dans Android Studio 3.1 RC1 et versions ultérieures.

    Amélioration des fonctionnalités de l'éditeur pour les fichiers de compilation CMake

    Si vous utilisez CMake pour ajouter du code C et C++ à votre projet, Android Studio inclut à présent des fonctionnalités d'éditeur améliorées pour vous aider à modifier vos scripts de compilation CMake, par exemple :

    • Mise en surbrillance de la syntaxe et achèvement du code : l'IDE met à présent en évidence et suggère la saisie semi-automatique du code pour les commandes CMake courantes. Vous pouvez également accéder à un fichier en cliquant dessus tout en appuyant sur la touche Ctrl (Commande sur Mac).
    • Code reformatting (Reformatage du code) : vous pouvez maintenant utiliser l'option de reformatage du code d'IntelliJ pour appliquer des styles de code à vos scripts de compilation CMake.
    • Safe refactoring (Refactorisation sécurisée) : les outils de refactorisation intégrés de l'IDE vérifient à présent si vous renommez ou supprimez des fichiers que vous référencez dans vos scripts de compilation CMake.

    Lorsque vous utilisiez la fenêtre Project dans les versions antérieures d'Android Studio, vous pouviez parcourir et inspecter uniquement les fichiers d'en-tête appartenant aux bibliothèques que vous aviez compilées à partir d'un projet local. Avec cette version, vous pouvez également afficher et inspecter les fichiers d'en-tête inclus dans les dépendances de bibliothèques C/C++ externes que vous importez dans votre projet d'application.

    Si vous incluez déjà des bibliothèques et du code C/C++ dans votre projet, ouvrez la fenêtre Project dans la partie gauche de l'IDE en sélectionnant View > Tool Windows > Project (Vue > Fenêtres d'outils > Projet) dans le menu principal, puis sélectionnez Android dans le menu déroulant. Dans le répertoire cpp, tous les en-têtes situés dans le champ d'application de votre projet d'application sont organisés sous le nœud include pour chacune de vos dépendances de bibliothèques C/C++ locales, comme illustré ci-dessous.

    Multidex natif activé par défaut

    Les versions précédentes d'Android Studio activaient le multidex natif lors du déploiement de la version de débogage d'une application sur un appareil exécutant le niveau d'API 21 ou supérieur d'Android Désormais, que vous effectuiez le déploiement sur un appareil ou que vous compiliez un APK en vue de sa publication, le plug-in Android pour Gradle active le multidex natif pour tous les modules qui définissent minSdkVersion=21 ou plus.

    Déplacement d'AAPT2 vers le dépôt Maven de Google

    Depuis Android Studio 3.2, le dépôt Maven de Google est la source d'AAPT2 (Android Asset Packaging Tool 2).

    Pour utiliser AAPT2, assurez-vous que votre fichier build.gradle comporte une dépendance google(), comme indiqué ci-dessous :

        buildscript {
            repositories {
                google() // here
                jcenter()
            }
            dependencies {
                classpath 'com.android.tools.build:gradle:3.2.0'
            }
        }
        allprojects {
            repositories {
                google() // and here
                jcenter()
            }
        }
        
        buildscript {
            repositories {
                google() // here
                jcenter()
            }
            dependencies {
                classpath("com.android.tools.build:gradle:3.2.0")
            }
        }
        allprojects {
            repositories {
                google() // and here
                jcenter()
            }
        }
        

    La nouvelle version d'AAPT2 corrige de nombreux problèmes, y compris une meilleure gestion des caractères non ASCII sous Windows.

    Suppression de la configuration à la demande

    La préférence Configure on demand (Configuration à la demande) a été supprimée d'Android Studio.

    Android Studio ne transmet plus l'argument --configure-on-demand à Gradle.

    Assistant de connexion ADB

    Le nouvel assistant de connexion ADB fournit des instructions détaillées pour vous aider à configurer et à utiliser un appareil via la connexion Android Debug Bridge (ADB).

    Pour lancer l'assistant, sélectionnez Tools > Connection Assistant (Outils > Assistant de connexion).

    L'assistant de connexion ADB fournit des instructions, des commandes en contexte et une liste d'appareils connectés dans une série de pages du panneau Assistant.

    Améliorations de l'émulateur

    Vous pouvez à présent enregistrer et charger des instantanés d'un AVD (appareil virtuel Android) à tout moment dans Android Emulator. Vous pouvez ainsi faire revenir rapidement et facilement un appareil émulé à un état connu en vue de le tester. Lorsque vous modifiez un AVD à l'aide d'AVD Manager, vous pouvez spécifier l'instantané AVD à charger au démarrage de l'AVD.

    Les commandes permettant d'enregistrer, de charger et de gérer les instantanés AVD sont maintenant disponibles dans l'onglet Snapshots (Instantanés) de la fenêtre Extended controls (Commandes avancées) de l'émulateur.

    Pour en savoir plus, consultez Instantanés.

    Pour plus d'informations sur les nouveautés et les modifications apportées à l'émulateur, consultez les notes de version de l'émulateur.

    3.1 (mars 2018)

    Android Studio 3.1.0 est une version majeure qui comprend plusieurs nouvelles fonctionnalités et améliorations.

    3.1.4 (août 2018)

    Cette mise à jour d'Android Studio 3.1 inclut les modifications et correctifs suivants :

    • La version Kotlin intégrée est maintenant la version 1.2.50.
    • Les nouveaux projets sont créés avec kotlin-stdlib-jdk* artifacts plutôt qu'avec des artefacts kotlin-stdlib-jre*, qui sont obsolètes.
    • L'analyse R8 des règles ProGuard a été améliorée.
    • Les bugs suivants ont été corrigés :
      • Les tentatives d'exécution de la classe principale Kotlin échouaient avec l'erreur suivante : "Error: Could not find or load main class..."
      • R8 entrait dans une boucle infinie lors de l'exécution de certaines optimisations.
      • Lorsque vous utilisiez la commande Rerun failed tests (Relancer les tests ayant échoué) dans la fenêtre Run (Exécuter), le message "No tests were found" (Aucun test n'a été trouvé) était parfois renvoyé à tort.
      • D8 ne gérait pas correctement les instances invoke-virtual, provoquant un plantage avec l'erreur VerifyError: invoke-super/virtual can't be used on private method.
      • Le compilateur de liaison de données dépendait d'une ancienne version de com.android.tools:annotations. Le compilateur utilise à présent les annotations d'outils du projet de base lorsqu'elles sont disponibles.
      • Android Studio plantait pendant les transitions de fragments lors de l'utilisation de profileurs.
      • Le débogueur plantait lors du débogage d'une mise en page avec une zone de texte.
      • D8 ne parvenait pas à lire certains fichiers ZIP contenant des caractères spéciaux.

    3.1.3 (juin 2018)

    Cette mise à jour d'Android Studio 3.1 corrige les bugs suivants :

    • En raison de fuites de mémoire, Android Studio devenait lent et cessait de répondre après l'utilisation de l'éditeur de mise en page. Cette mise à jour inclut des correctifs pour la plupart de ces problèmes. Nous prévoyons de publier bientôt une autre mise à jour pour corriger les fuites de mémoire supplémentaires.
    • Certaines applications compilées avec D8 plantaient sur certaines tablettes Verizon Ellipsis.
    • L'installation d'applications compilées avec D8 échouait avec l'erreur INSTALL_FAILED_DEXOPT sur les appareils équipés d'Android 5.0 ou 5.1 (niveau d'API 21 ou 22).
    • Certaines applications qui utilisaient la bibliothèque OkHttp et étaient compilées avec D8 plantaient sur les appareils équipés d'Android 4.4 (niveau d'API 19).
    • Le démarrage d'Android Studio échouait parfois avec une ProcessCanceledException lors de l'initialisation de la classe pour com.intellij.psi.jsp.JspElementType.

    3.1.2 (avril 2018)

    Cette mise à jour d'Android Studio 3.1 corrige les bugs suivants :

    • Dans certains cas, Android Studio se bloquait indéfiniment pendant la fermeture.
    • Les builds configurés avec des ensembles de sources échouaient avec le message suivant lorsque l'exécution instantanée était activée :

      "The SourceSet name is not recognized by the Android Gradle Plugin."

    • Lorsque l'exécution instantanée était activée, les compilations de nouveaux projets Kotlin échouaient lorsqu'elles étaient déclenchées par la commande Run (Exécuter).
    • Lors de la modification du fichier build.gradle, il y avait parfois un retard important entre la saisie d'un caractère et son affichage à l'écran.
    • Des échecs de compilation se produisaient lors de la conversion au format .dex dans certains projets comportant un grand nombre de modules ou de dépendances externes, avec le message d'erreur suivant :

      "RejectedExecutionException: Thread limit exceeded replacing blocked worker"

    • Le calcul de la liste DEX principale D8 ne prenait pas en compte certains appels réfléchis.

    Cette mise à jour comprend également des modifications qui permettent, dans certains cas, d'exécuter beaucoup plus rapidement des vérifications lint à partir de Gradle.

    3.1.1 (avril 2018)

    Cette mise à jour d'Android Studio 3.1 corrige les bugs suivants :

    • Dans certains cas, lorsqu'un projet créé dans Android Studio 3.0 était ouvert pour la première fois dans Android Studio 3.1, la tâche de création compatible avec Gradle était supprimée de la section Before launch (Avant le lancement) de la boîte de dialogue Run/Debug Configurations (Configurations d'exécution/de débogage). Résultat : les projets n'étaient compilés lorsque l'utilisateur cliquait sur le bouton Run (Exécuter) ou Debug (Déboguer), ce qui entraînait des échecs, tels que le déploiement d'APK incorrects et de plantages lors de l'exécution instantanée.

      Pour résoudre ce problème, Android Studio 3.1.1 ajoute la tâche de création compatible avec Gradle à la configuration d'exécution pour les projets qui ne comportent pas cette entrée. Cette modification se produit après la première synchronisation de Gradle lors du chargement du projet.

    • Le débogueur plantait lors du débogage d'une mise en page avec une zone de texte si le profilage avancé était activé.
    • Android Studio se figeait lorsque vous cliquiez sur Build Variants (Variantes de compilation).
    • Les fichiers AAR (archive Android) étaient extraits deux fois : une fois lors du processus de synchronisation Gradle et une fois pendant le processus de compilation Gradle.
    • Il manquait des éléments dans certains drawables vectoriels importés à partir de fichiers SVG.
    • L'avertissement concernant l'abandon de la configuration de dépendance compile a été mis à jour avec de meilleurs conseils concernant les configurations implementation et api. Pour en savoir plus sur la migration sans utiliser la configuration compile, consultez la documentation sur les nouvelles configurations de dépendances.

    Codage/IDE

    IntelliJ 2017.3.3

    L'IDE principal d'Android Studio a été mis à jour avec les améliorations d'IntelliJ IDEA via la version 2019.3.3. Les améliorations incluent une meilleure analyse du flux de contrôle pour les collections et les chaînes, une meilleure inférence de possibilité de valeur nulle, de nouvelles corrections rapides, et bien plus encore.

    Pour en savoir plus, consultez les notes de version JetBrains pour les versions 2017.2 et 2017.3 d'IntelliJ IDEA, ainsi que les notes de version JetBrains concernant les mises à jour de corrections de bugs.

    Améliorations de la modification du langage SQL avec Room

    Lorsque vous utilisez la bibliothèque de base de données Room, vous pouvez bénéficier de plusieurs améliorations apportées à la modification du langage SQL :

    • La saisie du code dans une Query comprend les tables SQL (entités), les colonnes, les paramètres de requête, les alias, les jointures, les sous-requêtes et les clauses WITH.
    • La mise en surbrillance de la syntaxe SQL est maintenant possible.
    • Vous pouvez effectuer un clic droit sur un nom de table dans SQL et la renommer, ce qui réécrit également le code Java ou Kotlin correspondant (par exemple, le type renvoyé de la requête). Le changement de nom fonctionne également dans l'autre sens. En d'autres termes, renommer une classe ou un champ Java réécrit le code SQL correspondant.
    • Les utilisations SQL sont affichées lorsque vous cliquez sur Trouver les utilisations (effectuez un clic droit et sélectionnez Trouver les utilisations dans le menu contextuel).
    • Pour accéder à la déclaration d'une entité SQL dans le code Java ou Kotlin, vous pouvez maintenir la touche Ctrl (Commande sur Mac) enfoncée tout en cliquant sur l'entité.

    Pour en savoir plus sur l'utilisation de SQL avec Room, consultez Enregistrer des données dans une base de données locale à l'aide de Room.

    Mises à jour de la liaison de données

    Cette mise à jour inclut plusieurs améliorations pour la liaison de données :

    • Vous pouvez maintenant utiliser un objet LiveData comme champ observable dans les expressions de liaison de données. La classe ViewDataBinding inclut à présent une nouvelle méthode setLifecycle() que vous utilisez pour observer des objets LiveData.

    • La classe ObservableField peut désormais accepter d'autres objets Observable dans son constructeur.

    • Vous pouvez prévisualiser un nouveau compilateur incrémentiel pour vos classes de liaison de données. Pour en savoir plus sur ce nouveau compilateur et obtenir des instructions d'activation, consultez Data Binding Compiler V2.

      Voici les avantages du nouveau compilateur :

      • Les classes ViewBinding sont générées par le plug-in Android pour Gradle avant le compilateur Java.
      • Les bibliothèques conservent leurs classes de liaison générées lorsque l'application est compilée, au lieu d'être régénérées à chaque fois. Cela peut améliorer considérablement les performances des projets multimodules.

    Compilateur et Gradle

    D8 est le compilateur DEX par défaut

    Le compilateur D8 est maintenant utilisé par défaut pour générer le bytecode DEX.

    Ce nouveau compilateur DEX apporte de nombreux avantages. En voici quelques-uns :

    • Conversion plus rapide au format .dex
    • Utilisation de mémoire réduite
    • Génération de code améliorée (meilleure allocation de registre, tables de chaînes plus intelligentes)
    • Meilleure expérience de débogage lors de l'exécution du code

    Vous n'avez pas besoin de modifier votre code ni votre workflow de développement pour bénéficier de ces avantages, sauf si vous avez précédemment désactivé manuellement le compilateur D8.

    Si vous définissez android.enableD8 sur false dans gradle.properties, supprimez cet indicateur ou définissez-le sur true :

            android.enableD8=true
          

    Pour en savoir plus, consultez Nouveau compilateur DEX.

    Désucrage incrémentiel

    Pour les projets qui utilisent les fonctionnalités du langage Java 8, le désucrage incrémentiel est activé par défaut, ce qui peut améliorer les durées de compilation.

    Le désucrage convertit le sucre syntaxique dans un format que le compilateur peut traiter plus efficacement.

    Vous pouvez désactiver le désucrage incrémentiel en indiquant ce qui suit dans le fichier gradle.properties de votre projet :

            android.enableIncrementalDesugaring=false
          
    Fenêtre de sortie simplifiée

    Gradle Console (Console Gradle) a été remplacée par la fenêtre Build (Compilation), qui comporte les onglets Sync (Synchronisation) et Build.

    Pour savoir comment utiliser la nouvelle fenêtre Build simplifiée, consultez Surveiller le processus de compilation.

    Mises à jour groupées et simultanéité d'indexation

    Les processus de synchronisation Gradle et d'indexation IDE sont à présent beaucoup plus efficaces, ce qui réduit le temps perdu sur de nombreuses opérations d'indexation redondantes.

    C++ et LLDB

    Nous avons amélioré la qualité et les performances des phases de codage, de synchronisation, de compilation et de débogage du développement C++. Voici les améliorations apportées :

    • Si vous travaillez sur des projets C++ de grande envergure, vous devriez constater une réduction significative du temps consacré à la compilation de symboles. La durée de synchronisation est aussi considérablement réduite pour les projets de grande envergure.

    • Les performances de compilation et de synchronisation avec CMake ont été améliorées grâce à une réutilisation plus agressive des résultats mis en cache.

    • L'ajout de formateurs ("impression élégante") pour un plus grand nombre de structures de données C++ facilite la lecture de la sortie LLDB.

    • Désormais, LLDB ne fonctionne qu'avec Android 4.1 (niveau d'API 16) et versions ultérieures.

    Remarque : Le débogage natif avec Android Studio 3.0 ou version ultérieure ne fonctionne pas sur les systèmes Windows 32 bits. Si vous utilisez Windows 32 bits et que vous devez déboguer du code natif, utilisez Android Studio 2.3.

    Kotlin

    Mise à niveau de Kotlin vers la version 1.2.30

    Android Studio 3.1 inclut la version 1.2.30 de Kotlin.

    Le code Kotlin est à présent analysé avec la vérification lint en ligne de commande

    L'exécution de lint à partir de la ligne de commande vous permet maintenant d'analyser vos classes Kotlin.

    Pour chaque projet sur lequel vous souhaitez exécuter lint, le dépôt Maven de Google doit être inclus dans le fichier build.gradle de premier niveau. Le dépôt Maven est déjà inclus pour les projets créés dans Android Studio 3.0 et versions ultérieures.

    Outils d'optimisation des performances

    Exemples de processus C++ natifs avec le Profileur de processeur

    Le Profileur de processeur inclut à présent une configuration par défaut pour enregistrer des échantillons de traces des threads natifs de votre application. Vous pouvez utiliser cette configuration en déployant votre application sur un appareil équipé d'Android 8.0 (niveau d'API 26) ou version ultérieure, puis en sélectionnant Sampled (Native) (Échantillonné (natif)) dans le menu déroulant des configurations d'enregistrement du Profileur de processeur. Ensuite, enregistrez et inspectez une trace comme vous le feriez normalement.

    Vous pouvez modifier les paramètres par défaut, tels que l'intervalle d'échantillonnage, en créant une configuration d'enregistrement.

    Pour revenir au traçage de vos threads Java, sélectionnez une configuration Sampled (Java) (Échantillonné (Java)) ou Instrumented (Java) (Instrumenté (Java)).

    Filtrer les traces du processeur, les résultats d'allocation de mémoire et les empreintes de la mémoire

    Le Profileur de processeur et le Profileur de mémoire incluent une fonctionnalité de recherche qui vous permet de filtrer les résultats de l'enregistrement d'une trace de méthode, d'allocations de mémoire ou d'une empreinte de la mémoire.

    Pour effectuer une recherche, cliquez sur Filter (Filtrer) en haut à droite du volet, saisissez votre requête, puis appuyez sur Entrée.

    Conseil : Vous pouvez aussi ouvrir le champ de recherche en appuyant sur Ctrl+F (Commande+F sur Mac).

    Dans l'onglet Flame Chart (Graphique de flammes) du Profileur de processeur, les piles d'appels qui contiennent des méthodes liées à votre requête de recherche sont mises en surbrillance et déplacées vers la gauche du graphique.

    Pour en savoir plus sur le filtrage par méthode, classe ou nom de package, consultez Enregistrer et inspecter les traces de méthode.

    Onglet "Requête" du Profileur de réseau

    Le Profileur de réseau contient à présent un onglet Request (Requête) qui fournit des détails sur les requêtes réseau sur la chronologie sélectionnée. Dans les versions précédentes, le Profileur de réseau ne fournissait que des informations sur les réponses du réseau.

    Vue "Thread" du Profileur de réseau

    Après avoir sélectionné une partie de la chronologie dans le Profileur de réseau, vous pouvez sélectionner l'un des onglets suivants pour afficher plus d'informations sur l'activité réseau au cours de cette période :

    • Connection View (Vue "Connexion") : fournit les mêmes informations que les versions précédentes d'Android Studio. Elle présente les fichiers envoyés ou reçus au cours de la partie sélectionnée de la chronologie sur l'ensemble des threads de processeur de votre application. Pour chaque requête, vous pouvez inspecter la taille, le type, l'état et la durée de la transmission.
    • Thread View (Vue "Thread") : affiche l'activité réseau de chacun des threads de processeur de votre application. Cette vue vous permet d'identifier les threads de votre application qui sont responsables de chaque requête réseau.

    Outil d'inspection de la mise en page

    L'outil d'inspection de la mise en page s'est enrichi de nouvelles fonctionnalités, y compris de fonctionnalités qui auparavant étaient fournies par les outils Hierarchy Viewer et Pixel Perfect, désormais obsolètes :

    • Boutons de zoom et raccourcis clavier pour parcourir et inspecter les mises en page
    • Superposition de la grille de référence
    • Possibilité de charger une image de référence et de l'utiliser comme superposition (utile pour comparer votre mise en page avec une maquette d'interface utilisateur)
    • Afficher un aperçu de la sous-arborescence pour isoler une vue dans une mise en page complexe

    Éditeur de mise en page

    La palette de l'éditeur de mise en page a fait l'objet de nombreuses améliorations :

    • Réorganisation des catégories pour les vues et les mises en page.
    • Nouvelle catégorie Common (Courant) pour les vues et les mises en page, que vous pouvez ajouter à l'aide d'une commande Favorite (Favori).
    • Amélioration de la recherche de vues et de mises en page.
    • Nouvelles commandes permettant d'ouvrir la documentation pour un élément de vue ou de mise en page spécifique.

    Vous pouvez utiliser la nouvelle commande Convert view (Convertir la vue) de Component tree (Arborescence des composants) ou de l'éditeur de conception pour convertir une vue ou une mise en page dans un autre type.

    Désormais, vous pouvez créer facilement des contraintes sur les éléments proches de la vue sélectionnée à l'aide des nouveaux boutons Create a connection (Créer une connexion)  dans l'inspecteur de vue en haut de la fenêtre Attributes (Attributs).

    Exécution et exécution instantanée

    Le comportement de l'option Use same selection for future launches (Utiliser la même sélection pour les futurs lancements) de la boîte de dialogue Select deployment target (Sélectionner une cible de déploiement) est maintenant plus cohérent. Si l'option Use same selection (Utiliser la même sélection) est activée, la boîte de dialogue Select deployment target (Sélectionner une cible de déploiement) ne s'ouvre que la première fois que vous utilisez la commande Run (Exécuter) jusqu'à ce que l'appareil sélectionné ne soit plus connecté.

    Lorsque vous ciblez un appareil équipé d'Android 8.0 (niveau d'API 26) ou version ultérieure, l'exécution instantanée peut déployer des modifications sur les ressources sans entraîner le redémarrage de l'application. Cela est possible, car les ressources sont contenues dans un APK divisé.

    Émulateur

    Pour en savoir plus sur les nouveautés et les modifications apportées à l'émulateur depuis Android Studio 3.0, consultez les notes de version d'Android Emulator de la version 27.0.2 à la version 27.1.12.

    Voici les principales améliorations apportées :

    • Instantanés Quick Boot pour enregistrer l'état de l'émulateur et un démarrage plus rapide, avec la possibilité d'utiliser la commande Save now (Enregistrer maintenant) pour enregistrer un état de démarrage personnalisé.
    • Écran d'émulateur sans fenêtre.
    • Images système pour Android 8.0 (niveau d'API 26), Android 8.1 (niveau d'API 27) et Preview développeur d'Android P.

    Améliorations de l'interface utilisateur et de l'expérience utilisateur

    Plus grand nombre d'info-bulles, de raccourcis clavier et de messages utiles

    Nous avons ajouté des info-bulles et des superpositions de messages utiles à de nombreux endroits dans Android Studio.

    Pour afficher les raccourcis clavier de nombreuses commandes, positionnez le pointeur de la souris sur un bouton jusqu'à ce que l'info-bulle s'affiche.

    Menu Outils > Android supprimé

    Le menu Tools > Android (Outils > Android) a été supprimé. Les commandes qui se trouvaient dans ce menu ont été déplacées.

    • De nombreuses commandes ont été placées directement dans le menu Tools (Outils).
    • La commande Sync project with gradle files (Synchroniser le projet avec les fichiers Gradle) a été déplacée dans le menu File (Fichier).
    • La commande Device Monitor (Moniteur d'appareil) a été supprimée, comme décrit ci-dessous.

    Moniteur d'appareil disponible à partir de la ligne de commande

    Dans Android Studio 3.1, le moniteur d'appareil n'a pas le même rôle qu'auparavant. Dans de nombreux cas, les fonctionnalités disponibles via le moniteur d'appareil sont à présent fournies par de nouveaux outils améliorés.

    Consultez la documentation du moniteur d'appareil pour obtenir des instructions sur l'appel du moniteur d'appareil à partir de la ligne de commande, ainsi que pour en savoir plus sur les outils disponibles via le moniteur d'appareil.

    3.0 (octobre 2017)

    Android Studio 3.0.0 est une version majeure qui comprend plusieurs nouvelles fonctionnalités et améliorations.

    Utilisateurs de macOS : si vous mettez à jour une ancienne version d'Android Studio, une boîte de dialogue d'erreur de mise à jour peut s'afficher avec le message "Des conflits ont été détectés dans la zone d'installation". Il vous suffit d'ignorer cette erreur et de cliquer sur Cancel (Annuler) pour reprendre l'installation.

    3.0.1 (novembre 2017)

    Cette mise à jour mineure d'Android Studio 3.0 inclut des corrections de bugs générales et des améliorations des performances.

    Plug-in Android pour Gradle 3.0.0

    Le nouveau plug-in Android pour Gradle comprend diverses améliorations et des nouvelles fonctionnalités, mais il améliore principalement les performances de compilation des projets comportant un grand nombre de modules. Lorsque vous utilisez le nouveau plug-in avec ces projets de grande envergure, vous devriez constater ce qui suit :

    • Configuration de compilation plus rapide grâce à la nouvelle résolution des dépendances retardées.
    • Résolution des dépendances basée sur les variantes uniquement pour les projets et les variantes que vous compilez.
    • Durées de compilation incrémentielles plus courtes lors de l'application de modifications simples au code ou aux ressources.

    Remarque : Ces améliorations nécessitaient des modifications importantes perturbant certains comportements, DSL et API du plug-in. La mise à niveau vers la version 3.0.0 peut nécessiter des modifications de vos fichiers de compilation et de vos plug-ins Gradle.

    Cette version inclut également ce qui suit :

    • Prise en charge d'Android 8.0.
    • Prise en charge de la compilation d'APK distincts en fonction des ressources linguistiques.
    • Prise en charge des bibliothèques Java 8 et des fonctionnalités du langage Java 8 (sans le compilateur Jack).
    • Prise en charge d'Android Test Support Library 1.0 (Android Test Utility et Android Test Orchestrator).
    • Amélioration de la vitesse de compilation de ndk-build et cmake.
    • Amélioration de la vitesse de synchronisation de Gradle.
    • AAPT2 est désormais activé par défaut.
    • L'utilisation de ndkCompile est maintenant plus limitée. À la place, vous devez utiliser CMake ou ndk-build pour compiler le code natif que vous souhaitez empaqueter dans votre APK. Pour en savoir plus, consultez Migrer depuis ndkcompile.

    Pour en savoir plus sur les modifications apportées, consultez les notes de version du plug-in Android pour Gradle.

    Si vous êtes prêt à passer au nouveau plug-in, consultez Migrer vers le plug-in Android pour Gradle 3.0.0.

    Prise en charge de Kotlin

    Comme annoncé lors de la conférence Google I/O 2017, le langage de programmation Kotlin est à présent officiellement pris en charge sur Android. Dans cette version, Android Studio prend donc en charge le langage Kotlin pour le développement Android.

    Vous pouvez intégrer Kotlin à votre projet en convertissant un fichier Java en Kotlin (cliquez sur Code > Convert Java File to Kotlin File (Code > Convertir un fichier Java en fichier Kotlin) ou en créant un projet compatible avec Kotlin à l'aide de l'assistant New Project (Nouveau projet).

    Pour commencer, découvrez comment ajouter Kotlin à votre projet.

    Prise en charge des fonctionnalités du langage Java 8

    Vous pouvez à présent utiliser certaines fonctionnalités du langage Java 8, ainsi que les bibliothèques compilées avec Java 8. Jack n'est plus obligatoire. Vous devez d'abord désactiver Jack pour utiliser la prise en charge améliorée de Java 8 intégrée à la chaîne d'outils par défaut.

    Pour mettre à jour votre projet afin qu'il prenne en charge la nouvelle chaîne d'outils du langage Java 8, mettez à jour la compatibilité source dans Source Compatibility et la compatibilité cible dans Target Compatibility sur 1.8 dans la boîte de dialogue Project Structure (Structure du projet) cliquez sur File > Project Structure (Fichier > Structure du projet). Pour en savoir plus, découvrez comment utiliser les fonctionnalités du langage Java 8.

    Profileur Android

    Le nouveau Profileur Android remplace l'outil Android Monitor et fournit une nouvelle suite d'outils permettant de mesurer en temps réel l'utilisation du processeur, de la mémoire et du réseau par votre application. Vous pouvez effectuer un traçage de méthode basé sur des exemples pour chronométrer l'exécution de votre code, capturer des empreintes de mémoire, afficher les allocations de mémoire et inspecter les informations des fichiers transmis par le réseau.

    Pour ouvrir le Profileur Android, cliquez sur View > Tool Windows > Android Profiler (Vue > Fenêtres d'outil > Profileur Android) ou cliquez sur Android Profiler (Profileur Android) dans la barre d'outils.

    La chronologie des événements en haut de la fenêtre affiche les événements tactiles, les pressions sur les touches et les modifications d'activité. Vous disposez ainsi de plus de contexte pour comprendre les autres événements de performances dans la chronologie.

    Remarque : La vue Logcat a également été déplacée vers une autre fenêtre (elle se trouvait précédemment dans l'outil Android Monitor, qui a été supprimé).

    Dans la chronologie de présentation du Profileur Android, cliquez sur les chronologies CPU (PROCESSEUR), MEMORY (MÉMOIRE) ou NETWORK (RÉSEAU) pour accéder aux outils correspondants du profileur.

    Profileur de processeur

    Le Profileur de processeur vous permet d'analyser l'utilisation des threads de processeur de votre application en déclenchant un échantillon ou une trace de processeur instrumentée. Vous pouvez ensuite résoudre les problèmes de performances du processeur à l'aide de divers filtres et affichages de données.

    Pour en savoir plus, consultez le guide du Profileur de processeur.

    Profileur de mémoire

    Le Profileur de mémoire vous aide à identifier la saturation et les fuites de mémoire qui peuvent entraîner des problèmes de stuttering, des blocages, voire des plantages de l'application. Il affiche un graphique en temps réel de l'utilisation de la mémoire de votre application, vous permet de capturer une empreinte de la mémoire, de forcer la récupération de mémoire et de suivre les allocations de mémoire.

    Pour en savoir plus, consultez le guide du Profileur de mémoire.

    Profileur de réseau

    Le Profileur de réseau vous permet de surveiller l'activité réseau de votre application, d'inspecter la charge utile de chacune de vos requêtes réseau et de créer un lien vers le code qui a généré la requête réseau.

    Pour en savoir plus, consultez le guide du Profileur de réseau.

    Profilage et débogage APK

    Android Studio vous permet à présent de profiler et déboguer n'importe quel APK sans avoir à le compiler à partir d'un projet Android Studio, à condition qu'il soit conçu pour activer le débogage, et que vous ayez accès aux symboles de débogage et aux fichiers sources.

    Pour commencer, cliquez sur Profiler ou déboguer l'APK sur l'écran d'accueil d'Android Studio. Si un projet est déjà ouvert, cliquez sur File > Profile or debug APK (Fichier > Profiler ou déboguer l'APK) dans la barre de menu. Les fichiers APK non empaquetés s'affichent, mais le code n'est pas décompilé. Ainsi, pour ajouter correctement des points d'arrêt et afficher des traces de pile, vous devez joindre des fichiers sources Java et des symboles de débogage natifs.

    Pour en savoir plus, consultez Profiler et déboguer des APK prédéfinis.

    Explorateur de fichiers de l'appareil

    Le nouvel Explorateur de fichiers de l'appareil vous permet d'inspecter le système de fichiers de votre appareil connecté, et de transférer des fichiers entre l'appareil et votre ordinateur. Il remplace l'outil de système de fichiers disponible dans DDMS.

    Pour l'ouvrir, cliquez sur View > Tool Windows > Device File Explorer (Vue > Fenêtres d'outil > Explorateur de fichiers de l'appareil).

    Pour en savoir plus, consultez le guide de l'Explorateur de fichiers de l'appareil.

    Prise en charge des applis instantanées

    La prise en charge des applis instantanées Android vous permet de créer des applis instantanées dans votre projet à l'aide de deux nouveaux types de module : les modules d'applis instantanées et les modules de fonctionnalités (pour lesquels vous devez installer le SDK de développement d'applis instantanées).

    Android Studio inclut également une nouvelle action de modularisation de la refactorisation pour vous aider à ajouter la prise en charge des applis instantanées à un projet existant. Par exemple, si vous souhaitez refactoriser votre projet pour placer certaines classes dans un module de fonctionnalité d'appli instantanée, sélectionnez les classes dans la fenêtre Project (Projet), puis cliquez sur Refactor > Modularize (Refactoriser > Modulariser). Dans la boîte de dialogue qui s'affiche, sélectionnez le module de destination, puis cliquez sur OK.

    Lorsque vous êtes prêt à tester votre appli instantanée, vous pouvez compiler et exécuter votre module Appli instantanée sur un appareil connecté. Pour ce faire, spécifiez l'URL de l'appli instantanée dans les options de lancement de configuration d'exécution : sélectionnez Run > Edit Configurations (Exécuter > Modifier les configurations), sélectionnez votre module Appli instantanée, puis définissez l'URL sous Launch Options (Options de lancement).

    Pour en savoir plus, consultez Applis instantanées Android.

    Modules Android Things

    Nouveaux modèles Android Things dans les assistants "Nouveau projet" et "Nouveau module" pour vous aider à commencer à développer pour les appareils IoT sous Android.

    Pour en savoir plus, découvrez comment créer un projet Android Things.

    Assistant Icônes adaptatives

    Image Asset Studio prend désormais en charge les drawables vectoriels et vous permet de créer des icônes de lanceur adaptatives pour Android 8.0 tout en créant simultanément des icônes traditionnelles pour les appareils plus anciens.

    Pour commencer, effectuez un clic droit sur le dossier res dans votre projet, puis cliquez sur New > Image Asset (Nouveau > Composant Image). Dans la fenêtre Asset Studio, sélectionnez Launcher Icons (Adaptive and Legacy) (Icônes de lanceur (adaptatives et anciennes)) comme type d'icône.

    Remarque : Vous devez définir compileSdkVersion sur 26 ou plus pour utiliser les icônes de lanceur adaptatives.

    Pour en savoir plus, consultez Icônes adaptatives.

    Prise en charge des ressources de police

    Pour prendre en charge les nouvelles ressources de police dans Android 8.0, Android Studio comprend un sélecteur de ressources de police pour faciliter le regroupement des polices dans votre application ou configurer votre projet de manière à télécharger les polices sur l'appareil (lorsqu'elles sont disponibles). L'éditeur de mise en page peut également prévisualiser les polices dans votre mise en page.

    Pour tester les polices téléchargeables, assurez-vous que votre appareil ou votre émulateur exécute les services Google Play v11.2.63 ou version ultérieure. Pour en savoir plus, consultez Polices téléchargeables.

    Assistant Firebase App Indexing

    Firebase Assistant a été mis à jour avec un nouveau tutoriel pour tester l'indexation des applications. Pour ouvrir l'assistant, sélectionnez Tools > Firebase (Outils > Firebase). Sélectionnez ensuite App Indexing > Test App Indexing (Indexation des applications > Tester l'indexation des applications).

    Le tutoriel comprend de nouveaux boutons permettant de tester l'indexation de votre contenu public et personnel :

    • À l'étape 2, cliquez sur Preview search results (Prévisualiser les résultats de recherche) pour vérifier que vos URL apparaissent bien dans les résultats de recherche Google.
    • À l'étape 3, cliquez sur Check for errors (Rechercher les erreurs) pour vérifier que les objets indexables de votre application ont été ajoutés à l'index de contenu personnel.

    L'assistant Android App Links a été mis à jour et offre désormais les fonctionnalités suivantes :

    • Add URL tests (Ajouter des tests d'URL) pour chaque mappage d'URL afin de vous assurer que vos filtres d'intent gèrent des URL réelles.

      Vous pouvez également définir ces tests d'URL manuellement à l'aide de la balise <tools:validation> décrite ci-dessous.

    • Create a Digital Asset Links file (Créer un fichier Digital Asset Links) avec l'entrée d'objet appropriée pour prendre en charge Google Smart Lock et ajouter la balise asset_statements <meta-data> correspondante à votre fichier manifeste.

    Programme de validation des filtres d'intent d'URL

    Android Studio prend désormais en charge une balise spéciale dans le fichier manifeste qui vous permet de tester vos URL de filtre d'intent. Il s'agit des mêmes balises que celles que l'assistant Android App Links peut créer pour vous.

    Pour déclarer une URL de test pour un filtre d'intent, ajoutez un élément <tools:validation> à côté de l'élément <intent-filter> correspondant. Par exemple :

          <activity ...>
              <intent-filter>
                  ...
              </intent-filter>
              <tools:validation testUrl="https://www.example.com/recipe/1138" />
          </activity>
        
        

    Veillez également à inclure xmlns:tools="http://schemas.android.com/tools" dans la balise <manifest>.

    Si l'une des URL de test ne transmet pas la définition du filtre d'intent, une erreur lint est affichée. Une telle erreur vous permet toujours de compiler des variantes de débogage, mais elle perturbera vos builds.

    Éditeur de mise en page

    L'éditeur de mise en page a été mis à jour avec un certain nombre d'améliorations, y compris les suivantes :

    • Nouvelles icônes et nouvelle mise en page pour la barre d'outils.
    • Mise à jour de la mise en page dans l'arborescence des composants.
    • Amélioration des insertions de la vue par glisser-déposer.
    • Nouveau panneau d'erreur sous l'éditeur affichant tous les problèmes avec des suggestions de corrections (le cas échéant).
    • Diverses améliorations de l'interface utilisateur pour la compilation avec ConstraintLayout, y compris les suivantes :
      • Prise en charge de la création de barrières.
      • Prise en charge de la création de groupes : dans la barre d'outils, sélectionnez Guidelines > Add Group (Consignes > Ajouter un groupe) (nécessite ConstraintLayout 1.1.0 bêta 2 ou version ultérieure).
      • Nouvelle UI pour créer des chaînes : sélectionnez plusieurs vues, puis effectuez un clic droit et sélectionnez Chain (Chaîne).

    Outil d'inspection de la mise en page

    L'outil d'inspection de la mise en page inclut des améliorations qui facilitent le débogage des problèmes avec les mises en page de votre application, y compris le regroupement des propriétés dans des catégories communes, et une nouvelle fonctionnalité de recherche dans les volets View Tree (Arborescence de vues) et Properties (Propriétés).

    Analyseur d'APK

    Vous pouvez à présent utiliser l'analyseur d'APK à partir de la ligne de commande avec l'outil apkanalyzer.

    L'analyseur d'APK a également été mis à jour avec les améliorations suivantes :

    • Pour les APK compilés avec ProGuard, vous pouvez charger des fichiers de mappage ProGuard qui ajoutent des fonctionnalités à la visionneuse DEX, y compris :
      • Des nœuds en gras pour indiquer que les nœuds ne doivent pas être supprimés lors de la minification du code.
      • Un bouton pour afficher les nœuds supprimés pendant le processus de minification.
      • Un bouton qui restaure les noms d'origine des nœuds dans l'arborescence que ProGuard a obscurcis.
    • La visionneuse DEX affiche à présent l'impact estimé de la taille de chaque package, classe et méthode.
    • De nouvelles options de filtrage en haut pour afficher et masquer des champs et des méthodes.
    • Dans l'arborescence, les nœuds qui sont des références non définies dans le fichier DEX apparaissent en italique.

    Pour en savoir plus, consultez Analyser votre build avec l'analyseur d'APK.

    Aperçu du compilateur DEX D8

    Android Studio 3.0 inclut un nouveau compilateur DEX facultatif, appelé D8. Il remplacera à terme le compilateur DX, mais vous pouvez choisir d'utiliser le nouveau compilateur D8 dès maintenant.

    La compilation DEX a une incidence directe sur la durée de compilation de votre application, la taille de fichier .dex et les performances d'exécution. Par ailleurs, lorsque vous comparez le nouveau compilateur D8 au compilateur DX actuel, D8 compile plus rapidement et génère des fichiers .dex plus petits, tout en ayant des performances d'exécution d'application identiques ou supérieures.

    Pour l'essayer, définissez les éléments suivants dans le fichier gradle.properties de votre projet :

    android.enableD8=true
        

    Pour en savoir plus, consultez l'article de blog sur le compilateur D8.

    Dépôt Maven de Google

    Désormais, Android Studio utilise le dépôt Maven de Google par défaut au lieu de dépendre d'Android SDK Manager pour obtenir des mises à jour pour la bibliothèque Android Support, les services Google Play, Firebase et d'autres dépendances. Cela permet de garder plus facilement vos bibliothèques à jour, en particulier lorsque vous utilisez un système d'intégration continue (CI).

    Tous les nouveaux projets incluent à présent le dépôt Maven de Google par défaut. Pour mettre à jour votre projet existant, ajoutez google() dans le bloc repositories du fichier build.gradle de premier niveau :

          allprojects {
              repositories {
                  google()
              }
          }
        
        

    Pour en savoir plus sur le dépôt Maven de Google, cliquez ici.

    Autres modifications

    • Le débogage natif avec Android Studio ne prend plus en charge Windows 32 bits. Nous avons choisi de nous concentrer sur d'autres plates-formes, car très peu de développeurs utilisent cette plate-forme. Si vous utilisez Windows 32 bits et que vous prévoyez de déboguer du code natif, vous devez continuer à utiliser Android Studio 2.3.
    • Mise à niveau de l'IDE de base vers IntelliJ 2017.1.2, qui ajoute un certain nombre de nouvelles fonctionnalités des versions 2016.3 et 2017.1., tels que la refactorisation du langage Java 8, les optimisations de paramètres, la mise en surbrillance sémantique, les points d'arrêt déplaçables, les résultats instantanés dans la recherche, etc.
    • Ajout d'un grand nombre de nouvelles vérifications lint.
    • Consultez également les dernières mises à jour d'Android Emulator.

    2.3 (mars 2017)

    Android Studio 2.3.0 est avant tout une correction de bug et une version de stabilité, mais il inclut également un certain nombre de nouvelles fonctionnalités.

    Version 2.3.3 (juin 2017)

    Cette mise à jour mineure ajoute la prise en charge d'Android O (niveau d'API 26).

    2.3.2 (avril 2017)

    Il s'agit d'une mise à jour mineure d'Android Studio 2.3 avec les modifications suivantes :

    • Mises à jour d'AVD Manager pour la prise en charge de Google Play dans les images système.
    • Correction de bugs pour les builds NDK lors de l'utilisation de la version R14 ou ultérieure du NDK.

    Consultez également les mises à jour correspondantes pour Android Emulator 26.0.3.

    Version 2.3.1 (avril 2017)

    Il s'agit d'une mise à jour mineure d'Android Studio 2.3 qui résout un problème qui empêchait certains appareils Android physiques de fonctionner correctement avec l'exécution instantanée (voir le problème 235879).

    <h3 class="hide-from-toc">
      New
    </h3>
    
    <div class="video-wrapper-left">
      <iframe class="devsite-embedded-youtube-video" data-video-id="VFyKclKBGf0"
              data-autohide="1" data-showinfo="0" frameborder="0" allowfullscreen>
      </iframe>
    </div>
    
    <ul>
      <li>Android Studio can now convert PNG, BMP, JPG, and static GIF files to
      WebP format. WebP is an image file format from Google that provides lossy
      compression (like JPEG) as well as transparency (like PNG) but can provide
      better compression than either JPEG or PNG. For more information, see
        <a href="/studio/write/convert-webp.html">Convert images to WebP in Android
        Studio</a>.
      </li>
    
      <li>The new <a href="/studio/write/app-link-indexing.html">App Links
      Assistant</a> simplifies the process of adding Android App Links to your app
      into a step-by-step wizard. Android App Links are HTTP URLs that bring users
      directly to specific content in your Android app.
      </li>
    
      <li>The Layout Editor now includes support for two new ConstraintLayout
      features:
        <ul>
          <li>Define a view size based on an aspect ratio.
          </li>
          <li>Create packed, spread, and weighted linear groups with constraint
          chains.
          </li>
        </ul>
        For more information, see <a href=
        "/training/constraint-layout/index.html">Build a Responsive UI with
        ConstraintLayout</a>.
      </li>
    
      <li>The Layout Editor also now lets you create a list of <a href=
      "/studio/write/layout-editor.html#edit-properties">favorite attributes</a> so
      you don't have to click <b>View all attributes</b> to access the attributes
      you use most.
      </li>
    
      <li>When adding a material icon using the Vector Import Dialog (<b>File &gt;
      New &gt; Vector Asset</b>), you can now filter the list of available icons by
      category or by icon name. For more information, see <a href=
      "/studio/write/vector-asset-studio.html#materialicon">Adding a material
      icon</a>.
      </li>
    
      <li>
        <a href="/studio/write/annotations.html#accessibility">New and updated
        annotations</a>. The new <code>@RestrictTo</code> annotation for methods,
        classes, and packages lets you restrict an API. The updated
        <code>@VisibleForTesting</code> annotation now has an optional
        <code>otherwise</code> argument that lets you designate what the visibility
        of a method should be if not for the need to make it visible for testing.
        Lint uses the <code>otherwise</code> option to enforce the intended
        visibility of the method.
      </li>
    
      <li>New <a href="/studio/write/lint.html#snapshot">lint baseline support</a>
      allows you to use a snapshot of your project's current set of warnings as a
      baseline for future inspection runs so only new issues are reported. The
      baseline snapshot lets you start using lint to fail the build for new issues
      without having to go back and address all existing issues first.
      </li>
    
      <li>New lint checks, including the following:
        <ul>
          <li>Obsolete <code>SDK_INT</code> Checks: Android Studio removes obsolete
          code that checks for SDK versions.
          </li>
          <li>Object Animator Validation: Lint analyzes your code to make sure that
          your <code>ObjectAnimator</code> calls reference valid methods with the
          right signatures and checks that those methods are annotated with <code>
            @Keep</code> to prevent ProGuard from renaming or removing them during
            release builds.
          </li>
          <li>Unnecessary Item Decorator Copy: Older versions of the
          <code>RecyclerView</code> library did not include a divider decorator
          class, but one was provided as a sample in the support demos. Recent
          versions of the library have a divider decorator class. Lint looks for
          the old sample and suggests replacing it with the new one.
          </li>
          <li>WifiManager Leak: Prior to Android 7.0 (API level 24), initializing
          the <code>WifiManager</code> with <code><a href="/reference/android/content/Context.html#getSystemService(java.lang.Class&lt;T&gt;)">Context.getSystemService()</a></code>
          can cause a memory leak if the context is not the application context.
          Lint looks for these initializations, and if it <em>cannot</em> determine
          that the context is the application context, it suggests you use <code><a href="/reference/android/content/Context.html#getApplicationContext()">Context.getApplicationContext()</a></code> to get the proper context for the
          initialization.
          </li>
          <li>Improved Resource Prefix: The existing <code>resourcePrefix</code>
          lint check had many limitations. You can now configure your project with
          a prefix, such as <code>android { resourcePrefix '<var>my_lib</var>'
          }</code>, and lint makes sure that all of your resources are using this
          prefix. You can use variations of the name for styles and themes. For
          example for the <var>my_lib</var> prefix, you can have themes named
          <code>MyLibTheme</code>, <code>myLibAttr</code>,
          <code>my_lib_layout</code>, and so on.
          </li>
          <li>Switch to WebP: This check identifies images in your project that can
          be converted to WebP format based on your project’s
          <code>minSdkVersion</code> setting. An associated quickfix can
          automatically convert the images, or you can <a href=
          "/studio/write/convert-webp.html">convert images to WebP</a> manually.
          </li>
          <li>Unsafe WebP: If your project already includes WebP images, this check
          analyzes your project to ensure that your <code>minSdkVersion</code>
          setting is high enough to support the included images. For more
          information about WebP support in Android and Android Studio, see
          <a class="external" href=
          "https://developers.google.com/speed/webp/faq#which_web_browsers_natively_support_webp">
            Which browsers natively support WebP?</a> and <a href=
            "/studio/write/convert-webp.html">Create WebP Images Using Android
            Studio</a>.
          </li>
        </ul>
      </li>
    </ul>
    
    <h3 class="hide-from-toc">
      Changes
    </h3>
    
    <ul>
      <li>A separate button to push changes with Instant Run: After deploying your
      app, you now click <b>Apply Changes</b> <img src=
      "/studio/images/buttons/toolbar-apply-changes.svg" alt="" class=
      "inline-icon"> to quickly push incremental changes to your running app using
      Instant Run. The <b>Run</b> <img src="/studio/images/buttons/toolbar-run.png"
        alt="" class="inline-icon"> and <b>Debug</b> <img src=
        "/studio/images/buttons/toolbar-debug.png" alt="" class="inline-icon">
        buttons are always available to you when you want to reliably push your
        changes and force an app restart.
        <ul>
          <li>Instant Run is supported only when deploying your app to a target
          device running Android 5.0 (API level 21) or higher.
          </li>
          <li>Instant Run is no longer disabled for projects that <a href=
          "/studio/projects/add-native-code.html">link to external native
          projects</a> using CMake or ndk-build. However, you can only use Instant
          Run to push incremental changes to your Java code, not your native code.
          </li>
          <li>Cold swaps (which you can force for a running app by clicking
          <strong>Run</strong> <img src="/studio/images/buttons/toolbar-run.png"
          alt="" class="inline-icon">) are now more reliable. Forcing a cold swap
          also fixes the issue where changes to notification and widget UIs were
          not updated on the target device.
          </li>
          <li>Includes optimizations that make app startup much faster. These
          optimizations may affect profiling, so you should temporarily <a href=
          "/studio/run/index.html#disable-ir">disable Instant Run</a> whenever
          profiling your app.
          </li>
        </ul>
      </li>
    
      <li>
        <p>
          The <b>AVD Manager</b> <img src=
          "/studio/images/buttons/toolbar-avd-manager.png" alt="" class=
          "inline-icon"> and <b>SDK Manager</b> <img src=
          "/studio/images/buttons/toolbar-sdk-manager.png" alt="" class=
          "inline-icon"> buttons are now included in the lean Navigation Bar as
          well as the full Toolbar. To use the lean Navigation Bar, click
          <b>View</b> to open the View menu, then ensure that <b>Navigation Bar</b>
          is selected and <b>Toolbar</b> is <em>not</em> selected.
        </p>
        <img src="/studio/images/releases/navigationbar_sdkavd_2x.png" width="757">
      </li>
    
      <li>The "Hybrid" debugger has been renamed to "Dual" debugger.
      </li>
    
      <li>In the <a href="/studio/run/rundebugconfig.html">Run/Debug
      Configurations</a> dialog, under Defaults in the left pane, the following run
      configuration names have changed with no behavior changes:
        <ul>
          <li>The JUnit name has changed to Android JUnit. If you have a project
          that uses JUnit run configurations, those configurations are transformed
          to Android JUnit run configurations the first time you open the project
          with Android Studio. A dialog appears to inform you of the name change.
          </li>
          <li>The Android Tests name has changed to Android Instrumented Tests.
          </li>
        </ul>
      </li>
    
      <li>The <a href="/studio/debug/am-gpu-debugger.html">GPU Debugger</a> has
      been removed from Android Studio as of version 2.3. An open-source,
      standalone version of the tool is now available on <a href=
      "https://github.com/google/gapid" class="external-link">GitHub</a>.
      </li>
    
      <li>The Run/Debug option is no longer available when you right-click a <code>
        *.gradle build</code> script.
      </li>
    
      <li>All templates now use <code>ConstraintLayout</code> as the default
      layout.
      </li>
    
      <li>The Widgets palette in the Layout Editor has been redesigned.
      </li>
    </ul>
    
    <p>
      This release also includes a number of bug fixes. <a href=
      "https://code.google.com/p/android/issues/list?can=1&amp;q=target%3D2.3+status%3DReleased&amp;colspec=ID+Status+Priority+Owner+Summary+Stars+Reporter+Opened&amp;cells=tiles">
      See all bug fixes in 2.3.0.</a>
    </p>
    
    <p class="note">
      <b>Known issue:</b> Some device manufacturers block apps from automatically
      launching after being installed on the device. When deploying your app to a
      physical device using Android Studio 2.3, this restriction breaks the
      intended behavior of Instant Run and causes the following error output:
      <code>Error: Not found; no service started</code>. To avoid this issue,
      either <a href="/studio/run/emulator.html">use the emulator</a> or enable
      automatic launching for your app in your device's settings. The procedure
      for doing this is different for each device, so check the instructions
      provided by the manufacturer. To learn more about this issue, see
      <a href="https://code.google.com/p/android/issues/detail?id=235879">Issue
        #235879</a>.
    </p>
    

    2.2 (septembre 2016)

    Version 2.2.3 (décembre 2016)

    <p>
      This is a minor update to Android Studio 2.2. It includes a bug fixes
      focused around gradle, the core IDE, and lint.
    </p>
    
    <p>
      Highlighted build changes:
    </p>
    
    <ul>
      <li>ProGuard version rollback. Due to a <a href=
      "https://sourceforge.net/p/proguard/bugs/625/">correctness issue</a>
      discovered in ProGuard 5.3.1, we have rolled back to ProGuard 5.2.1. We
      have worked with the ProGuard team on getting a fix quickly, and we expect
      to roll forward to ProGuard 5.3.2 in Android Studio 2.3 Canary 3.
      </li>
      <li>Bug fix for <code>aaptOptions</code> <code>IgnoreAssetsPattern</code>
      not working properly (<a href="http://b.android.com/224167">issue
      224167</a>)
      </li>
      <li>Bug fix for Gradle autodownload for Constraint Layout library
        (<a href="https://code.google.com/p/android/issues/detail?id=212128">issue
        212128</a>)
      </li>
      <li>Bug fix for a JDK8/Kotlin compiler + dx issue (<a href=
      "http://b.android.com/227729">issue 227729</a>)
      </li>
    </ul>
    
    <p>
      <a href=
      "https://code.google.com/p/android/issues/list?can=1&amp;q=target%3D2.2.3+status%3AReleased+&amp;colspec=ID+Status+Priority+Owner+Summary+Stars+Reporter+Opened&amp;cells=tiles">
      See all bug fixes in 2.2.3</a>.
    </p>
    

    Version 2.2.2 (octobre 2016)

    <p>
      This is a minor update to Android Studio 2.2. It includes a number of small
      changes and bug fixes, including:
    </p>
    
    <ul>
      <li>When reporting Instant Run issues through the IDE, the report now also
      includes logcat output for <code>InstantRun</code> events. To help us
      improve Instant Run, please <a href=
      "/studio/run/index.html#submit-feedback">enable extra logging and report
      any issues</a>.
      </li>
      <li>A number of small bug fixes for Gradle.
      </li>
      <li>A fix for problems with generating multiple APKs.
      </li>
    </ul>
    

    Version 2.2.1 (octobre 2016)

    <p>
      This is a minor update to Android Studio 2.2. It includes several bug fixes
      and a new feature to enable extra logging to help us troubleshoot Instant
      Run issues—to help us improve Instant Run, please <a href=
      "/studio/run/index.html#submit-feedback">enable extra logging and report
      any issues</a>.
    </p>
    

    Nouveautés

    • Nouvel éditeur de mise en page avec des outils conçus sur mesure pour prendre en charge ConstraintLayout.
    • <li>New <strong><a href=
      "http://tools.android.com/tech-docs/layout-inspector">Layout
      Inspector</a></strong> lets you examine snapshots of your layout hierarchy
      while your app is running on the emulator or a device.
      </li>
      
      <li>New <strong><a href="/studio/write/firebase.html">Assistant</a></strong>
      window to help you integrate Firebase services into your app.
      </li>
      
      <li>New <strong><a href="/studio/debug/apk-analyzer.html">APK
      Analyzer</a></strong> tool so you can inspect the contents of your packaged
      app.
      </li>
      
      <li>New <strong><a href=
      "http://tools.android.com/tech-docs/test-recorder">Espresso Test
      Recorder</a></strong> tool (currently in beta) to help you create UI tests by
      recording your own interactions.
      </li>
      
      <li>New <strong><a href=
      "http://tools.android.com/tech-docs/build-cache">build cache</a></strong>
      (currently experimental) to speed up build performance.
      </li>
      
      <li>New <strong>C/C++ build integration with CMake and ndk-build</strong>.
      Compile and build new or existing native code into libraries packaged into
      your APK, and debug using lldb. For new projects, Android Studio uses CMake
      by default, but also supports ndk-build for existing projects. To learn how
      to include native code in your Android application, read <a href=
      "/studio/projects/add-native-code.html">Add C and C++ Code to Your
      Project</a>. To learn how to debug native code with lldb, see <a href=
      "/studio/debug/index.html#debug-native">Debug Native Code</a>.
      </li>
      
      <li>New <strong><a href="/studio/intro/index.html#sample-code">Samples
      Browser</a></strong> so you can easily look up Google Android sample code
      from within Android Studio to jump start app development.
      </li>
      
      <li>New <strong>Merged Manifest Viewer</strong> to help you diagnose how your
      manifest file merges with your app dependencies across project build
      variants.
      </li>
      
      <li>The <strong>Run</strong> window now contains log messages for the current
      running app. Note that you can configure the <a href=
      "/studio/debug/am-logcat.html">logcat Monitor</a> display, but not the
      <strong>Run</strong> window.
      </li>
      
      <li>New <strong><a href="/studio/run/emulator.html">Android
      Emulator</a></strong> features:
        <ul>
          <li>Added new <strong>Virtual</strong> <strong>Sensors</strong> and
          <strong>Cellular</strong> &gt; <strong>Signal Strength</strong> controls.
          </li>
          <li>Added an <strong>LTE</strong> option to the <strong>Cellular</strong>
          &gt; <strong>Network type</strong> control.
          </li>
          <li>Added simulated vertical swipes for scrolling through vertical menus
          with a mouse wheel.
          </li>
        </ul>
      </li>
      
      <li>New <strong><a href="/studio/run/rundebugconfig.html">Run/Debug
      Configuration</a></strong> features:
        <ul>
          <li>The <strong>Debugger</strong> tab of the Android App and Android
          Tests templates now contain several new options for debugging with LLDB.
          </li>
          <li>The <strong>Profiling</strong> tab of the Android App and Android
          Tests templates now contain a <strong>Capture GPU Commands</strong>
          option for enabling GPU tracing. You can display GPU traces in the GPU
          Debugger (a beta feature).
          </li>
          <li>The Android Tests template now has a <strong>Firebase Test Lab Device
          Matrix</strong> option for the <strong>Deployment Target</strong>.
          </li>
          <li>The Native Application template has been deprecated. If you use this
          template in a project, Android Studio automatically converts it to the
          Android App template.
          </li>
          <li>The Android Application template has been renamed to Android App.
          </li>
        </ul>
      </li>
      
      <li>Improved installation, configuration, performance, and UI features in the
      <strong><a href="/studio/debug/am-gpu-debugger.html">GPU
      Debugger</a></strong> (currently in beta).
      </li>
      
      <li>Android Studio now comes bundled with <strong>OpenJDK 8</strong>.
      Existing projects still use the JDK specified in <strong>File &gt; Project
      Structure &gt; SDK Location</strong>. You can switch to use the new bundled
      JDK by clicking <strong>File &gt; Project Structure &gt; SDK
      Location</strong> and checking the <strong>Use embedded JDK</strong>
      checkbox.
      </li>
      
      <li>Added new <strong>help menus and buttons</strong> in the UI so you can
      more easily find the online documentation.
      </li>
      

    Modifications

    • Mise à jour du codebase de l'IDE d'IntelliJ 15 vers IntelliJ 2016.1.
    • L'exécution instantanée nécessite à présent l'installation du SDK de plate-forme correspondant au niveau d'API de l'appareil cible.
    • L'exécution instantanée sera automatiquement désactivée si l'utilisateur exécute l'application sous un profil professionnel ou en tant qu'utilisateur secondaire.
    • Correction de nombreux problèmes de fiabilité pour l'exécution instantanée où les modifications n'étaient pas déployées ou l'application plantait :
      • Certains composants d'application n'étaient pas déployés dans votre application en cours d'exécution. (Bug 213454)
      • L'application plante lorsque l'utilisateur passe d'une session d'exécution instantanée à une session d'exécution non instantanée où une classe sérialisable n'a pas de valeur serialVersionUID définie. (Bug 209006)
      • Les changements de style ne sont pas répercutés dans l'exécution instantanée. (Bug 210851)
      • La session d'exécution instantanée n'est pas fiable et entraîne l'exception FileNotFoundException. (Bug 213083)
      • Les modifications apportées aux drawables ne sont pas prises en compte tant qu'une recompilation complète n'est pas effectuée pour KitKat. (Bug 21530)
      • Les modifications de ressources ne sont répercutées dans l'exécution instantanée lorsque des ensembles de sources personnalisés contiennent des chemins imbriqués. (Bug 219145)
      • Le remplacement à chaud ne fonctionne pas si la classe modifiée contient une annotation avec une valeur d'énumération (enum). (Bug 209047)
      • Les modifications apportées aux données d'annotation ne sont pas répercutées dans l'exécution instantanée. (Bug 210089)
      • L'exécution instantanée ne récupère pas les modifications de code si elles sont effectuées en dehors de l'IDE. (Bug 213205)
      • La session d'exécution instantanée n'est pas fiable en raison d'un jeton de sécurité non concordant. (Bug 211989
      • Le remplacement à froid échoue pour les appareils qui ne prennent pas correctement en charge "Exécuter en tant que". (Bug 210875)
      • Plantage de l'application après le redémarrage de l'exécution instantanée. (Bug 219744)
      • ClassNotFoundException observée lors du passage de l'exécution instantanée au débogage instantané. (Bug 215805)
    • <li>Improved performance for <strong>Gradle sync</strong> within the IDE,
      especially for large projects.
      </li>
      
      <li>Improved build times for both full and incremental builds with new app
      packaging code.
      </li>
      
      <li>Improved <strong>Jack compiler performance and features</strong>,
      including support for annotation processors and dexing in process. To learn
      more, read the <a href=
      "/studio/releases/gradle-plugin.html#revisions">Android plugin for Gradle
      2.2.0 release notes</a>.
      </li>
      
      <li>Removed the <strong>Scale</strong> AVD property from the AVD Manager.
      </li>
      
      <li>The Android Emulator <strong>-port</strong> and <strong>-ports</strong>
      command-line options now report which ports and serial number the emulator
      instance is using, and warn if there are any issues with the values you
      provided.
      </li>
      
      <li>Improved the <strong><a href=
      "/studio/write/create-java-class.html">Create New Class dialog</a></strong>
      and the corresponding file templates. <strong>Note:</strong> If you've
      previously customized the <strong>AnnotationType</strong>,
      <strong>Class</strong>, <strong>Enum</strong>, <strong>Interface</strong>, or
      <strong>Singleton</strong> file templates, you need to modify your templates
      to comply with the new templates or you won’t be able to use the new fields
      in the <strong>Create New Class</strong> dialog.
      </li>
      
      <li>Improved the <strong><a href=
      "/studio/write/vector-asset-studio.html">Vector Asset Studio</a></strong>
      user interface and added support for Adobe Photoshop Document (PSD) files.
      </li>
      
      <li>Improved the <strong><a href=
      "/studio/write/image-asset-studio.html">Image Asset Studio</a></strong> user
      interface.
      </li>
      
      <li>Improved the <strong>Theme Editor</strong>'s Resource Picker.
      </li>
      
      <li>Fixed memory leaks and reduced overall memory usage in Android Studio.
      </li>
      
      <li>Added a <strong>Background</strong> button in the <strong><a href=
      "/studio/intro/update.html#sdk-manager">SDK Manager</a></strong> so you can
      get back to work and install your packages in the background.
      </li>
      
      <li>Improved <strong><a href="/studio/intro/accessibility.html">Accessibility
      features</a></strong>, including support for screen readers and keyboard
      navigation.
      </li>
      
      <li>Enhanced <strong>Code Analysis</strong> includes code quality checks for
      Java 8 language usage and more cross-file analysis.
      </li>
      
      <li>Several toolbar icons have changed.
      </li>
      

    2.1 (avril 2016)

    Les principales modifications apportées à cette mise à jour prennent en charge le développement avec Android N Preview.

    Version 2.1.3 (août 2016)

    Cette mise à jour ajoute une compatibilité avec Gradle 2.14.1, qui inclut des améliorations des performances, de nouvelles fonctionnalités et un correctif de sécurité important. Pour en savoir plus, consultez les notes de version de Gradle.

    Par défaut, les nouveaux projets dans Android Studio 2.1.3 utilisent Gradle 2.14.1. Pour les projets existants, l'IDE vous invite à passer à Gradle 2.14.1 et au plug-in Android pour Gradle 2.1.3, qui est requis pour utiliser Gradle 2.14.1 et versions ultérieures.

    Version 2.1.2 (juin 2016)

    Cette mise à jour comporte de nombreuses modifications mineures et corrections de bugs :

    • Mises à jour et corrections de bugs de l'exécution instantanée.
    • Améliorations des notifications de plantage et des performances LLDB.
    • Correction d'une régression dans la mise à jour de sécurité Android Studio 2.1.1 qui entraînait l'échec de git rebase.

    Version 2.1.1 (mai 2016)

    Mise à jour de la version de sécurité.

    La plate-forme Android N prend en charge les fonctionnalités du langage Java 8 qui nécessitent un nouveau compilateur expérimental appelé Jack. La dernière version de Jack n'est actuellement compatible qu'avec Android Studio 2.1. Si vous souhaitez utiliser les fonctionnalités du langage Java 8, vous devez donc utiliser Android Studio 2.1 pour compiler votre application.

    Remarque : L'exécution instantanée est désactivée lorsque vous activez le compilateur Jack, car ils ne sont pas compatibles actuellement.

    Bien qu'Android Studio 2.1 soit maintenant stable, le compilateur Jack est encore en phase expérimentale et vous devez l'activer avec la propriété jackOptions dans votre fichier build.gradle.

    Outre les modifications apportées pour assurer la prise en charge de preview N, Android Studio 2.1 inclut des corrections de bugs mineures et les améliorations suivantes :

    • Le débogueur C++ compatible avec Java est maintenant activé par défaut lorsque vous utilisez un appareil ou un émulateur N et que vous sélectionnez le mode de débogage Native (Natif) dans l'onglet Debugger (Débogueur) de votre configuration d'exécution/de débogage.

    Pour bénéficier d'autres améliorations, comme la compilation Java incrémentielle et la conversion au format .dex en cours de processus, mettez à jour votre plug-in Android pour Gradle vers la version 2.1.0.

    2.0 (avril 2016)

    Remarque : Si vous développez pour la version Preview développeur N, vous devez utiliser Android Studio 2.1 Preview. Android Studio 2.0 ne prend pas en charge toutes les fonctionnalités requises pour cibler la version Preview N.

    Exécution instantanée :

    • Android Studio déploie désormais des builds propres plus rapidement que jamais. De plus, la transmission de modifications de code incrémentielles à l'émulateur ou à un appareil physique est maintenant presque instantanée. Examinez vos mises à jour sans redéployer une nouvelle version de débogage ou, dans de nombreux cas, sans redémarrer l'application.
    • L'exécution instantanée permet de transmettre les modifications suivantes à une application en cours d'exécution :
      • Modifications apportées à l'implémentation d'une méthode d'instance ou statique existante
      • Modifications apportées à une ressource d'application existante
      • Modifications apportées au code structurel, comme une signature de méthode ou un champ statique (nécessite un appareil cible exécutant le niveau d'API 21 ou supérieur)
    • Consultez la documentation pour en savoir plus sur l'exécution instantanée.

      Remarque : L'exécution instantanée n'est disponible que lorsque vous déployez la variante de compilation de débogage, utilisez le plug-in Android pour Gradle 2.0.0 ou version ultérieure et configurez le fichier build.gradle au niveau du module de votre application pour minSdkVersion 15 ou version ultérieure. Pour optimiser les performances, configurez votre application pour minSdkVersion 21 ou version ultérieure.

    Nouveautés de lint :

    • Inspection des instructions switch à l'aide d'entiers annotés @IntDef pour vérifier que toutes les constantes sont gérées. Pour ajouter rapidement des instructions manquantes, utilisez le menu déroulant "Intention Action" (Action d'intent), puis sélectionnez Add Missing @IntDef Constants (Ajouter des constantes @IntDef manquantes).
    • Indicateurs de tentatives incorrectes d'utilisation de l'interpolation de chaîne pour insérer des numéros de version dans le fichier build.gradle.
    • Indicateurs de classes anonymes qui étendent la classe Fragment.
    • Indicateurs de code natif dans des emplacements non sécurisés, tels que les dossiers res/ et asset/. Cet indicateur encourage le stockage du code natif dans le dossier libs/, qui est ensuite empaqueté de manière sécurisée dans le dossier data/app-lib/ de l'application au moment de l'installation. AOSP 169950
    • Indicateurs d'appels non sécurisés vers Runtime.load() et d'appels System.load(). AOSP 179980
    • Recherchez et supprimez les ressources inutilisées en sélectionnant Refactor > Remove Unused Resources (Refactoriser > Supprimer les ressources inutilisées) dans la barre de menu. La détection des ressources inutilisées est maintenant compatible avec les ressources référencées uniquement par les ressources inutilisées, les références dans les fichiers bruts tels que les références d'image .html, et les attributs tools:keep et tools:discard utilisés par le réducteur de ressources Gradle. Par ailleurs, elle tient compte des ensembles de sources inactifs (comme les ressources utilisées dans d'autres types de compilation) et en gère correctement les importations de champs statiques.
    • Vérifie que les références d'API implicites sont compatibles avec toutes les plates-formes ciblées par minSdkVersion.
    • Indicateurs d'utilisation incorrecte de RecyclerView et Parcelable.
    • Désormais, les varargs et les tableaux int sont également vérifiés dans les inspections @IntDef, @IntRange et @Size.

    Autres améliorations :

    • Optimisation pour Android Emulator 2.0, qui est plus rapide que jamais, est compatible avec une plus grande variété d'appareils virtuels et dispose d'une interface utilisateur considérablement améliorée. Pour en savoir plus sur le nouvel émulateur, consultez les notes de version de SDK Tools.
    • Améliorations du Gestionnaire d'appareil virtuel Android :
      • Les images système sont à présent classées dans les onglets suivants : Recommended (Recommandé), x86 et Other (Autre).
      • Sous "Advanced settings" (Paramètres avancés), vous pouvez activer la prise en charge multicœur et indiquer le nombre de cœurs que l'émulateur peut utiliser.
      • Sous "Advanced settings" (Paramètres avancés), vous pouvez déterminer le mode de rendu des graphiques sur l'émulateur en sélectionnant l'une des options suivantes :
        • Harware (Matériel) : utilisez la carte graphique de votre ordinateur pour accélérer le rendu.
        • Software (Logiciel) : utilisez le rendu basé sur le logiciel.
        • Auto : laisse l'émulateur choisir la meilleure option. Il s'agit du paramètre par défaut.
    • Amélioration des temps de packaging AAPT en spécifiant une cible de déploiement avant la compilation de l'application. Cela permet à Android Studio d'empaqueter efficacement les seules ressources requises par l'appareil spécifié.
    • Ajout de l'intégration de Cloud Test Lab pour fournir des tests d'application à la demande avec la commodité et l'évolutivité d'un service cloud. Découvrez comment utiliser Cloud Test Lab avec Android Studio.
    • Ajout d'un aperçu du nouveau Débogueur GPU. Pour les applications nécessitant d'importantes capacités de traitement graphique, vous pouvez à présent parcourir visuellement votre code OpenGL ES pour optimiser votre application ou votre jeu.
    • Ajout du test d'indexation des applications Google. Ajoutez la prise en charge des URL, de l'indexation des applications et de la fonctionnalité de recherche afin de générer plus de trafic vers votre application, d'identifier le contenu le plus utilisé et d'attirer de nouveaux utilisateurs. Testez et validez les URL dans votre application depuis Android Studio. Consultez Prise en charge des URL et de l'indexation des applications dans Android Studio.
    • Mises à niveau depuis la dernière version d'IntelliJ 15, y compris une amélioration des performances et de l'analyse du code. Pour obtenir une description complète des nouvelles fonctionnalités et améliorations, consultez Nouveautés d'IntelliJ.
    • La saisie semi-automatique de l'éditeur XML ajoute à présent des guillemets lorsque vous remplissez des attributs. Pour vérifier si cette option est activée, ouvrez la boîte de dialogue Setting (Paramètre) ou Preferences (Préférences), accédez à Editor > General > Smart Keys (Éditeur > Général > Touches intelligentes), puis cochez la case Add quotes for attribute value on attribute completion (Ajouter des guillemets pour la valeur d'attribut une fois l'attribut saisi). Problème 195113
    • L'éditeur XML prend désormais en charge la saisie semi-automatique du code pour les expressions de liaison de données.

    Android Studio v1.5.1 (décembre 2015)

    Correctifs et améliorations :

    • Correction d'un problème d'échec de rendu dans l'éditeur de mise en page. Problème 194612
    • Ajout de la possibilité de modifier des attributs de fichier manifeste description par configuration. Problème 194705
    • Amélioration du contraste du thème d'apparence Darcula d'Android Studio dans Vector Asset Studio. Problème 191819
    • Ajout de la prise en charge du bouton Aide à Vector Asset Studio.
    • Ajout de la prise en charge de l'opérateur % pour la liaison de données. Problème 194045
    • Correction d'un problème en raison duquel le débogueur se connectait au mauvais appareil lors du lancement d'une application pour le débogage. Problème 195167
    • Correction d'une exception de pointeur nul qui pouvait se produire lors de la tentative d'exécution d'une application dans certains cas.

    Android Studio v1.5.0 (novembre 2015)

    Correctifs et améliorations :

    • Ajout de fonctionnalités d'analyse du moniteur de mémoire à Android Monitor. Lorsque vous affichez un fichier HPROF capturé à partir de ce moniteur, l'affichage vous permet maintenant de localiser plus rapidement les problèmes, tels que des fuites de mémoire. Pour utiliser ce moniteur, cliquez sur Android Monitor en bas de la fenêtre principale. Dans Android Monitor, cliquez sur l'onglet Memory (Mémoire). Pendant l'exécution du moniteur, cliquez sur l'icône Dump Java Heap (Vider le tas de mémoire Java), cliquez sur Captures dans la fenêtre principale, puis double-cliquez sur le fichier pour l'afficher. Cliquez sur Analyse de capture à droite. (Android Device Monitor ne peut pas être exécuté en même temps qu'Android Monitor.)
    • Ajout de la prise en charge des liens profonds et des liens d'application. L'éditeur de code peut créer automatiquement un filtre d'intent pour les liens profonds dans le fichier AndroidManifest.xml. Il peut également générer du code pour vous aider à intégrer l'API App Indexing d'une activité dans un fichier Java. Une fonctionnalité de test des liens profonds vous permet de vérifier qu'un lien profond spécifié peut lancer une application. Dans l'onglet General (Général) de la boîte de dialogue Run/Debug Configurations (Configurations d'exécution/de débogage), vous pouvez spécifier les options de lancement des liens profonds. Vous pouvez également tester les appels d'API App Indexing dans une activité à l'aide de l'écran logcat d'Android Monitor. L'outil lint d'Android comporte à présent des avertissements pour certains problèmes impliquant des liens profonds et l'API App Indexing.
    • Ajout de la possibilité d'utiliser des noms courts lors de la saisie automatique de code dans les vues personnalisées de l'éditeur de code.
    • Ajout de la prise en charge d'autres éléments VectorDrawable dans Vector Asset Studio pour assurer la rétrocompatibilité. Vector Asset Studio peut utiliser ces éléments pour convertir des drawables vectoriels en images matricielles PNG à utiliser avec Android 4.4 (niveau d'API 20) et versions antérieures.
    • Ajout de nouvelles vérifications lint pour Android TV et Android Auto pour vous permettre de bénéficier de commentaires immédiats et exploitables dans Android Studio, ainsi que de plusieurs correctifs rapides. Par exemple, pour Android TV, il peut signaler et fournir un correctif rapide pour les autorisations, le matériel non compatible, l'élément uses-feature et les problèmes de bannière manquante. Pour Android Auto, il peut valider une utilisation correcte dans le fichier descripteur référencé dans votre fichier AndroidManifest.xml, signaler s'il n'y a pas de filtre d'intent pour la classe MediaBrowserService et identifier certains problèmes liés aux commandes vocales.
    • Ajout de nouvelles vérifications lint pour les broadcast receivers non sécurisés, les utilisations des classes SSLCertificateSocketFactory et HostnameVerifier, et les appels File.setReadable() et File.setWritable(). Il détecte également les recherches de ressources de manifestes non valides, en particulier pour les ressources qui varient selon la configuration.
    • Correction d'un certain nombre de problèmes de stabilité.

    Android Studio v1.4.1 (octobre 2015)

    Correctifs et améliorations :

    • Correction d'un problème de mise en cache du modèle Gradle qui pouvait entraîner une synchronisation excessive de Gradle lors du redémarrage de l'IDE.
    • Correction d'un problème d'interblocage de débogage natif.
    • Correction d'un problème bloquant les utilisateurs du système de contrôle des versions Subversion 1.9.
    • Correction d'un problème de la boîte de dialogue Device Chooser (Sélecteur d'appareil) qui empêchait de sélectionner l'émulateur après la connexion d'un appareil non autorisé. Problème 189658
    • Correction du signalement incorrect d'une erreur de traduction pour les paramètres régionaux ayant un qualificatif de région et une traduction dans la région (mais pas dans les paramètres régionaux de base). Problème 188577
    • Correction d'un problème d'interblocage dans l'éditeur de thème lié à son interaction avec l'éditeur de mise en page. Problème 188070
    • Correction d'un conflit d'actualisation et de modification de l'éditeur de thème qui empêchait la mise à jour correcte des attributs. Problème : 187726
    • Amélioration des performances de l'éditeur de thème.
    • Correction d'un problème où l'attribut android:required était ignoré dans le fichier manifeste. Problème 187665

    Android Studio v1.4.0 (septembre 2015)

    Correctifs et améliorations :

    • Ajout de l'outil Vector Asset Studio pour importer des graphiques vectoriels, tels que des icônes Material et des fichiers SVG. Pour utiliser cet outil, dans la vue Android de la fenêtre "Project" (Projet), effectuez un clic droit sur le dossier res, puis sélectionnez New > Vector Asset (Nouveau > Élément vectoriel).
    • Ajout des fonctions Android Monitor, GPU et Réseau. Pour utiliser ces moniteurs, cliquez sur Android Monitor en bas de la fenêtre principale. Android Device Monitor ne peut pas être exécuté en même temps qu'Android Monitor.
    • Ajout d'une preview anticipée du nouvel éditeur de thème. Pour utiliser cette fonctionnalité, sélectionnez Tools > Android > Theme Editor (Outils > Android > Éditeur de thème).
    • Mise à jour des modèles Android pour la bibliothèque Support Design. Les modèles prennent désormais en charge la spécification Material Design, ainsi que la bibliothèque Support appcompat pour assurer la rétrocompatibilité.

    Android Studio v1.3.2 (août 2015)

    Correctifs et améliorations :

    • Ajout de la prise en charge d'Android 6.0 (niveau d'API 23), y compris de nouvelles icônes et la prise en charge d'AVD Manager pour créer des appareils avec de nouvelles densités d'écran.
    • Correction d'une exception qui survenait lors des vérifications de mises à jour. Problème 183068
    • Résolution du problème où les coordonnées de vue non résolues pouvaient faire planter l'éditeur de mise en page. Problème 178690
    • Résolution du problème lié aux avertissements de type de ressource non valides. Problème 182433
    • Correction d'une vérification lint qui signalait à tort des ressources comme privées. Problème 183120

    Android Studio v1.3.1 (août 2015)

    Correctifs et améliorations :

    • Correction de la prise en charge pour la création d'un appareil virtuel Android (AVD) Android Wear sous Windows.
    • Mise à jour de l'assistant de projet pour utiliser le nom de projet saisi.
    • Ajout de la possibilité d'autoriser le stockage du SDK Android dans un répertoire en lecture seule.
    • Mise à jour du plug-in Android pour Gradle vers la version 1.3.0.
    • Résolution des problèmes liés au lancement d'une session de débogage à partir de l'interface système Unix d'Android Debug Bridge (adb).
    • Correction du message de renommage du package Java pour afficher le nom de package correct.

    Android Studio v1.3.0 (juillet 2015)

    Correctifs et améliorations :

    • Ajout d'options pour activer les services pour les développeurs, comme Google AdMob et Analytics, dans votre application à partir d'Android Studio.
    • Ajout d'annotations supplémentaires, telles que @RequiresPermission, @CheckResults et @MainThread.
    • Ajout de la possibilité de générer des empreintes de mémoire Java et d'analyser des allocations de threads à partir du moniteur de mémoire. Vous pouvez également convertir des fichiers de format binaire HPROF spécifique à Android au format HPROF standard depuis Android Studio.
    • Intégration de SDK Manager à Android Studio pour simplifier l'accès aux packages et aux outils, et fournir des notifications de mise à jour

      Remarque : Le SDK Manager autonome est toujours disponible à partir de la ligne de commande, mais il est recommandé de l'utiliser uniquement avec des installations de SDK autonomes.

    • Ajout de la commande finger dans la console de l'émulateur pour simuler l'authentification par empreinte digitale.
    • Ajout d'une déclaration de ressources <public> pour désigner les ressources de la bibliothèque comme ressources publiques et privées.

      Remarque : Nécessite le plug-in Android pour Gradle version 1.3 ou ultérieure.

    • Ajout de la prise en charge de la liaison de données pour créer des mises en page déclaratives qui associent la logique d'application à des éléments de mise en page
    • Ajout de la prise en charge d'un module APK de test distinct pour compiler des APK de test dans Android Studio.
    • Mise à jour d'AVD Manager avec des optimisations HAXM et des notifications améliorées
    • Ajout de la prise en charge des émulateurs MIPS et ARM 64 bits pour QEMU 2.1
    • Simplification de la résolution des avertissements Lint en ajoutant des correctifs rapides, comme la génération automatique de l'implémentation Parcelable
    • Ajout de la prise en charge des modèles dynamiques pour une insertion rapide d'extraits de code.

    Android Studio v1.2.2 (juin 2015)

    Correctifs et améliorations :

    • Correction des problèmes de compilation qui empêchaient la finalisation des builds.

    Android Studio v1.2.1 (mai 2015)

    Correctifs et améliorations :

    • Correction de problèmes mineurs liés aux performances et aux fonctionnalités.

    Android Studio v1.2.0 (avril 2015)

    Correctifs et améliorations :

    • Mise à jour de la fenêtre Android Runtime pour y inclure l'outil Memory Monitor (Moniteur de mémoire) et ajout d'un onglet pour la surveillance des performances du processeur.
    • Ajout d'un onglet Captures dans la marge de gauche pour afficher les fichiers de données de performances du processeur et de la mémoire qui ont été capturés, tels que le suivi de la méthode de processeur et les instantanés de segment de mémoire.
    • Extension de la prise en charge des annotations avec des annotations de métadonnées supplémentaires et la possibilité de valeur nulle déduite.
    • Amélioration de l'éditeur de traductions avec prise en charge de la Best Current Practice (BCP) 47, qui utilise des codes de langue et de région à trois lettres.
    • Intégration des fonctionnalités IntelliJ 14 et 14.1 pour une analyse et des performances de code améliorées.
      • Amélioration du débogage pour afficher les valeurs intégrées des variables et des objets référents, et effectuer une évaluation intégrée des expressions lambda et opérateur.
      • Ajout de la détection du style de code pour les tailles de tabulation et de retrait.
      • Ajout de fichiers de travail pour les tests de code et le prototypage sans fichiers de projet.
      • Ajout de l'insertion simultanée de balises d'ouverture et de fermeture dans les fichiers HTML et XML.
      • Ajout d'un décompilateur de classe Java intégré pour que vous puissiez examiner le contenu d'une bibliothèque pour laquelle le code source n'est pas disponible.

      Pour obtenir une description complète des nouvelles fonctionnalités et améliorations, consultez Nouveautés d'IntelliJ.

    • Ajout de vues de projet supplémentaires pour Scratches (Fichiers de travail), Project Files (Fichiers de projet), Problems (Problèmes), Production et Tests afin d'améliorer l'accès au projet et sa gestion.
    • Amélioration du menu File > Settings (Fichier > Paramètres) et des boîtes de dialogue pour améliorer l'accès aux paramètres et leur gestion.
    • Ajout de la prise en charge des écrans haute densité pour Windows et Linux.
    • Ajout de la prise en charge des ressources de 280 ppp dans le dossier res/drawable-280dpi/.

    Android Studio v1.1.0 (février 2015)

    Diverses corrections et améliorations :

    • Ajout de la prise en charge du modèle de montre Android Wear.
    • Modification de la création de projets et de modules afin d'inclure des dossiers res/mipmap pour les icônes de lanceur spécifiques à la densité. Ces dossiers res/mipmap remplacent les dossiers res/drawable des icônes de lanceur.
    • Mise à jour des icônes de lanceur pour leur donner un aspect Material Design, et ajout d'une icône de lanceur xxxhdpi.
    • Ajout et amélioration des vérifications lint pour les combinaisons de régions et de langues, les icônes de lanceur, les noms de ressources et d'autres problèmes de code courants.
    • Ajout de la prise en charge de la balise de langue selon la BCP (Best Current Practice) 47.

    Android Studio v1.0.1 (décembre 2014)

    Diverses corrections et améliorations :

    • Correction du problème de verrouillage de fichier device.xml et AVD Manager.
    • Correction du journal de l'émulateur sur les systèmes Windows.
    • Correction du problème lié à la création d'AVD avec Android Studio et SDK Android installés sur des lecteurs différents sur les systèmes Windows.
    • Définition du canal de mise à jour par défaut pour les nouveaux téléchargements sur Stable. Si vous avez installé la version 1.0.0 d'Android Studio et que vous souhaitez obtenir des mises à jour stables et prêtes pour la production, utilisez File > Settings > Updates (Fichier > Paramètres > Mises à jour) pour passer au canal de mise à jour Stable.

    Android Studio v1.0 (décembre 2014)

    Version initiale d'Android Studio.

    Android Studio v0.8.14 (octobre 2014)

    Consultez tools.android.com pour obtenir la liste complète des modifications.

    Android Studio v0.8.6 (août 2014)

    Consultez tools.android.com pour obtenir la liste complète des modifications.

    Android Studio v0.8.0 (juin 2014)

    Ajout de la prise en charge des projets Android Wear.

    Consultez tools.android.com pour obtenir la liste complète des modifications.

    Android Studio v0.5.2 (mai 2014)

    Android Studio v0.4.6 (mars 2014)

    Android Studio v0.4.2 (janvier 2014)

    Android Studio v0.3.2 (octobre 2013)

    Android Studio v0.2.x (juillet 2013)

    • Fusion des dernières modifications apportées au codebase IntelliJ. Inclut les correctifs pour les problèmes signalés par les utilisateurs de Studio, tels que les ajustements de la taille des polices Linux et du rendu des polices.
    • Mise à jour du plug-in Android Gradle vers la version 0.5.0.

      Attention : Cette nouvelle version n'est pas rétrocompatible. Lorsque vous ouvrez un projet qui utilise une version plus ancienne du plug-in, Studio affiche une erreur indiquant Gradle <project_name> project refresh failed (Échec de l'actualisation du projet Gradle <nom_projet>).

      Le plug-in Gradle mis à jour inclut les modifications suivantes :

      • Correction du modèle IDE pour contenir le fichier de sortie, même s'il est personnalisé via le DSL. Correction du DSL pour obtenir/définir le fichier de sortie sur l'objet de variante afin qu'il ne soit pas nécessaire d'utiliser variant.packageApplication or variant.zipAlign.
      • Correction de la résolution des dépendances pour que nous puissions résoudre la combinaison (configuration par défaut, types de compilation, types) ensemble plutôt que séparément.
      • Correction de la dépendance pour les tests du projet de bibliothèque visant à inclure correctement toutes les dépendances de la bibliothèque proprement dite.
      • Correction du problème où deux dépendances ont le même nom de feuille.
      • Correction du problème lié à l'impossibilité d'appliquer le fichier de règles ProGuard à des types.

      Toutes les notes de version du plug-in Gradle sont disponibles à l'adresse suivante : http://tools.android.com/tech-docs/new-build-system.

    • Les erreurs Gradle à partir d'aapt ne pointent plus vers les fichiers de sortie fusionnés dans le dossier build/, mais renvoient vers les emplacements sources réels.
    • Builds parallèles. Il est à présent possible d'utiliser les builds parallèles de Gradle. Veuillez noter que les builds parallèles sont en "incubation" (consultez la documentation de Gradle). Cette fonctionnalité est désactivée par défaut. Pour l'activer, accédez à Preferences > Compiler (Préférences > Compilateur), puis cochez la case Compile independent modules in parallel (Compiler des modules indépendants en parallèle).
    • Poursuite des travaux sur le nouveau dépôt de ressources utilisé pour le rendu de la mise en page, le pliage des ressources dans l'éditeur, et plus encore :
      • Prise en charge de base des dépendances de la bibliothèque .aar (par exemple, utilisation d'une bibliothèque sans copie locale des sources). Ne fonctionne toujours pas pour la validation XML des ressources et la navigation dans les éditeurs de source.
      • Détection de cycle dans les références de ressources.
      • La documentation rapide (F1), qui peut afficher toutes les traductions de la chaîne sous le curseur de saisie, affiche à présent également toutes les superpositions de ressources des différents types Gradle et types de compilation, ainsi que les bibliothèques. Elles sont listées dans l'ordre inverse de superposition des ressources ; les versions masquées de la chaîne sont barrées.
      • Corrections pour gérer la mise à jour des ressources fusionnées lorsque l'ensemble de dépendances de module change.
      • Corrections du rendu XML pour gérer correctement les déclarations d'entité de caractère, et les échappements XML et Unicode.
    • Possibilité d'enregistrer des captures d'écran pour les fenêtres d'aperçu de la mise en page et de l'éditeur de mise en page.
    • Corrections de bugs dans les modèles.
    • Correction de bugs lint.
    • Plusieurs corrections ont été apportées aux rapports d'erreur. Merci, et continuez à remplir des rapports d'erreur !

    Android Studio v0.1.x (mai 2013)

    • Correction de plusieurs bugs, y compris la résolution d'un problème d'installation courant de Windows.

    Anciennes versions du plug-in Android Gradle

    3.6.0 (février 2020)

    Cette version du plug-in d'Android nécessite les éléments suivants :

    Nouvelles fonctionnalités

    Cette version du plug-in d'Android Gradle inclut les nouvelles fonctionnalités suivantes.

    Liaison de vue

    La liaison de vue offre une sécurité au moment de la compilation lorsque vous référencez des vues dans votre code. Vous pouvez maintenant remplacer findViewById() par la référence de la classe de liaison générée automatiquement. Pour commencer à utiliser la liaison de vue, incluez les éléments suivants dans le fichier build.gradle de chaque module :

          android {
              viewBinding.enabled = true
          }
          
          android {
              viewBinding.enabled = true
          }
          

    Pour en savoir plus, consultez les documents sur la liaison de vue.

    Prise en charge du plug-in Maven Publish

    Le plug-in Android Gradle est compatible avec le plug-in Gradle Maven Publish qui vous permet de publier des artefacts de compilation dans un dépôt Maven Apache. Le plug-in Android Gradle crée un composant pour chaque artefact de variante de compilation dans votre module d'application ou de bibliothèque, que vous pouvez utiliser pour personnaliser une publication dans un dépôt Maven.

    Pour en savoir plus, consultez la page décrivant l'utilisation du plug-in Maven Publish.

    Nouvel outil de packaging par défaut

    Lors de la création de la version de débogage de votre application, le plug-in utilise un nouvel outil de packaging, appelé zipflinger, pour compiler votre APK. Ce nouvel outil devrait permettre d'améliorer la vitesse de compilation. Si le nouvel outil de packaging ne fonctionne pas comme prévu, veuillez signaler un bug. Vous pouvez revenir à l'ancien outil de packaging en incluant ce qui suit dans votre fichier gradle.properties :

            android.useNewApkCreator=false
          
    Attribution de build natif

    Vous pouvez maintenant déterminer le temps nécessaire à Clang pour compiler et lier chaque fichier C/C++ dans votre projet. Gradle peut générer une trace Chrome contenant des codes temporels pour ces événements de compilation afin que vous puissiez mieux comprendre le temps nécessaire pour compiler votre projet. Pour générer ce fichier d'attribution de build, procédez comme suit :

    1. Ajoutez l'indicateur -Pandroid.enableProfileJson=true lors de l'exécution d'un build Gradle. Par exemple :

      gradlew assembleDebug -Pandroid.enableProfileJson=true

    2. Ouvrez le navigateur Chrome et saisissez chrome://tracing dans la barre de recherche.

    3. Cliquez sur le bouton Load (Charger) et accédez à <var>project-root</var>/build/android-profile pour trouver le fichier. Le fichier se nomme profile-<var>timestamp</var>.json.gz.

    Les données d'attribution du build natif s'affichent en haut de la visionneuse :

    Trace d&#39;attribution de build natif dans Chrome

    Changements de comportement

    Si vous utilisez cette version du plug-in, vous pouvez observer les changements de comportement suivants.

    Bibliothèques natives empaquetées non compressées par défaut

    Lorsque vous compilez votre application, le plug-in définit maintenant extractNativeLibs sur "false" par défaut. Autrement dit, vos bibliothèques natives sont alignées sur la page et empaquetées sans être compressées. Bien que la taille d'importation soit plus importante, vos utilisateurs profiteront des avantages suivants :

    • Taille d'installation de l'application réduite, car la plate-forme peut accéder directement aux bibliothèques natives à partir de l'APK installé, sans créer de copie des bibliothèques.
    • Taille de téléchargement réduite, car la compression du Play Store est généralement préférable lorsque vous incluez des bibliothèques natives non compressées dans votre APK ou votre Android App Bundle.

    Si vous souhaitez que le plug-in Android Gradle empaquette à la place les bibliothèques natives compressées, incluez ce qui suit dans le fichier manifeste de votre application :

            <application
              android:extractNativeLibs="true"
              ... >
            </application>
            
          

    Remarque : L'attribut de fichier manifeste extractNativeLibs a été remplacé par l'option DSL useLegacyPackaging. Pour en savoir plus, consultez la note de version sur l'utilisation du langage DSL pour empaqueter des bibliothèques natives compressées.

    Version par défaut de NDK

    Si vous téléchargez plusieurs versions de NDK, le plug-in Android Gradle sélectionne désormais une version par défaut à utiliser pour compiler vos fichiers de code source. Auparavant, le plug-in sélectionnait la dernière version téléchargée de NDK. Utilisez la propriété android.ndkVersion dans le fichier build.gradle du module pour remplacer la valeur par défaut sélectionnée par le plug-in.

    Génération de classe R simplifiée

    Le plug-in Android Gradle simplifie le classpath de compilation en générant une seule classe R pour chaque module de bibliothèque de votre projet et en partageant ces classes R avec d'autres dépendances de module. Cette optimisation devrait permettre d'accélérer les compilations. Vous devez toutefois tenir compte des éléments suivants :

    • Étant donné que le compilateur partage les classes R avec les dépendances de module en amont, il est important que chaque module de votre projet utilise un nom de package unique.
    • La visibilité de la classe R d'une bibliothèque par rapport aux autres dépendances du projet est déterminée par la configuration utilisée pour inclure la bibliothèque en tant que dépendance. Par exemple, si la bibliothèque A inclut la bibliothèque B en tant que dépendance "API", la bibliothèque A et les autres bibliothèques qui en dépendent ont accès à la classe R de la bibliothèque B. Toutefois, il est possible que d'autres bibliothèques n'aient pas accès à la classe R de la bibliothèque B. si la bibliothèque A utilise la configuration de dépendance implementation. Pour en savoir plus, consultez Configurations de dépendance.
    Supprimer les ressources manquantes de la configuration par défaut

    Pour les modules de bibliothèque, si vous incluez une ressource pour un langage que vous n'incluez pas dans l'ensemble de ressources par défaut (par exemple si vous incluez hello_world en tant que ressource de chaîne dans /values-es/strings.xml, mais que vous ne définissez pas cette ressource dans /values/strings.xml), le plug-in Android Gradle n'inclut plus cette ressource lors de la compilation de votre projet. Ce changement de comportement devrait réduire le nombre d'exceptions d'exécution Resource Not Found et accélérer la compilation.

    D8 respecte désormais les règles de conservation CLASS pour les annotations

    Lors de la compilation de votre application, D8 respecte désormais les règles de conservation CLASS et ces annotations ne sont plus disponibles au moment de l'exécution. Il s'agit également du comportement qui est observé lors de la définition du SDK cible de l'application sur le niveau d'API 23, ce qui permettait auparavant d'accéder à ces annotations au moment de l'exécution, lors de la compilation de votre application à l'aide d'anciennes versions du plug-in Android Gradle et de D8.

    Autres changements de comportement
    • aaptOptions.noCompress n'est plus sensible à la casse sur toutes les plates-formes (tant pour les APK que pour les bundles) et accepte les chemins avec des majuscules.
    • La liaison de données est désormais incrémentielle par défaut. Pour en savoir plus, consultez le problème 126775542.

    • Tous les tests unitaires, y compris les tests unitaires RoboElectric, peuvent désormais être mis entièrement en cache. Pour en savoir plus, consultez le problème 126775542.

    Correction de bugs

    Cette version du plug-in Android Gradle inclut les corrections de bugs suivantes :

    • Les tests unitaires RoboElectric sont désormais pris en charge dans les modules de bibliothèque qui utilisent la liaison de données. Pour en savoir plus, consultez le problème 126775542.
    • Vous pouvez désormais exécuter des tâches connectedAndroidTest sur plusieurs modules lorsque le mode d'exécution parallèle de Gradle est activé.

    Problèmes connus

    Cette section décrit les problèmes connus du plug-in Android Gradle version 3.6.0.

    Performances des tâches Android Lint ralenties

    Android Lint peut prendre beaucoup plus de temps pour achever certains projets en raison d'une régression dans son infrastructure d'analyse, ce qui ralentit les calculs des types déduits pour les lambdas dans certaines constructions de code.

    Le problème est signalé comme bug dans IDEA et sera corrigé dans le plug-in Android Gradle version 4.0.

    Classe Manifest manquante {:#agp-missing-manifest}

    En général, si votre application définit des autorisations personnalisées dans son fichier manifeste, le plug-in Android Gradle génère une classe Manifest.java qui inclut vos autorisations personnalisées en tant que constantes de chaîne. Le plug-in empaquette cette classe dans votre application, ce qui vous permet de référencer plus facilement ces autorisations au moment de l'exécution.

    La génération de la classe Manifest ne fonctionne pas dans la version 3.6.0 du plug-in Android Gradle. Si vous compilez votre application avec cette version du plug-in et qu'elle fait référence à la classe Manifest, vous pouvez voir une exception ClassNotFoundException. Pour résoudre ce problème, effectuez l'une des opérations suivantes :

    • Référencez vos autorisations personnalisées par leur nom complet. Exemple : "com.example.myapp.permission.DEADLY_ACTIVITY".

    • Définissez vos propres constantes, comme indiqué ci-dessous :

                  public final class CustomPermissions {
                    public static final class permission {
                      public static final String DEADLY_ACTIVITY="com.example.myapp.permission.DEADLY_ACTIVITY";
                    }
                  }
                  
                

    3.5.0 (août 2019)

    La version 3.5.0 du plug-in Android Gradle, combinée à Android Studio 3.5, est une version majeure et est le résultat du projet Marble, qui vise à améliorer trois domaines principaux des outils de développement Android : l'intégrité du système, le perfectionnement des fonctionnalités et la correction de bugs. L'un des principaux objectifs de cette mise à jour était notamment l'amélioration de la vitesse de compilation des projets.

    Pour en savoir plus sur ces mises à jour et d'autres mises à jour du projet Marble, consultez l'article du blog des développeurs Android ou les sections ci-dessous.

    Cette version du plug-in Android nécessite les éléments suivants :

    3.5.4 (juillet 2020)

    Cette mise à jour mineure est compatible avec les nouveaux paramètres et fonctionnalités par défaut pour la visibilité des packages dans Android 11.

    Pour en savoir plus, consultez les notes de la version 4.0.1.

    3.5.3 (décembre 2019)

    Cette mise à jour mineure prend en charge Android Studio 3.5.3, et inclut plusieurs corrections de bugs et améliorations de performances.

    3.5.2 (novembre 2019)

    Cette mise à jour mineure prend en charge Android Studio 3.5.2, et inclut plusieurs corrections de bugs et améliorations de performances. Pour consulter la liste des corrections de bugs principaux, lisez l'article associé sur le blog des mises à jour des versions.

    3.5.1 (octobre 2019)

    Cette mise à jour mineure prend en charge Android Studio 3.5.1, et inclut plusieurs corrections de bugs et améliorations de performances. Pour consulter la liste des corrections de bugs principaux, lisez l'article associé sur le blog des mises à jour des versions.

    Traitement incrémentiel des annotations

    Le processeur d'annotations DataBinding prend en charge le traitement incrémentiel des annotations si vous définissez android.databinding.incremental=true dans votre fichier gradle.properties. Cette optimisation améliore les performances de la compilation incrémentielle. Pour obtenir la liste complète des processeurs d'annotations optimisés, consultez le tableau des processeurs d'annotations incrémentiels.

    De plus, les versions 1.3.30 et supérieures de KAPT prennent également en charge les processeurs d'annotations incrémentiels, que vous pouvez activer en incluant kapt.incremental.apt=true dans votre fichier gradle.properties.

    Tests unitaires pouvant être mis en cache

    Lorsque vous activez des tests unitaires pour utiliser les ressources, les composants et les fichiers manifestes Android en définissant includeAndroidResources sur true, le plug-in Android Gradle génère un fichier de configuration de test contenant des chemins d'accès absolus, ce qui empêche de modifier l'emplacement du cache. Vous pouvez demander au plug-in de générer plutôt la configuration de test à l'aide de chemins d'accès relatifs, ce qui permet une mise en cache complète de la tâche AndroidUnitTest, en incluant ce qui suit dans votre fichier gradle.properties :

          android.testConfig.useRelativePath = true
        

    Problèmes connus

    • Si vous utilisez la version 1.3.31 ou antérieure du plug-in Kotlin Gradle, l'avertissement suivant peut s'afficher lorsque vous compilez ou synchronisez votre projet :

                WARNING: API 'variant.getPackageLibrary()' is obsolete and has been replaced
                        with 'variant.getPackageLibraryProvider()'.
                
              

      Pour résoudre ce problème, mettez à niveau le plug-in vers la version 1.3.40 ou supérieure.

    3.4.0 (avril 2019)

    Cette version du plug-in Android nécessite les éléments suivants :

    3.4.3 (juillet 2020)

    Cette mise à jour mineure est compatible avec les nouveaux paramètres et fonctionnalités par défaut pour la visibilité des packages dans Android 11.

    Pour en savoir plus, consultez les notes de la version 4.0.1.

    3.4.2 (juillet 2019)

    Cette mise à jour mineure prend en charge Android Studio 3.4.2, et inclut plusieurs corrections de bugs et améliorations de performances. Pour consulter la liste des corrections de bugs principaux, lisez l'article associé sur le blog des mises à jour des versions.

    3.4.1 (mai 2019)

    Cette mise à jour mineure prend en charge Android Studio 3.4.1, et inclut plusieurs corrections de bugs et améliorations de performances. Pour consulter la liste des corrections de bugs principaux, lisez l'article associé sur le blog des mises à jour des versions.

    Nouvelles fonctionnalités

    • Nouvelles configurations de dépendances pour la vérification lint : le comportement de lintChecks a changé et une nouvelle configuration de dépendance, lintPublish, a été introduite pour vous permettre de mieux contrôler les vérifications lint empaquetées dans vos bibliothèques Android.

      • lintChecks : configuration existante à utiliser pour les vérifications lint que vous ne souhaitez exécuter que lorsque vous compilez votre projet en local. Si vous utilisiez précédemment la configuration des dépendances lintChecks pour inclure les vérifications lint dans l'AAR publiée, vous devez migrer ces dépendances afin d'utiliser plutôt la configuration lintPublish.
      • lintPublish : utilisez cette nouvelle configuration dans les projets de bibliothèque pour les vérifications lint que vous souhaitez inclure dans l'AAR publiée, comme indiqué ci-dessous. Cela signifie que les projets qui utilisent votre bibliothèque appliquent également ces vérifications lint.

      L'exemple de code suivant utilise les deux configurations de dépendances dans un projet de bibliothèque Android local.

      dependencies {
        // Executes lint checks from the ':lint' project at build time.
        lintChecks project(':lint')
        // Packages lint checks from the ':lintpublish' in the published AAR.
        lintPublish project(':lintpublish')
      }
              
      dependencies {
        // Executes lint checks from the ':lint' project at build time.
        lintChecks(project(":lint"))
        // Packages lint checks from the ':lintpublish' in the published AAR.
        lintPublish(project(":lintpublish"))
          }
              
      • En règle générale, les tâches de packaging et de signature doivent enregistrer une amélioration globale de la vitesse de compilation. Si vous remarquez une régression des performances pour ces tâches, veuillez signaler un bug.

    Changements de comportement

    • Avertissement concernant l'abandon du plug-in de fonctionnalité des applis instantanées Android : si vous utilisez toujours le plug-in com.android.feature pour compiler votre appli instantanée, le plug-in Android Gradle 3.4.0 générera une avertissement d'abandon. Pour vous assurer que vous pouvez toujours compiler votre appli instantanée sur les futures versions du plug-in, faites-la migrer vers le plug-in de fonctionnalité dynamique, qui permet également de publier à la fois vos expériences d'applis instantanées et installées à partir d'un seul Android App Bundle.

    • R8 activé par défaut : R8 intègre le désucrage, la minification, l'obscurcissement, l'optimisation et la conversion en DEX en une seule étape, ce qui entraîne des améliorations importantes au niveau des performances de compilation. R8 a été introduit dans le plug-in Android Gradle 3.3.0 et est à présent activé par défaut pour les projets d'application et de bibliothèque Android utilisant le plug-in 3.4.0 et versions ultérieures.

    L'image ci-dessous offre une vue d'ensemble du processus de compilation avant l'introduction de R8.

    Avant R8, ProGuard était une étape de compilation différente de la conversion au format .dex et du désucrage.

    Avec R8, le désucrage, la minification, l'obscurcissement, l'optimisation et la conversion au format .dex (D8) sont effectués en une seule étape, comme illustré ci-dessous.

    Avec R8, les processus de désucrage, de minification, d&#39;obscurcissement, d&#39;optimisation et de conversion en DEX s&#39;effectuent tous en une seule étape de compilation.

    Pour rappel, R8 est conçu pour fonctionner avec vos règles ProGuard existantes. Vous n'aurez donc probablement aucune action à effectuer pour bénéficier de ce compilateur. Cependant, comme il s'agit d'une technologie différente de ProGuard, conçue spécialement pour les projets Android, la minification et l'optimisation peuvent entraîner la suppression de code que ProGuard n'aurait peut-être pas supprimé. Dans ce cas peu probable, vous devrez peut-être ajouter des règles supplémentaires pour conserver ce code dans votre sortie de compilation.

    Si vous rencontrez des problèmes pour utiliser R8, consultez les questions fréquentes sur la compatibilité avec R8 pour voir s'il existe une solution. Si aucune solution n'est documentée, veuillez signaler un bug. Vous pouvez désactiver R8 en ajoutant l'une des lignes suivantes au fichier gradle.properties de votre projet :

          # Disables R8 for Android Library modules only.
          android.enableR8.libraries = false
          # Disables R8 for all modules.
          android.enableR8 = false
          
        

    Remarque : Pour un type de compilation donné, si vous définissez useProguard sur false dans le fichier build.gradle du module de votre application, le plug-in Android Gradle utilise R8 pour minifier le code de votre application pour ce type de compilation, que vous désactiviez R8 ou non dans le fichier gradle.properties de votre projet.

    • ndkCompile est obsolète : désormais, une erreur de compilation est générée si vous essayez d'utiliser ndkBuild pour compiler vos bibliothèques natives. Utilisez plutôt CMake ou ndk-build pour ajouter du code C et C++ à votre projet.

    Problèmes connus

    • Actuellement, l'utilisation correcte des noms de packages uniques n'est pas appliquée. Toutefois, elle sera plus stricte dans les versions ultérieures du plug-in. Dans la version 3.4.0 du plug-in Android Gradle, vous pouvez choisir de vérifier si votre projet déclare des noms de packages acceptables en ajoutant la ligne ci-dessous à votre fichier gradle.properties.

                android.uniquePackageNames = true
                
              

      Pour en savoir plus sur la définition d'un nom de package via le plug-in Android Gradle, consultez Définir l'ID application.

    3.3.0 (janvier 2019)

    Cette version du plug-in Android nécessite les éléments suivants :

    3.3.3 (juillet 2020)

    Cette mise à jour mineure est compatible avec les nouveaux paramètres et fonctionnalités par défaut pour la visibilité des packages dans Android 11.

    Pour en savoir plus, consultez les notes de la version 4.0.1.

    3.3.2 (mars 2019)

    Cette mise à jour mineure prend en charge Android Studio 3.3.2, et inclut plusieurs corrections de bugs et améliorations de performances. Pour consulter la liste des corrections de bugs principaux, lisez l'article associé sur le blog des mises à jour des versions.

    3.3.1 (février 2019)

    Cette mise à jour mineure prend en charge Android Studio 3.3.1, et inclut plusieurs corrections de bugs et améliorations de performances.

    Nouvelles fonctionnalités

    • Synchronisation des classpaths améliorée : lors de la résolution des dépendances sur vos classpaths au moment de l'exécution et de la compilation, le plug-in Android Gradle tente de résoudre certains conflits de version en aval pour les dépendances qui apparaissent sur plusieurs classpaths.

      Par exemple, si le classpath d'exécution inclut la bibliothèque A version 2.0 tandis que le classpath de compilation inclut la bibliothèque A version 1.0, le plug-in met automatiquement à jour la dépendance dans le classpath de compilation vers la version 2.0 de la bibliothèque A, pour éviter les erreurs.

      Toutefois, si le classpath d'exécution inclut la bibliothèque A version 1.0 alors que le classpath de compilation inclut la bibliothèque A version 2.0, le plug-in ne rétrograde pas la version de la dépendance dans le classpath de compilation vers la version 1.0 de la bibliothèque A, ce qui génère une erreur. Pour en savoir plus, consultez Résoudre les conflits entre les classpaths.

    • Compilation Java incrémentielle améliorée à l'aide de processeurs d'annotations : cette mise à jour réduit la durée de compilation en améliorant la prise en charge de la compilation Java incrémentielle lors de l'utilisation de processeurs d'annotations.

      Remarque : Cette fonctionnalité est compatible avec Gradle 4.10.1 ou version ultérieure, à l'exception de Gradle 5.1 en raison du problème Gradle 8194.

      • Pour les projets avec Kapt (la plupart des projets en Kotlin uniquement et des projets hybrides Kotlin-Java) : la compilation Java incrémentielle est activée, même si vous utilisez la liaison de données ou le plug-in rétro-lambda. Le traitement des annotations par la tâche Kapt n'est pas encore incrémentiel.

      • Pour les projets n'utilisant pas Kapt (projets Java uniquement) : si les processeurs d'annotations que vous utilisez prennent tous en charge le traitement d'annotations incrémentiel, la compilation Java incrémentielle est activée par défaut. Pour surveiller l'adoption des processeurs d'annotations incrémentiels, reportez-vous au problème Gradle 5277.

        Cependant, si un ou plusieurs processeurs d'annotations ne prennent pas en charge les builds incrémentiels, la compilation Java incrémentielle n'est pas activée. À la place, vous pouvez inclure l'indicateur suivant dans votre fichier gradle.properties :

        android.enableSeparateAnnotationProcessing=true
                    

        Si vous incluez cet indicateur, le plug-in Android Gradle exécute les processeurs d'annotations dans une tâche distincte et autorise l'exécution incrémentielle de la tâche de compilation Java.

    • Informations de débogage améliorées lors de l'utilisation d'une API obsolète : lorsque le plug-in détecte que vous utilisez une API qui n'est plus prise en charge, il peut désormais fournir des informations plus détaillées pour vous aider à déterminer où cette API est utilisée. Pour afficher ces informations supplémentaires, vous devez inclure ce qui suit dans le fichier gradle.properties de votre projet :

                android.debug.obsoleteApi=true
              

      Vous pouvez également activer l'indicateur en transmettant -Pandroid.debug.obsoleteApi=true à partir de la ligne de commande.

    • Vous pouvez exécuter des tests d'instrumentation sur les modules de fonctionnalités à partir de la ligne de commande.

    Changements de comportement

    • Configuration différée des tâches : le plug-in utilise désormais la nouvelle API de création de tâches de Gradle pour éviter d'initialiser et de configurer des tâches inutiles pour l'exécution du build actuel (ou des tâches qui ne figurent pas sur le graphique des tâches d'exécution). Par exemple, si vous disposez de plusieurs variantes de compilation, telles que "Release" et "Debug", et que vous compilez la version "Debug" de votre application, le plug-in évite d'initialiser et de configurer des tâches pour la version "Release" de votre application.

      L'appel de certaines méthodes plus anciennes dans l'API Variants, comme variant.getJavaCompile(), peut toujours forcer la configuration des tâches. Pour vous assurer que votre build est optimisé pour la configuration différée des tâches, appelez de nouvelles méthodes qui renvoient plutôt un objet TaskProvider, comme variant.getJavaCompileProvider().

      Si vous exécutez des tâches de compilation personnalisées, découvrez comment vous adapter à la nouvelle API de création de tâches de Gradle.

    • Pour un type de compilation donné, lorsque vous définissez useProguard false, le plug-in utilise désormais R8 au lieu de ProGuard pour minifier et obscurcir le code et les ressources de votre application. Pour en savoir plus sur R8, consultez cet article du blog des développeurs Android.

    • Génération de classes R plus rapide pour les projets de bibliothèque : auparavant, le plug-in Android Gradle générait un fichier R.java pour chacune des dépendances de votre projet, puis compilait ces classes R en même temps que les autres classes de votre application. Le plug-in génère désormais un fichier JAR contenant directement la classe R compilée de votre application, sans compiler d'abord les classes R.java intermédiaires. Cette optimisation peut considérablement améliorer les performances de compilation des projets qui incluent de nombreux sous-projets et dépendances de bibliothèque, et accélérer l'indexation dans Android Studio.

    • Lorsque vous créez un Android App Bundle, les APK générés à partir de cet app bundle qui ciblent Android 6.0 (niveau 23 d'API) ou version ultérieure incluent désormais par défaut les versions non compressées de vos bibliothèques natives. Cette optimisation évite que l'appareil ait besoin de créer une copie de la bibliothèque et réduit ainsi la taille de votre application sur disque. Si vous préférez désactiver cette optimisation, ajoutez ce qui suit à votre fichier gradle.properties :

      android.bundle.enableUncompressedNativeLibs = false
              
    • Le plug-in applique les versions minimales de certains plug-ins tiers.

    • Synchronisation d'un projet à variante unique : il est important de synchroniser votre projet avec votre configuration de compilation pour permettre à Android Studio de comprendre la structure de votre projet. Toutefois, ce processus peut prendre beaucoup de temps pour les projets de grande envergure. Si votre projet utilise plusieurs variantes de compilation, vous pouvez à présent optimiser les synchronisations du projet en les limitant à la variante qui est actuellement sélectionnée.

      Vous devez utiliser Android Studio 3.3 ou version ultérieure avec le plug-in Android Gradle 3.3.0 ou version ultérieure pour activer cette optimisation. Lorsque vous remplissez ces conditions, l'IDE vous invite à activer cette optimisation lorsque vous synchronisez votre projet. L'optimisation est également activée par défaut sur les nouveaux projets.

      Pour activer cette optimisation manuellement, cliquez sur Fichier > Paramètres > Expérimental > Gradle (Android Studio > Préférences > Expérimental > Gradle sur Mac), puis cochez la case Synchroniser uniquement la variante active.

      Remarque : Cette optimisation est entièrement compatible avec les projets qui incluent les langages Java et C++, et partiellement compatible avec Kotlin. Lorsque vous activez l'optimisation des projets avec du contenu Kotlin, la synchronisation Gradle bascule vers l'utilisation de variantes complètes en interne.

    • Téléchargement automatique des packages SDK manquants : cette fonctionnalité a été étendue pour prendre en charge NDK. Pour en savoir plus, consultez Télécharger automatiquement les packages manquants avec Gradle.

    Correction de bugs

    • Le plug-in Android Gradle 3.3.0 résout les problèmes suivants :

      • Appel de android.support.v8.renderscript.RenderScript par le processus de compilation au lieu de la version AndroidX, bien que Jetifier soit activé
      • Conflits dus au fait que androidx-rs.jar inclut annotation.AnyRes groupé de manière statique
      • Avec RenderScript, vous n'avez plus à définir manuellement la version de Build Tools dans vos fichiers build.gradle

    3.2.0 (septembre 2018)

    Cette version du plug-in Android nécessite les éléments suivants :

    3.2.1 (octobre 2018)

    Avec cette mise à jour, il n'est plus nécessaire d'indiquer une version spécifique pour SDK Build Tools. Le plug-in Android Gradle utilise désormais par défaut la version 28.0.3.

    Nouvelles fonctionnalités

    • Prise en charge de la compilation d'Android App Bundles : l'app bundle est un nouveau format d'importation qui inclut l'ensemble du code et des ressources compilés de votre application, tout en déléguant la génération des APK et leur signature au Google Play Store. Il n'est plus nécessaire de compiler, signer et gérer plusieurs APK, et les utilisateurs bénéficient de téléchargements moins volumineux, optimisés pour leur appareil. Pour en savoir plus, consultez À propos des Android App Bundles.

    • Prise en charge de vitesses de compilation incrémentielles améliorées à l'aide de processeurs d'annotations : le DSL AnnotationProcessorOptions étend désormais CommandLineArgumentProvider, ce qui vous permet à vous ou à l'auteur du processeur d'annotations d'annoter les arguments du processeur à l'aide d'annotations de type de propriété à compilation incrémentielle. L'utilisation de ces annotations améliore la précision et les performances des builds propres mis en cache et incrémentiels. Pour en savoir plus, consultez Transmettre des arguments aux processeurs d'annotations.

    • Outil de migration pour AndroidX : lorsque vous utilisez le plug-in Android Gradle 3.2.0 avec Android 3.2 ou version ultérieure, vous pouvez migrer les dépendances locales et Maven de votre projet pour utiliser les nouvelles bibliothèques AndroidX. Pour ce faire, sélectionnezRefactor > Migrate to AndroidX (Refactoriser > Migrer vers AndroidX) dans la barre de menu. Cet outil de migration définit également les indicateurs suivants sur true dans votre fichier gradle.properties :

      • android.useAndroidX : si cet indicateur est défini sur true, le plug-in Android utilise la bibliothèque AndroidX appropriée au lieu d'une bibliothèque Support. Si cet indicateur n'est pas spécifié, le plug-in le définit par défaut sur false.

      • android.enableJetifier : si cet indicateur est défini sur true, le plug-in Android migre automatiquement les bibliothèques tierces existantes pour utiliser AndroidX en réécrivant leurs binaires. Si cet indicateur n'est pas spécifié, le plug-in le définit par défaut sur false. Vous ne pouvez définir cet indicateur sur true que si android.useAndroidX est également défini sur true. Sinon, une erreur de compilation est générée.

        Pour en savoir plus, consultez la présentation d'AndroidX.

    • Nouvel outil de minification de code R8 : R8 est un nouvel outil de minification et d'obscurcissement du code qui remplace ProGuard. Vous pouvez commencer à utiliser la version preview de R8 en incluant ce qui suit dans le fichier gradle.properties de votre projet :

              android.enableR8 = true
              
              android.enableR8 = true
              

    Changements de comportement

    • Le désucrage avec D8 est désormais activé par défaut.

    • AAPT2 se trouve maintenant dans le dépôt Maven de Google. Pour utiliser AAPT2, assurez-vous que la dépendance google() est présente dans votre fichier build.gradle, comme indiqué ci-dessous :

                buildscript {
                      repositories {
                          google() // here
                          jcenter()
                      }
                      dependencies {
                          classpath 'com.android.tools.build:gradle:3.2.0'
                      }
                  }
                  allprojects {
                      repositories {
                          google() // and here
                          jcenter()
                  }
                
                buildscript {
                      repositories {
                          google() // here
                          jcenter()
                      }
                      dependencies {
                          classpath 'com.android.tools.build:gradle:3.2.0'
                      }
                  }
                  allprojects {
                      repositories {
                          google() // and here
                          jcenter()
                  }
                
    • Le multidex natif est désormais activé par défaut. Les versions précédentes d'Android Studio activaient le multidex natif lors du déploiement de la version de débogage d'une application sur un appareil exécutant le niveau d'API Android 21 ou supérieur. Désormais, que vous effectuiez le déploiement sur un appareil ou que vous compiliez un APK en vue de sa publication, le plug-in Android Gradle active le multidex natif pour tous les modules qui définissent minSdkVersion=21 ou plus.

    • Le plug-in applique désormais une version minimale du plug-in Protobuf (0.8.6), du plug-in Kotlin (1.2.50) et du plug-in Crashlytics (1.25.4).

    • Le plug-in de module de fonctionnalité com.android.feature n'accepte désormais plus que des lettres, des chiffres et des traits de soulignement pour les noms de module. Par exemple, si le nom de votre module de fonctionnalité contient des tirets, une erreur de compilation est générée. Ce comportement correspond à celui du plug-in de fonctionnalité dynamique.

    Correction de bugs

    • JavaCompile peut désormais être mis en cache dans les projets avec liaison de données. (Problème 69243050)
    • Amélioration de l'évitement de compilation pour les modules de bibliothèque avec liaison de données (Problème 77539932)
    • Vous pouvez désormais réactiver la fonctionnalité Configurer à la demande si vous l'avez désactivée dans des versions antérieures en raison d'erreurs de compilation imprévisibles. (Problème 77910727)

    Version 3.1.0 (mars 2018)

    Cette version du plug-in Android nécessite les éléments suivants :

    • Gradle 4.4 ou version ultérieure.

      Pour en savoir plus, consultez la section sur la mise à jour de Gradle.

    • Build Tools 27.0.3 ou version ultérieure.

      Pour rappel, il n'est plus nécessaire de préciser une version spécifique pour les outils de compilation à l'aide de la propriété android.buildToolsVersion, car le plug-in utilise par défaut la version minimale requise.

    Nouveau compilateur DEX D8

    Par défaut, Android Studio utilise désormais un nouveau compilateur DEX appelé D8. La compilation DEX est le processus qui consiste à transformer le bytecode .class en bytecode .dex pour Android Runtime (ou Dalvik, pour les versions antérieures d'Android). Par rapport au compilateur précédent, appelé DX, D8 compile plus rapidement et génère des fichiers DEX plus petits, tout en ayant des performances d'exécution d'application identiques voire supérieures.

    D8 ne devrait pas modifier votre workflow de développement d'applications au quotidien. Toutefois, si vous rencontrez des problèmes liés au nouveau compilateur, veuillez signaler un bug. Vous pouvez désactiver temporairement D8 et utiliser DX en incluant ce qui suit dans le fichier gradle.properties de votre projet :

          android.enableD8=false
        

    Pour les projets qui utilisent les fonctionnalités du langage Java 8, le désucrage incrémentiel est activé par défaut. Vous pouvez le désactiver en indiquant le code suivant dans le fichier gradle.properties de votre projet :

          android.enableIncrementalDesugaring=false.
        

    Utilisateurs de la version preview : si vous utilisez déjà une version preview de D8, sachez qu'elle est désormais compilée par rapport aux bibliothèques incluses dans SDK Build Tools, et non dans le JDK. Si vous accédez à des API qui existent dans le JDK, mais pas dans les bibliothèques de SDK Build Tools, une erreur de compilation est donc générée.

    Changements de comportement

    • Lorsque vous compilez plusieurs APK qui ciblent chacun une ABI différente, le composant ne génère plus d'APK pour les ABI suivantes par défaut : mips, mips64 et armeabi.

      Si vous souhaitez compiler des APK ciblant ces ABI, vous devez utiliser NDK r16b ou une version antérieure et les spécifier dans votre fichier build.gradle, comme indiqué ci-dessous :

                splits {
                    abi {
                        include 'armeabi', 'mips', 'mips64'
                        ...
                    }
                }
              
                splits {
                    abi {
                        include("armeabi", "mips", "mips64")
                        ...
                    }
                }
              
    • Le cache de compilation du plug-in Android supprime désormais les entrées de cache de plus de 30 jours.

    • Si vous transmettez "auto" à resConfig, les ressources de chaînes à empaqueter dans votre APK ne sont plus sélectionnées automatiquement. Si vous continuez à utiliser "auto", le plug-in empaquette toutes les ressources de chaînes fournies par votre application et ses dépendances. Vous devez donc spécifier chaque paramètre régional que le plug-in doit empaqueter dans votre APK.

    • Comme les modules locaux ne peuvent pas dépendre de l'APK de test de votre application, l'ajout de dépendances à vos tests d'instrumentation à l'aide de la configuration, androidTestApi au lieu de androidTestImplementation, entraîne la génération de l'avertissement suivant par Gradle :

              WARNING: Configuration 'androidTestApi' is obsolete
              and has been replaced with 'androidTestImplementation'
              
              WARNING: Configuration 'androidTestApi' is obsolete
              and has been replaced with 'androidTestImplementation'
              

    Correctifs

    • Correction d'un problème qui empêche Android Studio de reconnaître correctement les dépendances dans des builds composites
    • Résolution d'une erreur de synchronisation du projet lorsque le plug-in Android est chargé plusieurs fois dans un seul build, par exemple lorsque plusieurs sous-projets intègrent chacun le plug-in Android dans leur classpath buildscript.

    3.0.0 (octobre 2017)

    Le plug-in Android Gradle 3.0.0 inclut différentes modifications visant à résoudre les problèmes de performances des projets de grande envergure.

    Par exemple, sur un exemple de squelette de projet avec environ 130 modules et un grand nombre de dépendances externes (mais sans code ni ressources), vous pouvez enregistrer une amélioration des performances comme suit :

    Version du plug-in Android + version Gradle Plug-in 2.2.0 d'Android + Gradle 2.14.1 Plug-in 2.3.0 d'Android + Gradle 3.3 Plug-in 3.0.0 d'Android + Gradle 4.1
    Configuration (par exemple avec ./gradlew --help) ~2 min ~9 s ~ 2,5 s
    Modification d'une ligne de Java (modification de l'intégration) ~2 min 15 s ~29 s ~6,4 s

    Certaines de ces modifications abîment les builds existants. Vous devez donc prendre en compte les efforts de migration de votre projet avant d'utiliser le nouveau plug-in.

    Si vous n'avez pas constaté les améliorations de performances décrites ci-dessus, veuillez signaler un bug et inclure une trace de votre build à l'aide du profileur Gradle.

    Cette version du plug-in Android nécessite les éléments suivants :

    • Gradle 4.1 ou version ultérieure. Pour en savoir plus, consultez la section sur la mise à jour de Gradle.
    • Build Tools 26.0.2 ou version ultérieure. Avec cette mise à jour, il n'est plus nécessaire de préciser une version spécifique pour les outils de compilation, car le plug-in utilise par défaut la version minimale requise. Vous pouvez donc supprimer la propriété android.buildToolsVersion.

    3.0.1 (novembre 2017)

    Cette mise à jour mineure prend en charge Android Studio 3.0.1, inclut des corrections générales de bugs et améliore les performances.

    Optimisations

    • Amélioration du parallélisme pour les projets multimodules grâce à un graphique de tâches précis.
    • Lorsque vous modifiez une dépendance, Gradle effectue des builds plus rapides en ne recompilant pas les modules qui n'ont pas accès à l'API de cette dépendance. Vous devez limiter les dépendances qui divulguent leurs API à d'autres modules en utilisant les nouvelles configurations de dépendances de Gradle : implementation, api, compileOnly et runtimeOnly.
    • Compilation incrémentielle plus rapide grâce à la conversion au format .dex par classe. Chaque classe est désormais compilée dans des fichiers DEX distincts, et seules les classes modifiées sont à nouveau converties au format .dex. La vitesse de compilation devrait être améliorée pour les applications qui définissent minSdkVersion sur 20 ou moins, et qui utilisent l'ancien multidex.
    • Amélioration de la vitesse de compilation en optimisant certaines tâches afin d'utiliser des résultats mis en cache. Pour bénéficier de cette optimisation, vous devez d'abord activer le cache de build Gradle.
    • Amélioration du traitement incrémentiel des ressources avec AAPT2, qui est désormais activé par défaut. Si vous rencontrez des problèmes lors de l'utilisation d'AAPT2, veuillez signaler un bug. Vous pouvez également désactiver AAPT2 en définissant android.enableAapt2=false dans votre fichier gradle.properties, puis en redémarrant le daemon Gradle en exécutant ./gradlew --stop à partir de la ligne de commande.

    Nouvelles fonctionnalités

    • Gestion des dépendances avec variantes. Désormais, lorsque vous compilez une variante spécifique d'un module, le plug-in met automatiquement en correspondance les variantes des dépendances du module de la bibliothèque locale avec la variante du module en cours de compilation.
    • Inclut un nouveau plug-in de module de fonctionnalité compatible avec les applis instantanées Android et leur SDK (que vous pouvez télécharger via SDK Manager). Pour en savoir plus sur la création de modules de fonctionnalités avec le nouveau plug-in, consultez Structure d'une appli instantanée avec plusieurs fonctionnalités.
    • Prise en charge intégrée de l'utilisation de certaines fonctionnalités du langage Java 8 et bibliothèques Java 8. Jack est désormais obsolète et n'est plus obligatoire. Vous devez d'abord désactiver Jack pour utiliser la prise en charge Java 8 améliorée intégrée dans la chaîne d'outils par défaut. Pour en savoir plus, consultez Utiliser les fonctionnalités du langage Java 8.
    • Possibilité d'exécuter des tests avec Android Test Orchestrator, ce qui vous permet d'exécuter chacun des tests de votre application dans son propre appel d'instrumentation. Étant donné que chaque test s'exécute dans sa propre instance d'instrumentation, les états partagés entre les tests ne s'accumulent pas sur le processeur ou la mémoire de votre appareil. De plus, même si un test plante, il ne supprime que sa propre instance de l'instrumentation. Vos autres tests continuent donc de s'exécuter.

      • Ajout de testOptions.execution pour déterminer si vous devez utiliser l'orchestration de tests sur l'appareil. Si vous souhaitez utiliser Android Test Orchestrator, vous devez spécifier ANDROID_TEST_ORCHESTRATOR, comme indiqué ci-dessous. Par défaut, cette propriété est définie sur HOST, ce qui désactive l'orchestration sur l'appareil et constitue la méthode standard d'exécution de tests.

      Groovy

              android {
                testOptions {
                  execution 'ANDROID_TEST_ORCHESTRATOR'
                }
              }
              

      Kotlin

              android {
                testOptions {
                  execution = "ANDROID_TEST_ORCHESTRATOR"
                }
              }
              
    • La nouvelle configuration de dépendance androidTestUtil vous permet d'installer un autre APK d'assistance de test, tel qu'Android Test Orchestrator, avant d'exécuter vos tests d'instrumentation :

      Groovy

              dependencies {
                androidTestUtil 'com.android.support.test:orchestrator:1.0.0'
                ...
              }
              

      Kotlin

              dependencies {
                androidTestUtil("com.android.support.test:orchestrator:1.0.0")
                ...
              }
              
    • Ajout de testOptions.unitTests.includeAndroidResources pour prendre en charge les tests unitaires nécessitant des ressources Android, comme RoboElectric. Lorsque vous définissez cette propriété sur true, le plug-in effectue la fusion des ressources, des éléments et des fichiers manifestes avant d'exécuter vos tests unitaires. Vos tests peuvent alors examiner com/android/tools/test_config.properties sur le classpath pour trouver les clés suivantes :

      • android_merged_assets : Chemin d'accès absolu au répertoire des éléments fusionnés.

        Remarque : Pour les modules de bibliothèque, les éléments fusionnés ne contiennent pas les éléments des dépendances (voir le problème 65550419).

      • android_merged_manifest : Chemin d'accès absolu au manifeste fusionné.

      • android_merged_resources : Chemin d'accès absolu au répertoire de ressources fusionné, qui contient toutes les ressources du module et de toutes ses dépendances.

      • android_custom_package : nom de package de la classe R finale. Si vous modifiez l'ID application de manière dynamique, il se peut que ce nom de package ne corresponde pas à l'attribut package dans le fichier manifeste de l'application.

    • Prise en charge des polices comme ressources (nouvelle fonctionnalité introduite dans Android 8.0 (niveau d'API 26)).
    • Prise en charge des APK spécifiques à la langue avec le SDK Applis instantanées Android 1.1 et versions ultérieures.
    • Vous pouvez maintenant modifier le répertoire de sortie pour votre projet de compilation natif externe, comme indiqué ci-dessous :

      Groovy

              android {
                  ...
                  externalNativeBuild {
                      // For ndk-build, instead use the ndkBuild block.
                      cmake {
                          ...
                          // Specifies a relative path for outputs from external native
                          // builds. You can specify any path that's not a subdirectory
                          // of your project's temporary build/ directory.
                          buildStagingDirectory "./outputs/cmake"
                      }
                  }
              }
              

      Kotlin

              android {
                  ...
                  externalNativeBuild {
                      // For ndk-build, instead use the ndkBuild block.
                      cmake {
                          ...
                          // Specifies a relative path for outputs from external native
                          // builds. You can specify any path that's not a subdirectory
                          // of your project's temporary build/ directory.
                          buildStagingDirectory = "./outputs/cmake"
                      }
                  }
              }
              
    • Vous pouvez désormais utiliser CMake 3.7 ou version ultérieure lorsque vous compilez des projets natifs à partir d'Android Studio.
    • La nouvelle configuration des dépendances lintChecks vous permet de créer un fichier JAR qui définit des règles lint personnalisées, et de l'empaqueter dans vos projets AAR et APK.

      Vos règles lint personnalisées doivent appartenir à un projet distinct qui génère un seul fichier JAR et n'inclut que les dépendances compileOnly. D'autres modules d'application et de bibliothèque peuvent ensuite dépendre de votre projet lint à l'aide de la configuration lintChecks :

      Groovy

              dependencies {
                  // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file
                  // and package it with your module. If the module is an Android library,
                  // other projects that depend on it automatically use the lint checks.
                  // If the module is an app, lint includes these rules when analyzing the app.
                  lintChecks project(':lint-checks')
              }
              

      Kotlin

              dependencies {
                  // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file
                  // and package it with your module. If the module is an Android library,
                  // other projects that depend on it automatically use the lint checks.
                  // If the module is an app, lint includes these rules when analyzing the app.
                  lintChecks(project(":lint-checks"))
              }
              

    Changements de comportement

    • Le plug-in Android 3.0.0 supprime certaines API, dont l'utilisation empêchera le fonctionnement de votre build. Par exemple, vous ne pouvez plus utiliser l'API Variants pour accéder aux objets outputFile(), ni utiliser processManifest.manifestOutputFile() pour obtenir le fichier manifeste de chaque variante. Pour en savoir plus, consultez Modifications des API.
    • Il n'est plus nécessaire de préciser une version spécifique pour les outils de compilation ; vous pouvez donc supprimer la propriété android.buildToolsVersion. Par défaut, le plug-in utilise automatiquement la version minimale requise des outils de compilation pour la version du plug-in Android que vous utilisez.
    • Vous pouvez désormais activer/désactiver le traitement PNG dans le bloc buildTypes, comme indiqué ci-dessous. Le traitement PNG est activé par défaut pour tous les builds, à l'exception des versions de débogage, car il augmente la durée de compilation des projets qui comprennent de nombreux fichiers PNG. Ainsi, pour diminuer la durée de compilation d'autres types de compilation, vous devez désactiver le traitement PNG ou convertir vos images au format WebP.

      Groovy

            android {
              buildTypes {
                release {
                  // Disables PNG crunching for the release build type.
                  crunchPngs false
                }
              }
            }
            

      Kotlin

            android {
              buildTypes {
                release {
                  // Disables PNG crunching for the release build type.
                  isCrunchPngs = false
                }
              }
            }
            
    • Le plug-in Android compile désormais automatiquement des cibles exécutables que vous configurez dans vos projets CMake externes.
    • Vous devez maintenant ajouter des processeurs d'annotations au classpath du processeur à l'aide de la configuration de dépendance annotationProcessor.
    • L'utilisation de ndkCompile, obsolète, est désormais plus limitée. À la place, vous devez utiliser CMake ou ndk-build pour compiler le code natif que vous souhaitez empaqueter dans votre APK. Pour en savoir plus, consultez Migrer depuis ndkcompile.

    3.0.0 (octobre 2017)

    Le plug-in Android Gradle 3.0.0 inclut différentes modifications visant à résoudre les problèmes de performances des projets de grande envergure.

    Par exemple, sur un exemple de squelette de projet avec environ 130 modules et un grand nombre de dépendances externes (mais sans code ni ressources), vous pouvez enregistrer une amélioration des performances comme suit :

    Version du plug-in Android + version Gradle Plug-in 2.2.0 d'Android + Gradle 2.14.1 Plug-in 2.3.0 d'Android + Gradle 3.3 Plug-in 3.0.0 d'Android + Gradle 4.1
    Configuration (par exemple avec ./gradlew --help) ~2 min ~9 s ~ 2,5 s
    Modification d'une ligne de Java (modification de l'intégration) ~2 min 15 s ~29 s ~6,4 s

    Certaines de ces modifications abîment les builds existants. Vous devez donc prendre en compte les efforts de migration de votre projet avant d'utiliser le nouveau plug-in.

    Si vous n'avez pas constaté les améliorations de performances décrites ci-dessus, veuillez signaler un bug et inclure une trace de votre build à l'aide du profileur Gradle.

    Cette version du plug-in Android nécessite les éléments suivants :

    • Gradle 4.1 ou version ultérieure. Pour en savoir plus, consultez la section sur la mise à jour de Gradle.
    • Build Tools 26.0.2 ou version ultérieure. Avec cette mise à jour, il n'est plus nécessaire de préciser une version spécifique pour les outils de compilation, car le plug-in utilise par défaut la version minimale requise. Vous pouvez donc supprimer la propriété android.buildToolsVersion.

    3.0.1 (novembre 2017)

    Cette mise à jour mineure prend en charge Android Studio 3.0.1, inclut des corrections générales de bugs et améliore les performances.

    Optimisations

    • Amélioration du parallélisme pour les projets multimodules grâce à un graphique de tâches précis.
    • Lorsque vous modifiez une dépendance, Gradle effectue des builds plus rapides en ne recompilant pas les modules qui n'ont pas accès à l'API de cette dépendance. Vous devez limiter les dépendances qui divulguent leurs API à d'autres modules en utilisant les nouvelles configurations de dépendances de Gradle : implementation, api, compileOnly et runtimeOnly.
    • Compilation incrémentielle plus rapide grâce à la conversion au format .dex par classe. Chaque classe est désormais compilée dans des fichiers DEX distincts, et seules les classes modifiées sont à nouveau converties au format .dex. La vitesse de compilation devrait être améliorée pour les applications qui définissent minSdkVersion sur 20 ou moins, et qui utilisent l'ancien multidex.
    • Amélioration de la vitesse de compilation en optimisant certaines tâches afin d'utiliser des résultats mis en cache. Pour bénéficier de cette optimisation, vous devez d'abord activer le cache de build Gradle.
    • Amélioration du traitement incrémentiel des ressources avec AAPT2, qui est désormais activé par défaut. Si vous rencontrez des problèmes lors de l'utilisation d'AAPT2, veuillez signaler un bug. Vous pouvez également désactiver AAPT2 en définissant android.enableAapt2=false dans votre fichier gradle.properties, puis en redémarrant le daemon Gradle en exécutant ./gradlew --stop à partir de la ligne de commande.

    Nouvelles fonctionnalités

    • Gestion des dépendances avec variantes. Désormais, lorsque vous compilez une variante spécifique d'un module, le plug-in met automatiquement en correspondance les variantes des dépendances du module de la bibliothèque locale avec la variante du module en cours de compilation.
    • Inclut un nouveau plug-in de module de fonctionnalité compatible avec les applis instantanées Android et leur SDK (que vous pouvez télécharger via SDK Manager). Pour en savoir plus sur la création de modules de fonctionnalités avec le nouveau plug-in, consultez Structure d'une appli instantanée avec plusieurs fonctionnalités.
    • Prise en charge intégrée de l'utilisation de certaines fonctionnalités du langage Java 8 et bibliothèques Java 8. Jack est désormais obsolète et n'est plus obligatoire. Vous devez d'abord désactiver Jack pour utiliser la prise en charge Java 8 améliorée intégrée dans la chaîne d'outils par défaut. Pour en savoir plus, consultez Utiliser les fonctionnalités du langage Java 8.
    • Possibilité d'exécuter des tests avec Android Test Orchestrator, ce qui vous permet d'exécuter chacun des tests de votre application dans son propre appel d'instrumentation. Étant donné que chaque test s'exécute dans sa propre instance d'instrumentation, les états partagés entre les tests ne s'accumulent pas sur le processeur ou la mémoire de votre appareil. De plus, même si un test plante, il ne supprime que sa propre instance de l'instrumentation. Vos autres tests continuent donc de s'exécuter.

      • Ajout de testOptions.execution pour déterminer si vous devez utiliser l'orchestration de tests sur l'appareil. Si vous souhaitez utiliser Android Test Orchestrator, vous devez spécifier ANDROID_TEST_ORCHESTRATOR, comme indiqué ci-dessous. Par défaut, cette propriété est définie sur HOST, ce qui désactive l'orchestration sur l'appareil et constitue la méthode standard d'exécution de tests.

      Groovy

              android {
                testOptions {
                  execution 'ANDROID_TEST_ORCHESTRATOR'
                }
              }
              

      Kotlin

              android {
                testOptions {
                  execution = "ANDROID_TEST_ORCHESTRATOR"
                }
              }
              
    • La nouvelle configuration de dépendance androidTestUtil vous permet d'installer un autre APK d'assistance de test, tel qu'Android Test Orchestrator, avant d'exécuter vos tests d'instrumentation :

      Groovy

              dependencies {
                androidTestUtil 'com.android.support.test:orchestrator:1.0.0'
                ...
              }
              

      Kotlin

              dependencies {
                androidTestUtil("com.android.support.test:orchestrator:1.0.0")
                ...
              }
              
    • Ajout de testOptions.unitTests.includeAndroidResources pour prendre en charge les tests unitaires nécessitant des ressources Android, comme RoboElectric. Lorsque vous définissez cette propriété sur true, le plug-in effectue la fusion des ressources, des éléments et des fichiers manifestes avant d'exécuter vos tests unitaires. Vos tests peuvent alors examiner com/android/tools/test_config.properties sur le classpath pour trouver les clés suivantes :

      • android_merged_assets : Chemin d'accès absolu au répertoire des éléments fusionnés.

        Remarque : Pour les modules de bibliothèque, les éléments fusionnés ne contiennent pas les éléments des dépendances (voir le problème 65550419).

      • android_merged_manifest : Chemin d'accès absolu au manifeste fusionné.

      • android_merged_resources : Chemin d'accès absolu au répertoire de ressources fusionné, qui contient toutes les ressources du module et de toutes ses dépendances.

      • android_custom_package : nom de package de la classe R finale. Si vous modifiez l'ID application de manière dynamique, il se peut que ce nom de package ne corresponde pas à l'attribut package dans le fichier manifeste de l'application.

    • Prise en charge des polices comme ressources (nouvelle fonctionnalité introduite dans Android 8.0 (niveau d'API 26)).
    • Prise en charge des APK spécifiques à la langue avec le SDK Applis instantanées Android 1.1 et versions ultérieures.
    • Vous pouvez maintenant modifier le répertoire de sortie pour votre projet de compilation natif externe, comme indiqué ci-dessous :

      Groovy

              android {
                  ...
                  externalNativeBuild {
                      // For ndk-build, instead use the ndkBuild block.
                      cmake {
                          ...
                          // Specifies a relative path for outputs from external native
                          // builds. You can specify any path that's not a subdirectory
                          // of your project's temporary build/ directory.
                          buildStagingDirectory "./outputs/cmake"
                      }
                  }
              }
              

      Kotlin

              android {
                  ...
                  externalNativeBuild {
                      // For ndk-build, instead use the ndkBuild block.
                      cmake {
                          ...
                          // Specifies a relative path for outputs from external native
                          // builds. You can specify any path that's not a subdirectory
                          // of your project's temporary build/ directory.
                          buildStagingDirectory = "./outputs/cmake"
                      }
                  }
              }
              
    • Vous pouvez désormais utiliser CMake 3.7 ou version ultérieure lorsque vous compilez des projets natifs à partir d'Android Studio.
    • La nouvelle configuration des dépendances lintChecks vous permet de créer un fichier JAR qui définit des règles lint personnalisées, et de l'empaqueter dans vos projets AAR et APK.

      Vos règles lint personnalisées doivent appartenir à un projet distinct qui génère un seul fichier JAR et n'inclut que les dépendances compileOnly. D'autres modules d'application et de bibliothèque peuvent ensuite dépendre de votre projet lint à l'aide de la configuration lintChecks :

      Groovy

              dependencies {
                  // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file
                  // and package it with your module. If the module is an Android library,
                  // other projects that depend on it automatically use the lint checks.
                  // If the module is an app, lint includes these rules when analyzing the app.
                  lintChecks project(':lint-checks')
              }
              

      Kotlin

              dependencies {
                  // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file
                  // and package it with your module. If the module is an Android library,
                  // other projects that depend on it automatically use the lint checks.
                  // If the module is an app, lint includes these rules when analyzing the app.
                  lintChecks(project(":lint-checks"))
              }
              

    Changements de comportement

    • Le plug-in Android 3.0.0 supprime certaines API, dont l'utilisation empêchera le fonctionnement de votre build. Par exemple, vous ne pouvez plus utiliser l'API Variants pour accéder aux objets outputFile(), ni utiliser processManifest.manifestOutputFile() pour obtenir le fichier manifeste de chaque variante. Pour en savoir plus, consultez Modifications des API.
    • Il n'est plus nécessaire de préciser une version spécifique pour les outils de compilation ; vous pouvez donc supprimer la propriété android.buildToolsVersion. Par défaut, le plug-in utilise automatiquement la version minimale requise des outils de compilation pour la version du plug-in Android que vous utilisez.
    • Vous pouvez désormais activer/désactiver le traitement PNG dans le bloc buildTypes, comme indiqué ci-dessous. Le traitement PNG est activé par défaut pour tous les builds, à l'exception des versions de débogage, car il augmente la durée de compilation des projets qui comprennent de nombreux fichiers PNG. Ainsi, pour diminuer la durée de compilation d'autres types de compilation, vous devez désactiver le traitement PNG ou convertir vos images au format WebP.

      Groovy

            android {
              buildTypes {
                release {
                  // Disables PNG crunching for the release build type.
                  crunchPngs false
                }
              }
            }
            

      Kotlin

            android {
              buildTypes {
                release {
                  // Disables PNG crunching for the release build type.
                  isCrunchPngs = false
                }
              }
            }
            
    • Le plug-in Android compile désormais automatiquement des cibles exécutables que vous configurez dans vos projets CMake externes.
    • Vous devez maintenant ajouter des processeurs d'annotations au classpath du processeur à l'aide de la configuration de dépendance annotationProcessor.
    • L'utilisation de ndkCompile, obsolète, est désormais plus limitée. À la place, vous devez utiliser CMake ou ndk-build pour compiler le code natif que vous souhaitez empaqueter dans votre APK. Pour en savoir plus, consultez Migrer depuis ndkcompile.

    2.3.0 (février 2017)

    2.3.3 (juin 2017)

    Cette mise à jour mineure ajoute la compatibilité avec Android Studio 2.3.3.

    2.3.2 (mai 2017)

    Cette mise à jour mineure ajoute la compatibilité avec Android Studio 2.3.2.

    2.3.1 (avril 2017)

    Il s'agit d'une mise à jour mineure d'Android Studio 2.3.0 qui résout un problème qui empêchait certains appareils Android physiques de fonctionner correctement avec l'exécution instantanée (voir le problème 235879).

    Dépendances :
    Nouveau :
    • Utilise Gradle 3.3, avec des améliorations de performances et de nouvelles fonctionnalités. Pour plus d'informations, consultez les notes de version de Gradle.
    • Cache de compilation : stocke certains résultats générés par le plug-in Android au moment de compiler votre projet (comme les fichiers AAR non empaquetés et les dépendances distantes avant leur conversion au format DEX). Vos builds propres sont beaucoup plus rapides lorsque vous utilisez le cache, car le système de compilation peut simplement réutiliser ces fichiers mis en cache lors des compilations suivantes au lieu de les recréer. Les projets utilisant le plug-in Android 2.3.0 ou version ultérieure utilisent par défaut le cache de compilation. Pour en savoir plus, consultez Améliorer la vitesse de compilation avec le cache de compilation.
    Modifications :

    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
        

    2.1.0 (avril 2016)

    Version 2.1.3 (août 2016)

    Cette mise à jour nécessite la version 2.14.1 et supérieures de Gradle. Gradle 2.14.1 propose de meilleures performances, de nouvelles fonctionnalités et un correctif de sécurité important. Pour plus d'informations, consultez les notes de version de Gradle.

    Dépendances :
    Nouveau :
    • Ajout de la prise en charge de la preview développeur N, de JDK 8 et des fonctionnalités du langage Java 8 à l'aide de la chaîne d'outils Jack. Pour en savoir plus, consultez le guide de la preview N.

      Remarque : Instant Run ne fonctionne actuellement pas avec Jack et sera désactivé lors de l'utilisation de la nouvelle chaîne d'outils. Vous ne devez utiliser Jack que si vous développez pour la preview N et que vous souhaitez utiliser les fonctionnalités de langage Java 8 compatibles.

    • Ajout de la compatibilité par défaut avec la compilation Java incrémentielle afin de réduire le temps de compilation pendant le développement. Pour cela, seules les parties de la source qui ont été modifiées ou doivent être recompilées sont recompilées. Pour désactiver cette fonctionnalité, ajoutez le code suivant à votre fichier build.gradle au niveau du module :

      Groovy

      android {
        ...
        compileOptions {
          incremental false
        }
      }
      

      Kotlin

      android {
        ...
        compileOptions {
          incremental = false
        }
      }
      
    • Ajout de compatibilité pour le processus de dexing, qui effectue le dexing dans le processus de compilation plutôt que dans des processus de VM externe distinct. Cela accélère non seulement les builds incrémentiels, mais également les builds complets. Cette fonctionnalité est activée par défaut pour les projets dont la taille maximale de tas de mémoire du daemon de Gradle est d'au moins 2 048 Mo. Pour ce faire, incluez les éléments suivants dans le fichier gradle.properties de votre projet :

      ```none org.gradle.jvmargs = -Xmx2048m```

      Si vous avez défini une valeur pour javaMaxHeapSize dans votre fichier build.gradle au niveau du module, vous devez définir org.gradle.jvmargs sur javaMaxHeapSize + 1 024 Mo. Par exemple, si vous avez défini javaMaxHeapSize sur "2 048 m", vous devez ajouter l'élément suivant au fichier gradle.properties de votre projet :

      ```none org.gradle.jvmargs = -Xmx3072m```

      Pour désactiver le processus de dexing, ajoutez le code suivant à votre fichier build.gradle au niveau du module :

      Groovy

      android {
        ...
        dexOptions {
            dexInProcess false
        }
      }
      

      Kotlin

      android {
        ...
        dexOptions {
            dexInProcess = false
        }
      }
      

    Version 2.0.0 (avril 2016)

    Dépendances :
    Nouveau :
    • Active Instant Run en acceptant l'injection de bytecode et en transmettant les mises à jour de code et de ressources à une application en cours d'exécution sur l'émulateur ou sur un appareil physique.
    • Ajout de la prise en charge des compilations incrémentielles, même lorsque l'application n'est pas en cours d'exécution. Les durées de compilation complètes sont améliorées en transmettant les modifications incrémentielles via Android Debug Bridge sur l'appareil connecté.
    • Ajout de maxProcessCount pour contrôler le nombre de processus dex de nœuds de calcul pouvant être générés simultanément. Le code suivant, dans le fichier build.gradle au niveau du module, définit sur "4" le nombre maximal de processus simultanés :

      Groovy

      android {
        ...
        dexOptions {
          maxProcessCount = 4 // this is the default value
        }
      }
      

      Kotlin

      android {
        ...
        dexOptions {
          maxProcessCount = 4 // this is the default value
        }
      }
      
        </li>
      
        <li>Added an experimental code shrinker to support pre-dexing and reduce re-dexing
        of dependencies, which are not supported with Proguard. This improves the build
        speed of your debug build variant. Because the experimental shrinker does not
        support optimization and obfuscation, you should enable Proguard for your
        release builds. To enable the experimental shrinker for your debug builds, add
        the following to your module-level <code>build.gradle</code> file:
      

      Groovy

      android {
        ...
        buildTypes {
          debug {
            minifyEnabled true
            useProguard false
          }
          release {
            minifyEnabled true
            useProguard true // this is a default setting
          }
        }
      }
      

      Kotlin

      android {
        ...
        buildTypes {
          getByName("debug") {
            minifyEnabled = true
            useProguard = false
          }
          getByName("release") {
            minifyEnabled = true
            useProguard = true // this is a default setting
          }
        }
      }
      
        </li>
      
        <li>Added logging support and improved performance for the resource shrinker.
        The resource shrinker now logs all of its operations into a <code>resources.txt</code>
        file located in the same folder as the Proguard log files.
        </li>
      </ul>
      

    Modifications de comportement :
    • Si minSdkVersion est défini sur 18 ou plus, la signature des APK utilise SHA256.
    •   <li>DSA and ECDSA keys can now sign APK packages.
      
          <p class="note">
            <strong>Note:</strong> The <a href=
            "/training/articles/keystore.html">Android keystore</a> provider no
            longer supports <a href=
            "/about/versions/marshmallow/android-6.0-changes.html#behavior-keystore">
            DSA keys on Android 6.0</a> (API level 23) and higher.
          </p>
      
        </li>
      </ul>
      

    Problèmes résolus :
    • Correction d'un problème qui entraînait des dépendances AAR en double dans les configurations de test et de la compilation principale.

    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.

    Plug-in Android pour Gradle, révision 1.3.1 (août 2015)

    Dépendances:
    • Gradle 2.2.1 ou version ultérieure.
    • Build Tools version 21.1.1 ou supérieure.
    Remarques générales:
    • Correction de la tâche ZipAlign pour utiliser correctement la sortie de la tâche précédente en cas d'utilisation d'un nom de fichier personnalisé.
    • Correction du package Renderscript avec NDK.
    • Maintien de la prise en charge de la tâche de compilation createDebugCoverageReport
    • Correction de la prise en charge concernant l'utilisation personnalisée de la propriété archiveBaseName dans le fichier de compilation build.gradle.
    • Correction de l'avertissement lint Invalid ResourceType causé par la recherche d'annotations de méthode de paramètre lors de l'exécution de lint en dehors d'Android Studio.

    Plug-in Android pour Gradle, révision 1.3.0 (juillet 2015)

    Dépendances:
    • Gradle 2.2.1 ou version ultérieure.
    • Build Tools version 21.1.1 ou supérieure.
    Remarques générales:
    • Ajout de la prise en charge de la propriété com.android.build.threadPoolSize pour contrôler la taille du pool de threads de la tâche Android à partir du fichier gradle.properties ou de la ligne de commande. Dans l'exemple suivant, cette propriété est définie sur 4.

              
              -Pcom.android.build.threadPoolSize=4
              
            
    • Définissez le comportement de build par défaut pour exclure les fichiers LICENSE et LICENSE.txt des APK. Pour inclure ces fichiers dans un APK, supprimez-les de la propriété packagingOptions.excludes dans le fichier build.gradle. Par exemple :
      android {
            packagingOptions.excludes = []
          }
            
      android {
            packagingOptions.excludes.clear()
          }
          
    • Ajout de la tâche sourceSets pour inspecter l'ensemble de toutes les sources disponibles.
    • Prise en charge améliorée des tests unitaires permettant de reconnaître les dossiers sources à plusieurs types et à variante de compilation. Par exemple, pour tester une application avec les dossiers flavor1 et flavorA à plusieurs types avec le type de compilation Debug, les ensembles de sources de test sont les suivants :
      • test
      • testFlavor1
      • testFlavorA
      • testFlavor1FlavorA
      • testFlavor1FlavorADebug

      Android teste les dossiers sources à plusieurs types déjà reconnus.

    • Prise en charge améliorée des tests unitaires pour :
      • Exécuter javac sur les sources principales et de test, même si la propriété useJack est définie sur true dans votre fichier de build.
      • Identifier correctement les dépendances pour chaque type de build.
    • Rendre la spécification des arguments d'exécution de tests d'instrumentation compatible à partir de la ligne de commande. Exemple :
      ./gradlew connectedCheck \
         -Pandroid.testInstrumentationRunnerArguments.size=medium \
         -Pandroid.testInstrumentationRunnerArguments.class=TestA,TestB
              
    • Ajout de compatibilité avec les paramètres aléatoires supplémentaires Android Asset Packaging Tool (AAPT) dans le fichier build.gradle. Par exemple :

      android {
          aaptOptions {
            additionalParameters "--custom_option", "value"
          }
      }
            
      android {
          aaptOptions {
            additionalParameters += listOf("--custom_option", "value")
          }
      }
            
    • Ajout de la prise en charge d'un module APK de test en tant que module de test distinct, à l'aide des propriétés targetProjectPath et targetVariant, pour définir le chemin d'accès de l'APK et la variante cible.

      Remarque : Un module APK test n'est pas compatible avec les types de produit et ne peut cibler qu'une seule variante. De plus, JaCoCo n'est pas encore pris en charge.

    • Ajout de la validation du nom de la ressource avant la fusion des ressources.
    • Lorsque vous compilez un package AAR (Android ARchive) pour des modules de bibliothèque, ne fournissez pas d'espace réservé @{applicationId} automatique dans les paramètres de l'outil de fusion des fichiers manifestes. Utilisez plutôt un espace réservé différent, comme @{libApplicationId}, et indiquez une valeur si vous souhaitez inclure des ID application dans la bibliothèque d'archives.

    Plug-in Android pour Gradle, révision 1.2.0 (avril 2015)

    Dépendances :
    • Gradle 2.2.1 ou version ultérieure.
    • Build Tools version 21.1.1 ou supérieure.
    Remarques générales :
    • Compatibilité améliorée pour l'exécution de tests unitaires avec Gradle.
      • Ajout de la possibilité d'inclure des ressources de style Java dans le classpath lors de l'exécution de tests unitaires directement à partir de Gradle.
      • Ajout de la prise en charge des dépendances de tests unitaires pour les artefacts Android Archive (AAR).
      • Ajout de la prise en charge de la propriété unitTestVariants afin que les variantes de tests unitaires puissent être manipulées à l'aide du fichier build.gradle.
      • Ajout du bloc de code unitTest.all sous testOptions pour configurer des tâches personnalisées pour les tests unitaires. L'exemple de code suivant montre comment ajouter des paramètres de configuration de tests unitaires à l'aide de cette nouvelle option :
        android {
          testOptions {
            unitTest.all {
              jvmArgs '-XX:MaxPermSize=256m' // Or any other gradle option.
            }
          }
        }
        
        android {
          testOptions {
            unitTest.all {
              jvmArgs += listOf("-XX:MaxPermSize=256m") // Or any other gradle option.
            }
          }
        }
                    
      • Correction du traitement des énumérations et des champs d'instance publique dans le packaging du fichier mockable-android.jar.
      • Correction des dépendances de tâches du projet Bibliothèque permettant de recompiler les classes de test après les modifications.
    • Ajout de la propriété testProguardFile pour appliquer les fichiers ProGuard au moment de minimiser un APK de test.
    • Ajout de la propriété timeOut au bloc de code adbOptions pour définir la durée maximale d'enregistrement de l'écran Android Debug Bridge.
    • Ajout de la prise en charge des ressources de 280 PPP.
    • Amélioration des performances lors de l'évaluation du projet.

    Plug-in Android pour Gradle, révision 1.1.3 (mars 2015)

    Dépendances :
    • Gradle 2.2.1 ou version ultérieure.
    • Build Tools version 21.1.1 ou supérieure.
    Remarques générales :
    • Résolution du problème lié aux doublons de dépendances d'une application de test qui avaient déclenché un échec ProGuard.
    • Correction de l'implémentation du comparateur qui n'était pas conforme au contrat de comparaison JDK et générait une erreur JDK 7.

    Plug-in Android pour Gradle, révision 1.1.2 (février 2015)

    Dépendances :
    • Gradle 2.2.1 ou version ultérieure.
    • Build Tools version 21.1.1 ou supérieure.
    Remarques générales :
    • Chemin d'accès normalisé au moment de créer un fichier JAR fictif pour les tests unitaires.
    • Correction du paramètre archivesBaseName dans le fichier build.gradle.
    • Correction de l'échec de l'espace réservé non résolu dans l'outil de fusion des fichiers manifestes au moment de compiler une application de test de bibliothèque.

    Plug-in Android pour Gradle, révision 1.1.1 (février 2015)

    Dépendances :
    • Gradle 2.2.1 ou version ultérieure.
    • Build Tools version 21.1.1 ou supérieure.
    Remarques générales :
    • Modification des variantes de build afin que seules les variantes qui incluent une application Wear déclenchent des tâches de build spécifiques à Wear.
    • Modification des problèmes liés aux dépendances pour qu'ils échouent durant la compilation plutôt qu'au moment du débogage. Ce comportement vous permet d'exécuter des tâches de diagnostic (telles que des "dépendances") pour vous aider à résoudre le conflit.
    • Correction de la méthode android.getBootClasspath() pour renvoyer une valeur.

    Plug-in Android pour Gradle, révision 1.1.0 (février 2015)

    Dépendances :
    • Gradle 2.2.1 ou version ultérieure.
    • Build Tools version 21.1.1 ou supérieure.
    Remarques générales :
    • Ajout de la prise en charge de nouveaux tests unitaires
      • Possibilité d'exécuter des tests unitaires sur la JVM locale sur une version spéciale du fichier android.jar compatible avec les frameworks de simulation courants, comme Mockito.
      • Ajout de nouvelles tâches de test testDebug, testRelease et testMyFlavorDebug lors de l'utilisation de types de produit.
      • Ajout de nouveaux dossiers sources reconnus en tant que tests unitaires : src/test/java/, src/testDebug/java/, src/testMyFlavor/java/.
      • Ajout de nouvelles configurations au fichier build.gradle pour déclarer des dépendances réservées aux tests, par exemple testCompile 'junit:junit:4.11' ou testMyFlavorCompile 'some:library:1.0'.

        Remarque : Les dépendances réservées aux tests ne sont actuellement pas compatibles avec Jack (Java Android Compiler Kit).

      • Ajout de l'option android.testOptions.unitTests.returnDefaultValues pour contrôler le comportement du fichier android.jar fictif.
    • Remplacement de Test par AndroidTest dans les noms des tâches de test. Par exemple, la tâche assembleDebugTest s'appelle désormais assembleDebugAndroidTest. Le nom des tâches de test unitaire contient toujours UnitTest, par exemple assembleDebugUnitTest.
    • Les fichiers de configuration ProGuard ont été modifiés pour ne plus s'appliquer à l'APK test. Si la minimisation est activée, ProGuard traite l'APK test et n'applique que le fichier de mappage qui est généré lors de la minimisation de l'APK principal.
    • Gestion des dépendances mise à jour
      • Correction des problèmes à l'aide des champs d'application provided et package.

        Remarque : Ces niveaux d'accès sont incompatibles avec les packages AAR (Android ARchive) et entraîneront l'échec d'un build avec les packages AAR.

      • Modification de la résolution des dépendances pour comparer les dépendances d'une application testée et de l'application de test. Si un artefact de la même version est détecté pour les deux applications, il n'est pas inclus dans l'application de test et n'est empaqueté qu'avec l'application testée. Si un artefact de version différente est détecté pour les deux applications, la compilation échoue.
    • Ajout de la prise en charge du qualificatif de ressource anyDpi dans le fusionneur de ressources.
    • Amélioration des vitesses d'évaluation et de synchronisation des IDE pour les projets comportant un grand nombre de modules Android.

    Plug-in Android pour Gradle, révision 1.0.1 (janvier 2015)

    Dépendances :
    • Gradle versions 2.2.1 à 2.3.x.

      Remarque : Cette version du plug-in Android pour Gradle n'est pas compatible avec Gradle version 2.4 et supérieures.

    • Build Tools version 21.1.1 ou supérieure.
    Remarques générales :
    • Résolution du problème lié à l'échec du build Gradle au moment d'accéder au module extractReleaseAnnotations. (Problème 81638)
    • Résolution du problème à cause duquel Disable transmettait le paramètre --no-optimize au bytecode Dalvik Executable (DEX). (Problème 82662)
    • Correction des problèmes de fusion de fichiers manifestes au moment d'importer des bibliothèques avec une targetSdkVersion inférieure à 16.
    • Correction du problème de tri des densités en cas d'utilisation d'Android Studio avec JDK 8.

    Plug-in Android pour Gradle, révision 1.0.0 (décembre 2014)

    Dépendances :
    • Gradle versions 2.2.1 à 2.3.x.

      Remarque : Cette version du plug-in Android pour Gradle n'est pas compatible avec Gradle version 2.4 et ultérieures.

    • Build Tools version 21.1.1 ou supérieure.
    Remarques générales :
    • Version du plug-in initial.