Bienvenue dans Now in Android, votre guide permanent sur les nouveautés et les actualités du monde du développement Android.
Poursuivez votre lecture pour en savoir plus sur la bêta 1 d'Android 16 QPR2, le Feature Drop d'Android Studio Narwhal, Jetpack Compose 1.9, Media3 1.8, le morphing de formes et la saisie automatique dans Compose, et bien plus encore.
Vous pouvez regarder un résumé vidéo :
Nous avons également un podcast.
Mais cet article contient les informations les plus détaillées, alors lisez la suite !
La bêta 1 d'Android 16 QPR2 est disponible ✨
La première bêta d'Android 16 QPR2 est désormais disponible. Il s'agit de la première version d'Android dotée d'une version mineure du SDK Android. Les versions mineures du SDK peuvent inclure de nouvelles API qui étendent les fonctionnalités de la plate-forme, mais ne peuvent pas introduire de modifications de comportement contrôlées par targetSdkVersion, ce qui réduit le nombre de tests à effectuer sur vos applications.
Vous pouvez appeler de nouvelles API en comparant SDK_INT_FULL à l'énumération VERSION_CODES_FULL :
if (Build.VERSION.SDK_INT_FULL >= Build.VERSION_CODES_FULL.BAKLAVA_1) { // Call new APIs from the Android 16 QPR2 release }
VERSION_CODES_FULL ne peut pas être utilisé dans les attributs du fichier manifeste uses-sdk.
Voici quelques-unes des principales nouveautés de la version bêta 1 de QPR2.
UI, expérience système et accessibilité :
- Une option de thème sombre étendu inverse intelligemment les applications claires pour les utilisateurs qui préfèrent une apparence sombre.
- Le système peut générer des icônes d'application à thème automatique si votre application ne fournit pas de calque monochrome.
- Les sessions de sélection interactive maintiennent l'UI de votre application active lorsque la feuille de partage est ouverte, à l'aide de
ChooserManageretChooserSession. - Une nouvelle API Data Transfer permet de migrer des données de manière plus fiable et sécurisée entre Android et iOS. Elle nécessite de mettre à jour le fichier XML des règles d'extraction de données de votre application et l'implémentation de
BackupAgent. - Le package
android.graphics.pdfa été étendu pour permettre l'annotation et la modification de documents PDF viaPdfRenderer.Page. - Les valeurs
ViewConfigurationsont désormais adaptées aux appareils virtuels individuels. Migrez versViewConfiguration.get(context)pour les scénarios multi-écrans. - Vous pouvez contrôler plus précisément le retour haptique en spécifiant
VibrationAttributesavecView.performHapticFeedback(HapticFeedbackRequest). - Les blocs "Réglages rapides" peuvent désormais être attribués à des catégories prédéfinies dans le fichier
AndroidManifest.xml.
Multimédia et audio :
- Décodage logiciel pour IAMF (Immersive Audio Model and Formats), un format de son spatial ouvert.
- Le partage audio personnel pour les appareils Bluetooth LE Audio est intégré directement au sélecteur de sortie du système.
- Les utilisateurs peuvent contrôler la luminosité du HDR à l'aide d'un curseur de luminosité HDR/SDR.
- Les extras du sélecteur de photos peuvent mettre en avant des albums ou des requêtes de recherche spécifiques.
Connectivité :
- Les améliorations apportées à Companion Device Management (CDM) vous permettent de fournir des icônes d'appareil personnalisées, d'écouter le rappel
EVENT_ASSOCIATION_REMOVEDet d'activer la validation multi-application à l'aide de DeviceId. - Les mises à jour Bluetooth incluent la prise en charge de l'analyse passive pour
BluetoothLeScanner(ScanSettings.SCAN_TYPE_PASSIVE), les raisons de la perte de liaison (BluetoothDevice.EXTRA_BOND_LOSS_REASON) et la récupération directe des UUID de service (BluetoothDevice.EXTRA_UUID_LE). - Les mises à jour de la mesure de distance Wi-Fi RTT (
RttStationRangingParams) permettent de mesurer la distance par rapport aux stations. - Une nouvelle
PhoneNumberManagerest disponible pour analyser et valider les numéros de téléphone à partir des en-têtes IMS P-Associated-URI. - Les améliorations apportées à la confidentialité du réseau MediaRouter permettent de caster sur de nouveaux supports comme le Bluetooth et l'UWB. Vous devez utiliser le sélecteur de sortie du système ou demander les autorisations
NEARBY_DEVICESpour les sélecteurs personnalisés intégrés à l'application.
Confidentialité et sécurité :
- Un nouvel état de sécurité au niveau du système, "Verrouillage sécurisé de l'appareil", verrouille les appareils et nécessite une authentification principale pour les déverrouiller.
- Un bouton visible par l'utilisateur est ajouté pour la protection contre le vol de téléphone afin d'activer/de désactiver le verrouillage en cas d'échec de l'authentification.
Productivité des développeurs :
- Les nouvelles API
AppWidgetManagervous permettent d'interroger les métriques d'engagement des widgets. - Les applications débogables installées via ADB recevront désormais des avertissements précoces concernant la compatibilité avec les pages de 16 Ko.
ProfilingManagerajoute la prise en charge de nouveaux déclencheurs de profilage initiés par le système etrequestRunningSystemTracepour capturer les traces en arrière-plan.- Un bouton "Journalisation détaillée de l'impression" dans les options pour les développeurs fournit des informations de débogage supplémentaires pour le framework d'impression Android.
- Des tests plus robustes pour les expériences sur ordinateur et multi-écrans sont activés avec les nouvelles API
UiAutomationpour les captures d'écran sur les écrans non par défaut et lesAccessibilityWindowInfo.refreshpublics. - La compatibilité de l'API est ajoutée pour la nouvelle bibliothèque
androidx.core:core-backported-fixes. - Les applications avec interface utilisateur graphique sont désormais compatibles avec le terminal Linux
WindowInspector.addGlobalWindowViewsListenerest compatible avec les notifications de modification de la vue racine en temps réel.
Vous pouvez enregistrer n'importe quel appareil Pixel compatible pour recevoir les mises à jour de la version bêta par liaison radio ou utiliser des images système 64 bits avec Android Emulator dans Android Studio. La stabilité de la plate-forme est prévue pour octobre 2025.
La mise à jour groupée Android Studio Narwhal est stable : commencez à utiliser le mode Agent 🐳
La mise à jour groupée Android Studio Narwhal est désormais stable. Elle inclut les nouvelles fonctionnalités et améliorations suivantes :
- Gemini dans Android Studio : le mode Agent est disponible pour les tâches de codage en plusieurs étapes.
- Les règles de la bibliothèque de prompts personnalisent la sortie de l'IA de Gemini en fonction des besoins de votre projet.
- Transformer l'UI avec Gemini utilise une UI en langage naturel pour itérer sur l'UI Compose.
- Compatibilité avec le développement immersif grâce à l'émulateur Android XR intégré, à un nouveau modèle XR et à l'outil d'inspection de la mise en page intégré pour XR
- Accès étendu aux appareils via Android Partner Device Labs dans le streaming sur des appareils Android.
- Amélioration des aperçus Compose grâce à une navigation dans le code améliorée et au nouveau sélecteur d'aperçu Compose
- Compilateur Kotlin K2 activé par défaut pour accélérer les compilations
- Outils pour les pages de 16 ko avec des avertissements lint, des analyses et un émulateur pour vous aider à vous préparer aux futurs appareils avec des pages de 16 ko.
Streaming d'appareils Android, optimisé par Firebase
Android Device Streaming, optimisé par Firebase, est désormais compatible avec les Partner Device Labs d'Android. Vous pouvez ainsi vous connecter à distance à des appareils Android physiques hébergés par des partenaires OEM, dont Samsung, Xiaomi, OPPO, OnePlus et vivo.
Accélération du développement avec des versions mensuelles d'Android Studio, soit deux fois plus souvent qu'auparavant
Android Studio passe à un rythme de publication stable mensuel pour vous proposer plus rapidement de nouvelles fonctionnalités et des corrections de bugs critiques. L'IDE Android Studio sera mis à jour tous les mois, mais les nouvelles versions de la plate-forme IntelliJ seront lancées tous les quelques mois, avec des mises à jour groupées entre les versions stables. Android Emulator et le plug-in Android Gradle continueront d'être mis à jour séparément tous les deux mois. Ce calendrier de publication accéléré est soutenu par des investissements à long terme dans l'infrastructure de test.
Nouveautés de la version d'août 2025 de Jetpack Compose 🚀
La version d'août 2025 de Jetpack Compose (version 1.9) est désormais stable. Cette version introduit Modifier.dropShadow et Modifier.innerShadow pour l'affichage des effets d'ombre de boîte. Les nouveaux modificateurs onVisibilityChanged et onFirstVisible vous permettent de suivre la visibilité des éléments pour les mises à jour de l'UI ou la journalisation des impressions. Vous pouvez appliquer un style enrichi dans OutputTransformation en utilisant TextFieldBuffer.addStyle pour les transformations de texte.
Les composants de base LazyLayout sont désormais stables, et vous pouvez définir un LazyLayoutCacheWindow pour améliorer les performances des listes et des grilles différées grâce à une pré-extraction améliorée. Scrollable2D permet le défilement bidimensionnel, y compris le défilement rapide et le défilement imbriqué, avec diverses améliorations pour l'interopérabilité du défilement et du défilement imbriqué avec les vues. Une API d'activation (Composer.setDiagnosticStackTraceEnabled) fournit des informations plus détaillées sur l'emplacement des plantages dans les traces de la pile. Elle n'est recommandée que pour les versions de débogage. Les nouvelles annotations @RememberInComposition et @FrequentlyChangingValue, ainsi que les vérifications Lint associées, sont disponibles dans une nouvelle bibliothèque d'annotations d'exécution. Les menus contextuels peuvent être personnalisés à l'aide de Modifier.appendTextContextMenuComponents et Modifier.filterTextContextMenuComponents. Le plug-in Android Gradle (AGP) / Lint version 8.8.2 ou ultérieure est désormais requis.
Media3 1.8.0 : quelles sont les nouveautés ? 🚀
Media3 1.8.0 est désormais disponible et propose plusieurs nouvelles fonctionnalités et améliorations. ExoPlayer dispose d'un mode de balayage pour les recherches fréquentes effectuées par l'utilisateur, que vous pouvez activer via ExoPlayer.setScrubbingModeEnabled. HlsInterstitialsAdsLoader
L'MetadataRetriever a été mis à jour pour vous permettre de récupérer la durée des éléments multimédias sans les lire. Pour Transformer, la version introduit des opérations de découpage plus rapides à l'aide de listes de modification MP4 avec experimentalSetMp4EditListTrimEnabled et des optimisations d'encodeur spécifiques au chipset via CodecDbLite, activées en appelant setEnableCodecDbLite sur DefaultEncoderFactory.Builder.
Parmi les autres nouveautés, citons la prise en charge du téléchargement partiel dans Downloader avec PreCacheHelper, le routage audio XR automatique dans ExoPlayer et des interactions MediaCodec plus efficaces. Le module MediaSession conserve désormais les notifications visibles plus longtemps par défaut, et l'application de démonstration de session multimédia présente la fonctionnalité de reprise de la lecture. Une nouvelle application de démonstration Composition, créée avec Kotlin et Compose, illustre le montage vidéo avancé de plusieurs assets.
Articles 📚
#WeArePlay : Rencontrez les personnes qui codent pour un monde plus durable
L'initiative #WeArePlay met en avant des applications et jeux Android qui répondent aux défis environnementaux. Le jeu BoRa — Iguaçu National Park, développé par Mayla, Flávia, Andréia et Ariane, propose des expériences interactives ludiques et accessibles pour sensibiliser à la nature lors des visites du parc. L'application de Louis et Justin, CyberTracker, permet aux pisteurs autochtones analphabètes d'enregistrer des données sur la biodiversité via une interface basée sur des icônes, ce qui contribue aux efforts de conservation. Enfin, Earth5R, cofondé par Bharati et Saurabh, propose une éducation environnementale et met en relation les utilisateurs avec des stages et des projets pour développer des compétences pour l'économie verte.
Qu'est-ce que le HDR ? 🌟
La plage dynamique élevée (HDR) permet aux développeurs Android d'augmenter la luminosité maximale au-delà de la plage dynamique standard (SDR), offrant ainsi une fidélité visuelle améliorée. Android est compatible avec le HDR pour les vidéos et les images, y compris avec des technologies telles que l'UltraHDR pour la rétrocompatibilité.
Comprendre la couleur implique trois composants :
- Profondeur de bits : définit la précision de la représentation des couleurs. Une profondeur plus élevée offre des transitions plus fluides.
- Fonction de transfert : mappe les valeurs numériques des pixels à la luminance ou à la couleur affichée, en s'adaptant à la réponse visuelle humaine non linéaire. Par exemple, sRGB, HLG et PQ.
- Gamme de couleurs : représente la gamme de couleurs qu'un appareil peut reproduire.
Idées reçues sur le HDR :
- Couleurs éclatantes : des gammes de couleurs plus larges, comme Display P3 et Adobe RGB, étaient disponibles avant le HDR, et la plupart des écrans se limitent encore à P3, même avec du contenu BT.2020.
- Plus de contraste/meilleur niveau de détail des noirs : le HDR n'offre pas intrinsèquement des noirs plus sombres que le SDR sur le même écran. Les écrans OLED offrent un contraste infini pour les deux. Bien que la PQ alloue plus de bits aux régions sombres, il ne s'agit pas d'une fonctionnalité HDR universelle.
- Profondeur de bits plus élevée : certains profils vidéo HDR (par exemple, HDR10) utilisent des flux 10 ou 12 bits, mais cela est spécifique à ces profils et n'est pas inhérent au HDR lui-même. Des profondeurs de bits plus élevées sont également courantes dans d'autres formats d'image.
Le HDR signifie principalement une luminosité maximale plus élevée. Cette "marge HDR" est définie comme une région flottante par rapport au SDR. Alors que la vidéo HDR traditionnelle encode souvent une marge fixe, les écrans modernes utilisent une marge dynamique, ce qui peut entraîner des différences de qualité. Des technologies telles que l'Ultra HDR et les cartes de gain offrent des alternatives avec une utilisation efficace des bits. Le kit d'interface utilisateur d'Android utilise l'API extendedRangeBrightness pour offrir des expériences HDR, même avec RGBA_8888.
Vidéos 📹
Éléments partagés avancés avec morphing de forme | Astuces Jetpack Compose
Jetpack Compose permet désormais d'effectuer des transitions avancées entre éléments partagés, des métamorphoses de formes sophistiquées et des animations de révélation. Les développeurs peuvent configurer SharedTransitionLayout au niveau supérieur de l'application et utiliser Modifier.sharedBounds pour associer des éléments.
La métamorphose de forme est une nouvelle fonctionnalité clé, obtenue en exploitant la bibliothèque de formes graphiques AndroidX de Material 3. Pour cela, vous devez créer un objet Morph avec des formes de début et de fin définies, contrôler sa progression avec animateFloat (à partir de AnimatedVisibilityScope) et l'appliquer en tant que clip via un OverlayClip personnalisé. Les effets de révélation utilisent skipToLookaheadSize et skipToLookaheadPosition. Toutes ces animations avancées sont également compatibles avec la prévisualisation du geste Retour.
Gemini multimodal dans Android Studio : développement d'UI optimisé par l'IA
L'IA Gemini dans Android Studio facilite le développement d'UI en générant du code à partir de conceptions (y compris la conversion d'image en code), en créant des aperçus Compose avec des données synthétiques et en affinant l'UI existante via des commandes directes.
Utiliser un SDK compatible avec l'environnement d'exécution
Android 14 introduit SDK Runtime, une nouvelle technologie qui isole les SDK tiers dans un bac à sable de processus sécurisé et distinct afin d'améliorer la confidentialité et la sécurité.
Pour les développeurs :
- Les SDK compatibles avec l'environnement d'exécution s'exécutent dans ce processus distinct.
- Les SDK compatibles avec l'environnement d'exécution servent d'intermédiaires dans votre application.
- Chargez les SDK RE à l'aide de
SdkSandboxManagerCompat, en respectant les contraintes (par exemple, premier plan, chargement unique). - Les outils Shim simplifient la communication interprocessus de bas niveau.
- Affichez l'UI à partir des SDK compatibles avec l'environnement d'exécution à l'aide de
SandboxedSdkViewet deSandboxedUiAdapter. - Lancez des activités à partir de SDK Runtime à l'aide de
SdkActivityLauncher.
Métamorphose de forme Material 3 WearOS | Astuces Jetpack Compose
Wear OS Material 3 pour Compose simplifie désormais la transformation de formes. Les développeurs peuvent facilement ajouter des changements de forme animés aux boutons ronds avec IconButtonDefaults.animatedShapes, créer des groupes de boutons qui animent les changements de largeur à l'aide du composant ButtonGroup et de Modifier.animateWidth(), et créer des listes à défilement vertical (TransformingLazyColumn) où les éléments sont redimensionnés et transformés à l'aide de TransformationSpec lorsqu'ils s'approchent des bords de l'écran.
Versions d'AndroidX 🚀
Voici un résumé des modifications apportées à AndroidX, en mettant l'accent sur celles qui concernent le plus les développeurs d'applications Android :
Modification globale ayant un impact sur les bibliothèques Compose :
minSdkpar défaut augmenté à l'API 23 : pourandroidx.composeanimation,foundation,material,runtimeetui, la version minimale par défaut du SDK est passée de l'API 21 à l'API 23. Cela signifie que si vous utilisez les dernières versions alpha de ces bibliothèques Compose, votre application nécessitera implicitement Android 6.0 (Marshmallow) ou une version ultérieure.
Principaux changements pour les développeurs Compose :
- Nouvelle API de conservation (environnement d'exécution Compose) : introduction d'une API de conservation semblable à
rememberSaveable, mais pour les valeurs qui quittent la hiérarchie de composition sans être sérialisées. Sa durée de vie est plus courte que celle des valeurs enregistrées et il se comporte de la même manière qu'unViewModel, offrant ainsi une nouvelle façon de gérer l'état des composables qui peuvent entrer et sortir de la composition. - Transitions d'éléments partagés améliorées (Compose Animation et UI) : nouvelles API pour activer/désactiver dynamiquement les éléments partagés, prendre en compte les transitions en cours et définir des limites cibles alternatives lorsqu'un élément partagé est supprimé. Un nouveau
Modifier.skipToLookaheadPositionest également disponible pour ancrer les mises en page. - Amélioration de la pré-extraction du pager (Compose Foundation) : la stratégie de pré-extraction du pager utilise désormais une "fenêtre de cache" (taille d'une fenêtre d'affichage) au lieu d'un seul élément, et la pré-extraction initiale est activée par défaut. Les éléments sont également conservés plus longtemps pour un défilement plus fluide.
- Gestion améliorée de la sélection pour la souris/le pavé tactile (Compose Foundation et UI) :
ComposeViewsefface désormais automatiquement la sélection lorsqu'un événement de pointeur vers le bas (à partir de la souris ou du pavé tactile) se produit en dehors du nœud sélectionné. Vous pouvez désactiver cette option. - Rectangles de sélection personnalisables (Compose Foundation) :
FocusPropertiesvous permet désormais de définir une zone de sélection personnalisée au lieu d'utiliser par défaut le cadre de délimitation, ce qui améliore le balayage de la sélection et la logique "garder en vue" dans les conteneurs à défilement. - Composable LifecycleOwner (Lifecycle) : un nouveau composable permet de créer des instances
LifecycleOwnerlimitées directement dans l'arborescence de l'UI. Cela est particulièrement utile pour gérer les cycles de vie des composants de manière indépendante, ainsi que pour les bibliothèques telles que Navigation. - Compatibilité avec les types pouvant être nuls dans
SavedStateHandle(LifecycleetSavedState) : enregistrement et restauration simplifiés des propriétés pouvant être nulles avec compatibilité native dansSavedStateHandleetSavedStateRegistryOwner. - Nouveau
LineHeightStyle.Mode.Tight(Compose Foundation et UI) : un nouveau mode Tight permet d'appliquer des hauteurs de ligne plus petites, même si cela signifie potentiellement couper des glyphes plus grands, ce qui offre un contrôle plus précis de la mise en page du texte. - Appuyer deux fois pour sélectionner un mot (Compose Foundation) : ajout de la prise en charge de l'appui deux fois pour sélectionner des mots dans
SelectionContaineretBasicTextField. - Modifications du comportement de WindowInsets (Compose UI et Foundation)
◦ Nouvelle APIWindowInsets.cutoutPathpour obtenir le chemin d'accès de l'encoche.
◦ L'indicateurisWindowInsetsDefaultPassThroughEnableda été supprimé, ce qui signifie queWindowInsetsn'est pas consommé par défaut, ce qui permet aux vues enfants de les recevoir. AndroidViewrequestRectangleOnScreenCorrection (Compose Foundation) : les requêtes effectuées par AndroidViews (par exemple,EditTextessayant de rester à l'écran) se propagent désormais correctement vers Compose.- Amélioration du défilement 2D avec la molette de la souris (Compose Foundation et UI) : meilleure prise en charge des événements de défilement 2D avec la molette de la souris, avec de nouvelles API de test et un flag pour contrôler le comportement.
Nouvelles bibliothèques et utilitaires :
androidx.core:core-backported-fixes(nouvelle bibliothèque) : cette nouvelle bibliothèque permet aux développeurs de vérifier si des corrections de bugs critiques (par exemple, des problèmes au niveau de la plate-forme, comme des bugs spécifiques de l'appareil photo) ont été appliquées à un appareil. Cela permet de proposer différentes expériences utilisateur selon qu'un bug connu est résolu ou non.
Autres modifications notables :
- Activité et saisie dans les jeux : ajout de la compatibilité par défaut avec les tailles de page de 16 ko et de la compatibilité avec la souris pour
GameActivity. - Positionnement des info-bulles Material3 : davantage de fournisseurs de position pour les info-bulles, ce qui permet de les placer au-dessus, en dessous, à gauche ou à droite de l'ancrage.
- Material3
DatePickerCorrections : DatePicker respecte désormais ses propres paramètres régionaux pour la mise en forme des nombres, et les problèmes d'affichage de droite à gauche ont été corrigés. - Compatibilité avec display_override pour les TWA (navigateur) : ajout de la compatibilité avec la propriété de fichier manifeste TWA
display_override, ce qui permet de mieux contrôler l'affichage des TWA. - Lancement de l'URL initiale dans une application externe (navigateur) : ajout d'un intent pour permettre le lancement de l'URL initiale d'une TWA dans un navigateur externe.
Android Developers Backstage
Android Developers Backstage est de retour avec un nouvel épisode.
Saisie automatique dans Compose
Jetpack Compose 1.8 introduit des fonctionnalités de saisie automatique considérablement améliorées, qui exploitent le système sémantique de Compose. Les développeurs peuvent désormais intégrer facilement la saisie automatique au niveau du système en ajoutant simplement des tags aux champs de texte avec la sémantique de type de contenu appropriée (par exemple, nom d'utilisateur, mot de passe). Cela élimine la nécessité de gérer manuellement l'arborescence de la saisie automatique et améliore les performances.
Et maintenant… 👋
C'est tout pour cette édition, avec la couverture de la bêta 1 d'Android 16 QPR2, du Feature Drop d'Android Studio Narwhal, de Jetpack Compose 1.9, de Media3 1.8, de la transformation de formes et de la saisie automatique dans Compose, et bien plus encore.
Revenez bientôt pour découvrir les prochaines actualités de l'univers des développeurs Android.
-
CommunautéPlus de 900 participants ont rejoint nos espaces événementiels pour assister à une conférence sur notre vision de l'avenir, à des sessions de démonstration, à des dizaines d'ateliers, à un hackathon et à des discussions communautaires axées sur les idées et les commentaires concernant la plate-forme Android.
Florina Muntenescu • Temps de lecture : 1 min -
CommunautéAndroid a récemment annoncé la validation des développeurs, une mesure de sécurité supplémentaire qui dissuade les personnes malintentionnées et leur complique la tâche pour propager des contenus nuisibles.
Matthew Forsythe • Temps de lecture : 2 min -
CommunautéNous avons lancé les compétences Android officielles en avril. Cet article de blog présente les commentaires que nous avons reçus, et explique la philosophie et la méthodologie du projet.
Jose Alcérreca • Temps de lecture : 4 min
Recevez chaque semaine les dernières informations sur le développement Android dans votre boîte de réception.