Android Studio 3.4 est une version majeure avec diverses nouvelles fonctionnalités et améliorations.
IntelliJ IDEA 2018.3.4
- Android Studio core mis à jour avec les améliorations d'IntelliJ IDEA à partir de la version 2018.3.4
Plugin Android Gradle 3.4.0
Boîte de dialogue Nouvelle structure de projet
- la nouvelle boîte de dialogue Structure de projet (PSD) facilite la mise à jour des dépendances et la configuration de divers aspects de votre projet, tels que les modules, les options de génération, les configurations de signature et les variables de génération
- Vous pouvez ouvrir le PSD en sélectionnant "Fichier> Structure du projet" dans le menu. Vous pouvez également ouvrir le PSD via Ctrl + Maj + Alt + S sous Windows et Linux, ou Command +; (point-virgule) sur macOS. Ce qui suit est une description des innovations et des mises à jour PSD.
Variables
Modules
- configurez les propriétés qui s'appliquent à toutes les options de construction existantes dans les modules ou ajoutez de nouveaux modules à votre projet à l'aide de la section Modules. Par exemple, ici, vous pouvez configurer la propriété defaultConfig ou gérer les configurations de signature
Dépendances
inspecter et afficher chaque graphique de dépendance du graphique de dépendance de votre projet créé par Gradle lors de la synchronisation du projet en procédant comme suit:
- dans le volet gauche du PSD, sélectionnez "Dépendances"
- dans le panneau "Modules", sélectionnez le module dont vous souhaitez voir les dépendances
- sur le côté droit du PSD, ouvrez le panneau "Dépendances résolues" comme indiqué ci-dessous

vous pouvez également rechercher et ajouter rapidement des dépendances à votre projet en sélectionnant le module et en cliquant sur le bouton "+" dans la section "Dépendances déclarées", puis en sélectionnant le type de dépendance que vous souhaitez ajouter
selon le type de dépendance que vous choisissez, vous devriez voir une boîte de dialogue similaire à celle illustrée ci-dessous qui vous aide à ajouter la dépendance au module

Options d'assemblage
- dans cette section du PSD, des options de construction et des variantes («versions de produit») sont créées et configurées pour chaque module de votre projet. Vous pouvez ajouter des modèles de manifeste («espaces réservés»), des fichiers ProGuard et attribuer des clés de signature, etc.

Astuces
- Vous pouvez voir les mises à jour des dépendances proposées pour votre projet et les options de génération dans la section "Suggestions", comme indiqué ci-dessous

Nouveau «gestionnaire de ressources»
'Resource Manager' est un nouvel outil pour importer, créer, gérer et utiliser les ressources de votre application. Vous pouvez ouvrir cet outil via le menu "Affichage> Fenêtres d'outils> Gestionnaire de ressources". Le gestionnaire de ressources vous permet d'effectuer les opérations suivantes:

- Visualisez les ressources: vous pouvez prévisualiser les dessins, les couleurs et les mises en page pour trouver rapidement la bonne ressource
- Importation en masse : vous pouvez importer plusieurs ressources dessinables à la fois en les faisant simplement glisser dans le «gestionnaire de ressources» ou via l'assistant «Importer des dessinables». Pour accéder à l'assistant, cliquez sur le bouton "+" dans le coin supérieur gauche de la fenêtre, puis sélectionnez "Importer les tirages" dans la liste déroulante
- Convertir des fichiers SVG en VectorDrawables: vous pouvez utiliser l'assistant d'importation de Drawables pour convertir vos images SVG en VerctorDrawables
- Glisser-déposer des ressources: à partir de la fenêtre du `` gestionnaire de ressources '', vous pouvez faire glisser et déposer des dessins dans vos widgets de conception et XML de l'éditeur de présentation (`` Editeur de présentation '')
- Versions alternatives des widgets: vous pouvez maintenant avoir des versions alternatives de vos ressources en double-cliquant sur la ressource dans la fenêtre "Outil". Vous verrez les différentes versions que vous avez créées et les qualificatifs qu'elles contiennent.
- Affichage en mosaïque ou en liste: vous pouvez modifier l'affichage dans la fenêtre de visualisation de vos ressources en utilisant leur disposition différente
consultez le manuel Gérer les ressources de l'application pour plus d'informations.
Vérification des ID de build lors du profilage et du débogage des fichiers APK
- lorsque vous fournissez les "fichiers de symboles de débogage" des bibliothèques .so partagées à l'intérieur de votre APK, Android Studio vérifie que l'ID de construction des "fichiers de symboles de débogage" correspond à l'ID de construction des bibliothèques .so à l'intérieur de l'APK
- si vous collectez des 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" et l'ID de build de vos bibliothèques natives correspondent et réinitialise les "fichiers de symboles" s'il n'y a pas de correspondance. Si vous ne générez pas avec l'ID de génération, la fourniture de «fichiers de symboles» incorrects peut entraîner des problèmes lors du débogage.
R8 est activé par défaut
R8 combine le désucrage, la compression, l'obscurcissement, l'optimisation et le dexing en une seule étape, ce qui améliore considérablement les performances. R8 a été introduit dans le plugin Android Gradle 3.3.0 et est maintenant activé par défaut pour les applications et les projets de bibliothèque Android utilisant la version 3.4.0 ou supérieure du plugin
L'image ci-dessous décrit le processus de compilation avant R8

