Fonctionnalités et API

Android 16 offre aux développeurs de nouvelles fonctionnalités et API de qualité. Les sections suivantes résument ces fonctionnalités pour vous aider à vous lancer avec les API associées.

Vous devez également examiner les éléments de vos applications pouvant être affectés par les modifications de la plate-forme. Pour en savoir plus, consultez les pages suivantes:

Fonctionnalité de base

Android inclut de nouvelles API qui étendent les fonctionnalités de base du système Android.

Deux versions d'API Android en 2025

  • This preview is for the next major release of Android with a planned launch in Q2 of 2025. This release is similar to all of our API releases in the past, where we can have planned behavior changes that are often tied to a targetSdkVersion.
  • We're planning the major release a quarter earlier (Q2 rather than Q3 in prior years) to better align with the schedule of device launches across our ecosystem, so more devices can get the major release of Android sooner. With the major release coming in Q2, you'll need to do your annual compatibility testing a few months earlier than in previous years to make sure your apps are ready.
  • We plan to have another release in Q4 of 2025 which also will include new developer APIs. The Q2 major release will be the only release in 2025 to include planned behavior changes that could affect apps.

In addition to new developer APIs, the Q4 minor release will pick up feature updates, optimizations, and bug fixes; it will not include any app-impacting behavior changes.

Timeline view of Android releases in 2025, noting that the 25Q2
       release is a major release and the 25Q4 release is a minor release.

We'll continue to have quarterly Android releases. The Q1 and Q3 updates in-between the API releases will provide incremental updates to help ensure continuous quality. We're actively working with our device partners to bring the Q2 release to as many devices as possible.

Using new APIs with major and minor releases

Guarding a code block with a check for API level is done today using the SDK_INT constant with VERSION_CODES. This will continue to be supported for major Android releases.

if (SDK_INT >= VERSION_CODES.BAKLAVA) {
  // Use APIs introduced in Android 16
}

The new SDK_INT_FULL constant can be used for API checks against both major and minor versions with the new VERSION_CODES_FULL enumeration.

if (SDK_INT_FULL >= VERSION_CODES_FULL.[MAJOR or MINOR RELEASE]) {
  // Use APIs introduced in a major or minor release
}

You can also use the Build.getMinorSdkVersion() method to get just the minor SDK version.

val minorSdkVersion = Build.getMinorSdkVersion(VERSION_CODES_FULL.BAKLAVA)

These APIs have not yet been finalized and are subject to change, so please send us feedback if you have any concerns.

Expérience utilisateur et interface utilisateur du système

Android 16 offre aux développeurs d'applications et aux utilisateurs plus de contrôle et de flexibilité pour configurer leur appareil en fonction de leurs besoins.

Mises à jour de la prévisualisation du Retour

Android 16 ajoute de nouvelles API pour vous aider à activer les animations système de prévisualisation du Retour dans la navigation par gestes, comme l'animation de retour à l'écran d'accueil. Enregistrer onBackInvokedCallback avec le nouveau PRIORITY_SYSTEM_NAVIGATION_OBSERVER permet à votre application de recevoir l'appel onBackInvoked standard chaque fois que le système gère une navigation arrière sans affecter le flux de navigation arrière normal.

Android 16 ajoute également finishAndRemoveTaskCallback() et moveTaskToBackCallback. En enregistrant ces rappels avec OnBackInvokedDispatcher, le système peut déclencher des comportements spécifiques et lire les animations correspondantes à l'avance lorsque le geste Retour est appelé.

Retour haptique plus riche

Android expose le contrôle de l'actionneur haptique depuis sa création.

Android 11 a ajouté la prise en charge d'effets haptiques plus complexes que les actionneurs plus avancés peuvent prendre en charge via VibrationEffect.Compositions de primitives sémantiques définies par l'appareil.

