La première préversion d'Android Studio 4.0 est disponible, elle apporte la prise en charge de Jetpack Compose,
et améliore le support de Java 8

Prise en charge de Jetpack Compose

La boîte à outils Jetpack Compose fournit une approche moderne de la création de l'interface utilisateur de votre application. La boîte à outils présente également tous les avantages de Kotlin, tels que l’écriture de code concis et idiomatique totalement interopérable avec Java.

Pour une meilleure expérience de développement avec Jetpack Compose, vous devez utiliser la dernière version d'Android Studio 4.0. En effet, lorsque vous utilisez Android Studio pour développer votre application avec Jetpack Compose, vous pouvez bénéficier des fonctionnalités d’éditeur intelligent, telles que les modèles de nouveau projet et la possibilité de prévisualiser immédiatement votre interface utilisateur Compose.


Bibliothèque Java 8 desugaring en D8 et R8

Android Studio prend désormais en charge l'utilisation de plusieurs API de langage Java 8 sans qu'un niveau d'API minimum soit requis pour votre application.

Par le biais d'un processus appelé desugaring, le compilateur DEX D8 dans Android Studio 3.0 et dans les versions ultérieures assurait déjà une prise en charge substantielle des fonctionnalités du langage Java 8 (telles que les expressions lambda, les méthodes d'interface par défaut, les ressources, etc.). Dans Android Studio 4.0, le moteur de desugaring a été étendu pour permettre de désinstaller les API du langage Java. Cela signifie que vous pouvez désormais inclure des API de langage standard, disponibles uniquement dans les dernières versions d'Android (telles que java.util.streams), dans des applications prenant en charge les anciennes versions d'Android.

L'ensemble d'API suivant est pris en charge dans cette version:
  • Flux séquentiels (java.util.stream)
  • Un sous-ensemble de java.time
  • java.util.function
  • Ajouts récents à java.util. {Carte, Collection, Comparateur}
  • Options (java.util.Optional, java.util.OptionalInt et java.util.OptionalDouble) et quelques autres nouvelles classes utiles avec les API ci-dessus.
  • Quelques ajouts à java.util.concurrent.atomic (nouvelles méthodes sur AtomicInteger, AtomicLong et AtomicReference)
  • ConcurrentHashMap (avec corrections de bugs pour Android 5.0)

Pour prendre en charge ces API de langage, D8 compile un fichier DEX de bibliothèque séparé contenant une implémentation des API manquantes et l'inclut dans votre application. Le processus de desugaring réécrit le code de votre application pour utiliser cette bibliothèque au moment de l’exécution.

Pour activer la prise en charge de ces API de langage, incluez les éléments suivants dans le fichier build.gradle de votre module:

Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
android {
  defaultConfig {
    // Required when setting minSdkVersion to 20 or lower
    multiDexEnabled true
  }
 
  compileOptions {
    // Flag to enable support for the new language APIs
    coreLibraryDesugaringEnabled true
    // Sets Java compatibility to Java 8
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}

Prise en charge des fichiers de script Kotlin DSL

Le plugin Android Gradle prend désormais en charge les fichiers de script de génération Kotlin DSL (* .kts). Lorsqu'elles sont utilisées avec Android Studio, certaines fonctionnalités de l'EDI, telles que la boîte de dialogue Structure de projet et les correctifs de script de génération, prennent désormais également en charge la lecture et l'écriture dans les fichiers de script de génération Kotlin.

Fonctionnalités Smart Editor pour les règles ProGuard

Android Studio fournit désormais des fonctionnalités d'édition intelligentes lorsque vous ouvrez des fichiers de règles ProGuard, telles que la coloration syntaxique, la complétion du code et la vérification des erreurs. L'éditeur s'intègre également à votre projet Android Studio pour fournir une complétion complète des symboles pour toutes les classes, méthodes et champs, et inclut une navigation rapide et un refactoring.

Nom : guard.png
Affichages : 20789
Taille : 168,9 Ko

Nouvel éditeur de mouvement

Android Studio inclut désormais un éditeur de conception visuelle pour le type de disposition MotionLayout, ce qui facilite la création et la prévisualisation d'animations.

Motion Editor fournit une interface simple pour manipuler des éléments de la bibliothèque MotionLayout qui sert de base à l'animation dans les applications Android. Dans les versions précédentes, la création et la modification de ces éléments nécessitaient l'édition manuelle des contraintes dans les fichiers de ressources XML. Motion Editor peut désormais générer ce code XML pour vous, avec prise en charge des états de début et de fin, des images clés, des transitions et des chronologies.

Nom : motion_animation_preview.gif
Affichages : 1936
Taille : 659,7 Ko

Dépendances entre fonctionnalités

Dans les versions précédentes du plugin Android Gradle, tous les modules Dynamic Feature ne pouvaient dépendre que du module de base de l'application. Lorsque vous utilisez le plugin Android Gradle 4.0.0, vous pouvez désormais inclure un module de fonctionnalités qui dépend d'un autre module. Ainsi, une fonctionnalité :video peut dépendre de la fonctionnalité :camera, qui dépend du module de base, comme indiqué dans la figure ci-dessous.

Nom : dep.png
Affichages : 1897
Taille : 23,1 Ko

Cela signifie que lorsque votre application demande à télécharger un module de fonctionnalité dynamique, elle télécharge également les autres modules de fonctionnalité dont elle dépend. Après avoir créé des modules de fonctionnalités dynamiques pour votre application, vous pouvez déclarer une dépendance de fonctionnalité sur fonctionnalité dans le fichier build.gradle du module. Par exemple, le module :video déclare une dépendance sur :camera comme suit:

Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
// In the build.gradle file of the ':video' module.
dependencies {
    // All dynamic feature modules must declare a dependency
    // on the base module.
    implementation project(':app')
    // Declares that this module also depends on the 'camera'
    // dynamic feature module.
    implementation project(':camera')
    ...
}

En outre, vous devez activer la fonctionnalité de dépendance fonctionnalité par fonctionnalité dans Android Studio (pour la prendre en charge lors de la modification de la configuration de l'exécution, par exemple) en cliquant sur Aide> Modifier les options de machine virtuelle personnalisée dans la barre de menus et en incluant les éléments suivants:

Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
-Drundebug.feature.on.feature=true

plugins Android Gradle 'feature' et 'instantapp' supprimés

Le plugin Android Gradle 3.6.0 a déprécié le plugin Feature (com.android.feature) et le plugin Instant App (com.android.instantapp) en faveur de l’utilisation du plugin Dynamic Feature (com.android.dynamic-feature) pour générer et conditionner vos applications instantanées utilisant des ensembles d'applications Android.

Dans les plugins Android Gradle 4.0.0-alpha01 et supérieurs, ces plugins obsolètes sont complètement supprimés. Ainsi, pour utiliser le dernier plugin Android Gradle, vous devez migrer votre application instantanée afin de prendre en charge les ensembles d'applications Android. En migrant vos applications instantanées, vous pouvez exploiter les avantages des offres groupées et simplifier la conception modulaire de votre application.

Source : Android

Télécharger Android Studio 4.0

Voir aussi :

Android Studio 3.5 Beta est disponible en téléchargement, l'EDI se concentre sur la santé du système ainsi que le polissage des fonctionnalités
Google publie la version 3.4 de l'EDI Android Studio qui se débarrasse de vieux problèmes de flux de travail
IntelliJ IDEA 2019.1 EAP5 permet de visualiser les emplacements récents de code, et prend en charge les modifications apportées par Android Studio 3.3