maintenant, avec R8, le désucrage, la compression, l'obscurcissement, l'optimisation et le dexing (D8) sont effectués en une seule étape, comme indiqué ci-dessous

R8 est conçu pour fonctionner avec vos règles ProGuard existantes, vous n'avez donc pas besoin de prendre de mesure pour profiter de R8. Pendant ce temps, comme cette technologie est différente de ProGuard, qui est conçue spécifiquement pour les projets Android, la compression et l'optimisation peuvent consister à supprimer du code que ProGuard ne supprime pas. Par conséquent, dans cette situation peu probable, vous devrez peut-être ajouter des règles supplémentaires pour enregistrer ce code dans l'assemblage final
Si vous rencontrez des problèmes avec R8, lisez la FAQ sur la compatibilité R8 pour vérifier s'il existe une solution prête à l'emploi. Si la solution n'a pas encore été documentée, veuillez signaler un bug . Vous pouvez désactiver R8 en ajoutant l'une des instructions suivantes au fichier gradle.properties de votre projet:
<i> # désactiver R8 pour les modules de la bibliothèque Android uniquement </i>
android.enableR8.libraries = false </p>
<p> <i> # désactiver R8 pour tous les modules </i>
android.enableR8 = false
REMARQUE: pour le type d'assemblage spécifié, si vous définissez false pour useProguard dans le fichier build.gradle de votre module d'application, le plug-in Android Gradle utilisera R8 pour compresser le code d'application pour ce type d'assemblage, que R8 soit désactivé ou non dans le fichier gradle.properties de votre projet.
L'éditeur de navigation prend désormais en charge tous les types d'arguments
- Tous les types pris en charge par le composant Navigation sont désormais pris en charge dans l'éditeur de navigation. Pour plus d'informations sur les types pris en charge, voir Transférer des données entre destinations
Améliorations de l'éditeur de mise en page
De nouveaux conseils d'action pour importer rapidement des dépendances
- si vous commencez à utiliser des classes Jetpack et Firebase spécifiques dans votre code, de nouveaux conseils d'action suggèrent d'ajouter les dépendances de bibliothèque Gradle nécessaires à votre projet, si elles n'ont pas encore été ajoutées. Par exemple, si vous faites référence à la classe WorkManager pour la première fois, vous avez besoin de la dépendance android.arch.work:work-runtime, et l'indicateur d'action vous permettra de l'ajouter en un clic, comme illustré ci-dessous

- en particulier, Jetpack est présenté dans des packages séparés (ce qui facilite leur gestion et leur mise à jour), le raccourci d'action vous aide à n'ajouter rapidement que les dépendances nécessaires aux composants Jetpack que vous utilisez
3.4.0 problèmes connus
- le profilage est désactivé lorsque vous déployez votre application sur des appareils exécutant Android Q Beta
- lorsqu'une bibliothèque de liaison de données est utilisée, LiveDataListener.onChanged () peut tomber avec une NullPointerException. Un correctif pour ce problème sera inclus dans Android Studio 3.4.1 et il est déjà disponible dans la dernière version de prévisualisation d' Android Studio 3.5 (voir le bug 122066788 )