Android 16 ajoute des API haptiques qui permettent aux applications de définir les courbes d'amplitude et de fréquence d'un effet haptique tout en éliminant les différences entre les fonctionnalités de l'appareil.

Performances et batterie

Android 16 introduit des API qui permettent de collecter des insights sur vos applications.

Profilage déclenché par le système

ProfilingManager a été ajouté dans Android 15, ce qui permet aux applications de demander la collecte de données de profilage à l'aide de Perfetto sur les appareils publics sur le terrain. Toutefois, comme ce profilage doit être lancé à partir de l'application, les flux critiques tels que les démarrages ou les erreurs ANR seraient difficiles ou impossibles à capturer par les applications.

Pour y remédier, Android 16 introduit le profilage déclenché par le système dans ProfilingManager. Les applications peuvent s'inscrire pour recevoir des traces pour certains déclencheurs tels que le démarrage à froid reportFullyDrawn ou les erreurs ANR. Le système démarre et arrête ensuite une trace au nom de l'application. Une fois la traçabilité terminée, les résultats sont envoyés au répertoire de données de l'application.

Démarrer le composant dans ApplicationStartInfo

ApplicationStartInfo a été ajouté dans Android 15, ce qui permet à une application de voir les raisons du démarrage du processus, le type de démarrage, les heures de démarrage, le débit limité et d'autres données de diagnostic utiles. Android 16 ajoute getStartComponent() pour distinguer le type de composant qui a déclenché le démarrage, ce qui peut être utile pour optimiser le flux de démarrage de votre application.

Meilleure introspection des offres d'emploi

L'API JobScheduler#getPendingJobReason() renvoie la raison pour laquelle une tâche peut être en attente. Cependant, une tâche peut être en attente pour plusieurs raisons.

Dans Android 16, nous introduisons une nouvelle API JobScheduler#getPendingJobReasons(int jobId), qui renvoie plusieurs raisons pour lesquelles une tâche est en attente, en raison de contraintes explicites définies par le développeur et de contraintes implicites définies par le système.

Nous lançons également JobScheduler#getPendingJobReasonsHistory(int jobId), qui renvoie une liste des modifications de contraintes les plus récentes.

Nous vous recommandons d'utiliser l'API pour vous aider à déboguer les raisons pour lesquelles vos tâches ne s'exécutent pas, en particulier si vous constatez une baisse des taux de réussite de certaines tâches ou des bugs liés à la latence de certaines tâches. Par exemple, la mise à jour des widgets en arrière-plan n'a pas été effectuée ou la tâche de préchargement n'a pas pu être appelée avant le démarrage de l'application.

Cela peut également vous aider à mieux comprendre si certaines tâches ne sont pas effectuées en raison de contraintes définies par le système plutôt que de contraintes définies explicitement.

Fréquence d'actualisation adaptative

La fréquence d'actualisation adaptative (ARR, Adaptive Refresh Rate), introduite dans Android 15, permet à la fréquence d'actualisation de l'écran sur le matériel compatible de s'adapter à la fréquence d'images du contenu à l'aide d'étapes VSync distinctes. Cela réduit la consommation d'énergie tout en éliminant le besoin de changer de mode, ce qui peut entraîner des à-coups.

Android 16 introduit hasArrSupport() et getSuggestedFrameRate(int), tout en rétablissant getSupportedRefreshRates() pour permettre à vos applications de profiter plus facilement de l'ARR. RecyclerView 1.4 est compatible en interne avec l'ARR lorsqu'il s'installe à partir d'un balayage ou d'un défilement fluide. Nous continuons de travailler pour ajouter la compatibilité avec l'ARR à d'autres bibliothèques Jetpack. Cet article sur la fréquence d'images couvre de nombreuses API que vous pouvez utiliser pour définir la fréquence d'images afin que votre application puisse utiliser directement ARR.

Connectivité

Android 16 met à jour la plate-forme pour donner à votre application accès aux dernières avancées en matière de communication et de technologies sans fil.

