Android Studio 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.