Détermination de la position avec sécurité renforcée

Android 16 prend en charge les fonctionnalités de sécurité robustes dans la localisation Wi-Fi sur les appareils compatibles avec la norme 802.11az du Wi-Fi 6, ce qui permet aux applications de combiner la précision, l'évolutivité et la planification dynamique accrues du protocole avec des améliorations de sécurité, y compris le chiffrement basé sur AES-256 et la protection contre les attaques MITM. Cela permet de l'utiliser plus en toute sécurité dans les cas d'utilisation de proximité, comme le déverrouillage d'un ordinateur portable ou d'une porte de véhicule. La norme 802.11az est intégrée à la norme Wi-Fi 6, qui exploite son infrastructure et ses fonctionnalités pour une adoption plus large et un déploiement plus facile.

Contenus multimédias

Android 16 inclut diverses fonctionnalités qui améliorent l'expérience multimédia.

Améliorations apportées au sélecteur de photos

Le sélecteur de photos permet aux utilisateurs d'autoriser votre application à accéder de manière sécurisée et intégrée à des images et vidéos sélectionnées à partir de l'espace de stockage local et cloud, plutôt qu'à l'ensemble de leur bibliothèque multimédia. Grâce à une combinaison de composants système modulaires via les mises à jour du système Google et des services Google Play, il est compatible avec Android 4.4 (niveau d'API 19). L'intégration ne nécessite que quelques lignes de code avec la bibliothèque Android Jetpack associée.

Android 16 inclut les améliorations suivantes apportées au sélecteur de photos:

  • Sélecteur de photos intégré: nouvelles API qui permettent aux applications d'intégrer le sélecteur de photos à leur hiérarchie de vues. Cela permet de donner l'impression qu'il s'agit d'une partie plus intégrée de l'application, tout en exploitant l'isolation de processus qui permet aux utilisateurs de sélectionner des contenus multimédias sans que l'application ait besoin d'autorisations trop larges. Pour maximiser la compatibilité entre les versions de la plate-forme et simplifier votre intégration, vous devez utiliser la future bibliothèque Android Jetpack si vous souhaitez intégrer le sélecteur de photos intégré.
  • Recherche dans le sélecteur de photos dans le cloud : nouvelles API qui permettent de rechercher des éléments à partir du fournisseur de contenu multimédia dans le cloud pour le sélecteur de photos Android. La fonctionnalité de recherche dans le sélecteur de photos sera bientôt disponible.

Confidentialité

Android 16 inclut diverses fonctionnalités qui aident les développeurs d'applications à protéger la confidentialité des utilisateurs.

Mises à jour de Santé Connect

Santé Connect dans la version Preview développeur ajoute ACTIVITY_INTENSITY, un nouveau type de données défini conformément aux recommandations de l'Organisation mondiale de la Santé concernant l'activité modérée et intense. Chaque enregistrement nécessite l'heure de début, l'heure de fin et l'intensité de l'activité (modérée ou intense).

Santé Connect contient également des API mises à jour compatibles avec les dossiers médicaux. Cela permet aux applications de lire et d'écrire des dossiers médicaux au format FHIR avec le consentement explicite de l'utilisateur. Cette API est disponible dans un programme en accès anticipé. Si vous souhaitez participer, inscrivez-vous à notre programme en accès anticipé.

Privacy Sandbox sur Android

Android 16 intègre la dernière version de la Privacy Sandbox sur Android, qui fait partie de nos efforts continus visant à développer des technologies dans lesquelles les utilisateurs savent que leur confidentialité est protégée. Pour en savoir plus sur le programme bêta de la Privacy Sandbox sur Android pour les développeurs, consultez notre site Web. Découvrez le SDK Runtime, qui permet aux SDK de s'exécuter dans un environnement d'exécution dédié distinct de l'application qu'ils diffusent, offrant des protections plus strictes concernant la collecte et le partage des données utilisateur.