Fonctionnalités et API

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

Pour obtenir une liste détaillée des nouvelles API, des API modifiées et supprimées, consultez le rapport de différences des API. Pour en savoir plus sur les nouvelles API, consultez la documentation de référence des API Android. Les nouvelles API sont mises en évidence pour une meilleure visibilité.

Vous devez également examiner les éléments de votre application pouvant être affectés par des 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 de l'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 UI 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.

Notifications axées sur la progression

Android 16 introduit des notifications axées sur la progression pour aider les utilisateurs à suivre facilement les parcours de bout en bout initiés par l'utilisateur.

Notification.ProgressStyle est un nouveau style de notification qui vous permet de créer des notifications axées sur la progression. Les principaux cas d'utilisation incluent les services de covoiturage, la livraison et la navigation. Dans la classe Notification.ProgressStyle, vous pouvez indiquer les états et les jalons d'un parcours utilisateur à l'aide de points et de segments.

Pour en savoir plus, consultez la page de documentation sur les notifications axées sur la progression.

Notification axée sur la progression affichée sur l'écran de verrouillage.
Notification axée sur la progression affichée dans le volet des notifications.

Mises à jour de la prévisualisation du Retour

Android 16 adds new APIs to help you enable predictive back system animations in gesture navigation such as the back-to-home animation. Registering the onBackInvokedCallback with the new PRIORITY_SYSTEM_NAVIGATION_OBSERVER allows your app to receive the regular onBackInvoked call whenever the system handles a back navigation without impacting the normal back navigation flow.

Android 16 additionally adds the finishAndRemoveTaskCallback() and moveTaskToBackCallback. By registering these callbacks with the OnBackInvokedDispatcher, the system can trigger specific behaviors and play corresponding ahead-of-time animations when the back gesture is invoked.

Technologies haptiques plus riches

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.

Productivité et outils pour les développeurs

Bien que la plupart de nos efforts pour améliorer votre productivité soient axés sur des outils tels que Android Studio, Jetpack Compose et les bibliothèques Android Jetpack, nous recherchons toujours des moyens de vous aider à concrétiser votre vision sur la plate-forme.

Gestion du contenu pour les fonds d'écran animés

Dans Android 16, le framework de fond d'écran animé bénéficie d'une nouvelle API de contenu pour relever les défis des fonds d'écran dynamiques gérés par l'utilisateur. Actuellement, les fonds d'écran animés intégrant du contenu fourni par l'utilisateur nécessitent des implémentations complexes, spécifiques au service. Android 16 introduit WallpaperDescription et WallpaperInstance. WallpaperDescription vous permet d'identifier des instances distinctes d'un fond d'écran animé à partir du même service. Par exemple, un fond d'écran qui apparaît à la fois sur l'écran d'accueil et sur l'écran de verrouillage peut comporter un contenu unique dans les deux cas. Le sélecteur de fond d'écran et WallpaperManager utilisent ces métadonnées pour mieux présenter les fonds d'écran aux utilisateurs, ce qui vous permet de créer des expériences de fond d'écran animé diversifiées et personnalisées plus facilement.

Performances et batterie

Android 16 introduit des API qui vous aident à recueillir 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 un 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 tâches

The JobScheduler#getPendingJobReason() API returns a reason why a job might be pending. However, a job might be pending for multiple reasons.

In Android 16, we are introducing a new API JobScheduler#getPendingJobReasons(int jobId), which returns multiple reasons why a job is pending, due to both explicit constraints set by the developer and implicit constraints set by the system.

We're also introducing JobScheduler#getPendingJobReasonsHistory(int jobId), which returns a list of the most recent constraint changes.

We recommend using the API to help you debug why your jobs may not be executing, especially if you're seeing reduced success rates of certain tasks or have bugs around latency of certain job completion. For example, updating widgets in the background failed to occur or prefetch job failed to be called prior to app start.

This can also better help you understand if certain jobs are not completing due to system defined constraints versus explicitly set constraints.

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.

API de marge dans ADPF

The SystemHealthManager introduces the getCpuHeadroom and getGpuHeadroom APIs, designed to provide games and resource-intensive apps with estimates of available CPU and GPU resources. These methods offer a way for you to gauge how your app or game can best improve system health, particularly when used in conjunction with other Android Dynamic Performance Framework (ADPF) APIs that detect thermal throttling.

By using CpuHeadroomParams and GpuHeadroomParams on supported devices, you can customize the time window used to compute the headroom and select between average or minimum resource availability. This can help you reduce your CPU or GPU resource usage accordingly, leading to better user experiences and improved battery life.

Accessibilité

Android 16 ajoute de nouvelles API et fonctionnalités d'accessibilité qui peuvent vous aider à rendre votre application accessible à tous les utilisateurs.

API d'accessibilité améliorées

Android 16 adds additional APIs to enhance UI semantics that help improve consistency for users that rely on accessibility services, such as TalkBack.

Outline text for maximum text contrast

Users with low vision often have reduced contrast sensitivity, making it challenging to distinguish objects from their backgrounds. To help these users, Android 16 introduces outline text, replacing high contrast text, which draws a larger contrasting area around text to greatly improve legibility.

Android 16 contains new AccessibilityManager APIs to let your apps check or register a listener to see if this mode is enabled. This is primarily for UI Toolkits like Compose to offer a similar visual experience. If you maintain a UI Toolkit library or your app performs custom text rendering that bypasses the android.text.Layout class then you can use this to know when outline text is enabled.

Text with enhanced contrast before and after Android 16's new outline text accessibility feature

Duration added to TtsSpan

Android 16 extends TtsSpan with a TYPE_DURATION, consisting of ARG_HOURS, ARG_MINUTES, and ARG_SECONDS. This lets you directly annotate time duration, ensuring accurate and consistent text-to-speech output with services like TalkBack.

Support elements with multiple labels

Android currently allows UI elements to derive their accessibility label from another, and now offers the ability for multiple labels to be associated, a common scenario in web content. By introducing a list-based API within AccessibilityNodeInfo, Android can directly support these multi-label relationships. As part of this change, we've deprecated AccessibilityNodeInfo#setLabeledBy and #getLabeledBy in favor of #addLabeledBy, #removeLabeledBy, and #getLabeledByList.

Improved support for expandable elements

Android 16 adds accessibility APIs that allow you to convey the expanded or collapsed state of interactive elements, such as menus and expandable lists. By setting the expanded state using setExpandedState and dispatching TYPE_WINDOW_CONTENT_CHANGED AccessibilityEvents with a CONTENT_CHANGE_TYPE_EXPANDED content change type, you can ensure that screen readers like TalkBack announce state changes, providing a more intuitive and inclusive user experience.

Indeterminate ProgressBars

Android 16 adds RANGE_TYPE_INDETERMINATE, giving a way for you to expose RangeInfo for both determinate and indeterminate ProgressBar widgets, allowing services like TalkBack to more consistently provide feedback for progress indicators.

Tri-state CheckBox

The new AccessibilityNodeInfo getChecked and setChecked(int) methods in Android 16 now support a "partially checked" state in addition to "checked" and "unchecked." This replaces the deprecated boolean isChecked and setChecked(boolean).

Supplemental descriptions

When an accessibility service describes a ViewGroup, it combines content labels from its child views. If you provide a contentDescription for the ViewGroup, accessibility services assume you are also overriding the description of non-focusable child views. This can be problematic if you want to label things like a drop-down (for example, "Font Family") while preserving the current selection for accessibility (for example, "Roboto"). Android 16 adds setSupplementalDescription so you can provide text that provides information about a ViewGroup without overriding information from its children.

Required form fields

Android 16 adds setFieldRequired to AccessibilityNodeInfo so apps can tell an accessibility service that input to a form field is required. This is an important scenario for users filling out many types of forms, even things as simple as a required terms and conditions checkbox, helping users to consistently identify and quickly navigate between required fields.

Utiliser le téléphone comme entrée micro pour les appels vocaux avec des appareils auditifs LEA

Android 16 permet aux utilisateurs d'appareils auditifs LE Audio de basculer entre les micros intégrés des appareils auditifs et le micro de leur téléphone pour les appels vocaux. Cela peut être utile dans des environnements bruyants ou dans d'autres situations où les micros de l'appareil auditif peuvent ne pas fonctionner correctement.

Commandes de volume ambiant pour les appareils auditifs LEA

Android 16 permet aux utilisateurs d'appareils auditifs LE Audio d'ajuster le volume du son ambiant capté par les micros de l'appareil auditif. Cela peut être utile lorsque le bruit de fond est trop fort ou trop faible.

Appareil photo

Android 16 améliore la prise en charge des utilisateurs d'appareils photo professionnels en permettant l'exposition automatique hybride, ainsi que des ajustements précis de la température des couleurs et de la teinte. Un nouvel indicateur de mode Nuit aide votre application à savoir quand passer à une session de caméra en mode Nuit et quand en sortir. De nouvelles actions Intent facilitent la capture de photos animées, et nous continuons d'améliorer les images Ultra HDR grâce à la prise en charge de l'encodage HEIC et de nouveaux paramètres de la norme ISO 21496-1.

Exposition automatique hybride

Android 16 ajoute de nouveaux modes d'exposition automatique hybrides à Camera2, ce qui vous permet de contrôler manuellement certains aspects de l'exposition tout en laissant l'algorithme d'exposition automatique (AE) gérer le reste. Vous pouvez contrôler ISO + AE et durée d'exposition + AE, ce qui offre une plus grande flexibilité par rapport à l'approche actuelle, où vous avez un contrôle manuel complet ou vous vous appuyez entièrement sur l'exposition automatique.

fun setISOPriority() {
    // ... (Your existing code before the snippet) ...

    val availablePriorityModes = mStaticInfo.characteristics.get(
        CameraCharacteristics.CONTROL_AE_AVAILABLE_PRIORITY_MODES
    )

    // ... (Your existing code between the snippets) ...

    // Turn on AE mode to set priority mode
    reqBuilder.set(
        CaptureRequest.CONTROL_AE_MODE,
        CameraMetadata.CONTROL_AE_MODE_ON
    )
    reqBuilder.set(
        CaptureRequest.CONTROL_AE_PRIORITY_MODE,
        CameraMetadata.CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITY
    )
    reqBuilder.set(
        CaptureRequest.SENSOR_SENSITIVITY,
        TEST_SENSITIVITY_VALUE
    )
    val request: CaptureRequest = reqBuilder.build()

    // ... (Your existing code after the snippet) ...
}

Ajustements précis de la température des couleurs et de la teinte

Android 16 permet d'ajuster la température et la teinte des couleurs de l'appareil photo pour mieux prendre en charge les applications d'enregistrement vidéo professionnelles. Dans les versions précédentes d'Android, vous pouviez contrôler les paramètres de balance des blancs via CONTROL_AWB_MODE, qui contient des options limitées à une liste prédéfinie, comme Incandescent (Incandescente), Cloudy (Nuageux) et Twilight (Crépuscule). COLOR_CORRECTION_MODE_CCT permet d'utiliser COLOR_CORRECTION_COLOR_TEMPERATURE et COLOR_CORRECTION_COLOR_TINT pour ajuster précisément la balance des blancs en fonction de la température de couleur corrélée.

fun setCCT() {
    // ... (Your existing code before this point) ...

    val colorTemperatureRange: Range<Int> =
        mStaticInfo.characteristics[CameraCharacteristics.COLOR_CORRECTION_COLOR_TEMPERATURE_RANGE]

    // Set to manual mode to enable CCT mode
    reqBuilder[CaptureRequest.CONTROL_AWB_MODE] = CameraMetadata.CONTROL_AWB_MODE_OFF
    reqBuilder[CaptureRequest.COLOR_CORRECTION_MODE] = CameraMetadata.COLOR_CORRECTION_MODE_CCT
    reqBuilder[CaptureRequest.COLOR_CORRECTION_COLOR_TEMPERATURE] = 5000
    reqBuilder[CaptureRequest.COLOR_CORRECTION_COLOR_TINT] = 30

    val request: CaptureRequest = reqBuilder.build()

    // ... (Your existing code after this point) ...
}

Les exemples suivants montrent à quoi ressemble une photo après avoir appliqué différents ajustements de température et de teinte de couleur:

Image d'origine sans ajustement de la température ni de la teinte des couleurs.
Image avec la température de couleur ajustée sur 3 000.
Image avec la température de couleur ajustée sur 7 000.


Image avec les niveaux de teinte réduits de 50 %.
Image avec les niveaux de teinte augmentés de 50.

Détection de scène du mode Nuit de l'appareil photo

Pour aider votre application à savoir quand passer d'une session d'appareil photo en mode Nuit à une autre, Android 16 ajoute EXTENSION_NIGHT_MODE_INDICATOR. Si elle est prise en charge, elle est disponible dans CaptureResult dans Camera2.

Il s'agit de l'API que nous avons brièvement mentionnée comme étant bientôt disponible dans l'article de blog Comment Instagram a permis aux utilisateurs de prendre de superbes photos en basse lumière. Ce post est un guide pratique sur l'implémentation du mode nuit, ainsi qu'une étude de cas qui associe des photos de meilleure qualité dans le mode nuit de l'application à une augmentation du nombre de photos partagées depuis l'appareil photo de l'application.

Actions d'intent pour la capture de photos animées

Android 16 adds standard Intent actions — ACTION_MOTION_PHOTO_CAPTURE, and ACTION_MOTION_PHOTO_CAPTURE_SECURE — which request that the camera application capture a motion photo and return it.

You must either pass an extra EXTRA_OUTPUT to control where the image will be written, or a Uri through Intent.setClipData(ClipData). If you don't set a ClipData, it will be copied there for you when calling Context.startActivity(Intent).

An example of a motion photo, showing the still image followed by the motion playback.

Améliorations des images Ultra HDR

Illustration de la qualité d'image SDR (Standard Dynamic Range) par rapport à la qualité d'image HDR (High Dynamic Range).

Android 16 poursuit notre travail visant à offrir une qualité d'image éblouissante avec les images UltraHDR. Il est compatible avec les images UltraHDR au format de fichier HEIC. Ces images recevront le type ImageFormat HEIC_ULTRAHDR et contiendront une carte de gain intégrée semblable au format JPEG UltraHDR existant. Nous travaillons également sur la prise en charge d'AVIF pour UltraHDR. Tenez-vous informé.

De plus, Android 16 implémente des paramètres supplémentaires dans UltraHDR à partir de la version préliminaire de la norme ISO 21496-1, y compris la possibilité d'obtenir et de définir l'espace colorimétrique dans lequel les calculs de la carte de gain doivent être appliqués, ainsi que la prise en charge des images de base encodées en HDR avec des cartes de gain SDR.

Graphiques

Android 16 inclut les dernières améliorations graphiques, telles que les effets graphiques personnalisés avec AGSL.

Effets graphiques personnalisés avec AGSL

Android 16 ajoute RuntimeColorFilter et RuntimeXfermode, ce qui vous permet de créer des effets complexes tels que le seuil, le sépia et la saturation de la teinte, et de les appliquer aux appels de dessin. Depuis Android 13, vous pouvez utiliser AGSL pour créer des RuntimeShaders personnalisés qui étendent Shader. La nouvelle API reflète cela, en ajoutant un RuntimeColorFilter compatible avec AGSL qui étend ColorFilter et un effet Xfermode qui vous permet d'implémenter un compositing et un mélange personnalisés basés sur AGSL entre les pixels source et de destination.

private val thresholdEffectString = """
    uniform half threshold;

    half4 main(half4 c) {
        half luminosity = dot(c.rgb, half3(0.2126, 0.7152, 0.0722));
        half bw = step(threshold, luminosity);
        return bw.xxx1 * c.a;
    }"""

fun setCustomColorFilter(paint: Paint) {
   val filter = RuntimeColorFilter(thresholdEffectString)
   filter.setFloatUniform(0.5);
   paint.colorFilter = filter
}

Connectivité

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

Portée avec sécurité renforcée

Android 16 adds support for robust security features in Wi-Fi location on supported devices with Wi-Fi 6's 802.11az, allowing apps to combine the higher accuracy, greater scalability, and dynamic scheduling of the protocol with security enhancements including AES-256-based encryption and protection against MITM attacks. This allows it to be used more safely in proximity use cases, such as unlocking a laptop or a vehicle door. 802.11az is integrated with the Wi-Fi 6 standard, leveraging its infrastructure and capabilities for wider adoption and easier deployment.

API de portée génériques

Android 16 inclut la nouvelle RangingManager, qui permet de déterminer la distance et l'angle sur le matériel compatible entre l'appareil local et un appareil distant. RangingManager prend en charge l'utilisation de diverses technologies de mesure de la distance, telles que la mesure du canal BLE, la mesure de la distance BLE basée sur l'RSSI, la bande ultralarge et le temps aller-retour Wi-Fi.

Présence d'appareils dans le gestionnaire d'appareils associés

In Android 16, new APIs are being introduced for binding your companion app service. Service will be bound when BLE is in range and Bluetooth is connected and service will be unbound when BLE is out of range or Bluetooth is disconnected. App will receives a new 'onDevicePresenceEvent()' callback based on various of DevicePresenceEvent. More details can be found in 'startObservingDevicePresence(ObservingDevicePresenceRequest)'.

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.

Vidéo professionnelle avancée

Android 16 est compatible avec le codec Advanced Professional Video (APV), conçu pour l'enregistrement et la post-production vidéo de haute qualité de niveau professionnel.

La norme de codec APV présente les caractéristiques suivantes:

  • Qualité vidéo sans perte perceptible (proche de la qualité vidéo brute)
  • Codage intra-frame uniquement à faible complexité et à débit élevé (sans prédiction de domaine de pixels) pour mieux prendre en charge les workflows de montage
  • Compatibilité avec une plage de débit binaire élevée allant jusqu'à quelques Gbit/s pour les contenus en résolution 2K, 4K et 8K, grâce à un schéma de codage d'entropie léger
  • Mosaïque de frames pour le contenu immersif et pour activer l'encodage et le décodage parallèles
  • Compatibilité avec différents formats et profondeurs de bits d'échantillonnage chroma
  • Prise en charge du décodage et du réencodage multiples sans dégradation importante de la qualité visuelle
  • Prise en charge de la vidéo multivue et des vidéos auxiliaires telles que la profondeur, l'alpha et l'aperçu
  • Compatibilité avec HDR10/10+ et métadonnées définies par l'utilisateur

Une implémentation de référence de l'APV est fournie via le projet OpenAPV. Android 16 implémentera la prise en charge du profil APV 422-10, qui fournit un échantillonnage de couleur YUV 422 avec un encodage 10 bits et des débits cibles pouvant atteindre 2 Gbit/s.

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 ajoute ACTIVITY_INTENSITY, un type de données défini conformément aux directives 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 l'autorisation explicite de l'utilisateur.

Privacy Sandbox sur Android

Android 16 incorporates the latest version of the Privacy Sandbox on Android, part of our ongoing work to develop technologies where users know their privacy is protected. Our website has more about the Privacy Sandbox on Android developer beta program to help you get started. Check out the SDK Runtime which allows SDKs to run in a dedicated runtime environment separate from the app they are serving, providing stronger safeguards around user data collection and sharing.

Sécurité

Android 16 inclut des fonctionnalités qui vous aident à améliorer la sécurité de votre application et à protéger ses données.

API de partage de clés

Android 16 ajoute des API permettant de partager l'accès aux clés Android Keystore avec d'autres applications. La nouvelle classe KeyStoreManager permet d'accorder et de révoquer l'accès aux clés par uid d'application, et inclut une API permettant aux applications d'accéder aux clés partagées.

Facteurs de forme d'appareil

Android 16 permet à vos applications de tirer le meilleur parti des facteurs de forme d'Android.

Framework standardisé de qualité d'image et audio pour les téléviseurs

Le nouveau package MediaQuality d'Android 16 expose un ensemble d'API standardisées pour accéder aux profils audio et image, ainsi qu'aux paramètres liés au matériel. Cela permet aux applications de streaming d'interroger les profils et de les appliquer aux contenus multimédias de manière dynamique:

  • Les films masterisés avec une plage dynamique plus large nécessitent une plus grande précision des couleurs pour voir les détails subtils dans les ombres et s'adapter à la lumière ambiante. Un profil qui privilégie la précision des couleurs à la luminosité peut donc être approprié.
  • Les événements sportifs en direct sont souvent masterisés avec une plage dynamique étroite, mais sont souvent regardés en plein jour. Un profil qui privilégie la luminosité à la précision des couleurs peut donc donner de meilleurs résultats.
  • Les contenus entièrement interactifs nécessitent un traitement minimal pour réduire la latence et une fréquence d'images plus élevée. C'est pourquoi de nombreux téléviseurs sont livrés avec un profil de jeu.

L'API permet aux applications de basculer entre les profils et aux utilisateurs de régler les téléviseurs compatibles pour qu'ils correspondent au mieux à leur contenu.

Internationalisation

Android 16 ajoute des fonctionnalités qui améliorent l'expérience utilisateur lorsqu'un appareil est utilisé dans différentes langues.

Texte vertical

Android 16 ajoute une compatibilité de bas niveau pour l'affichage et la mesure du texte verticalement afin de fournir une compatibilité d'écriture verticale de base aux développeurs de bibliothèques. Cette fonctionnalité est particulièrement utile pour les langues comme le japonais, qui utilisent couramment des systèmes d'écriture verticale. Un nouvel indicateur, VERTICAL_TEXT_FLAG, a été ajouté à la classe Paint. Lorsque cet indicateur est défini à l'aide de Paint.setFlags, les API de mesure du texte de Paint indiquent les avances verticales au lieu des avances horizontales, et Canvas dessine le texte verticalement.

val text = "「春は、曙。」"
Box(
    Modifier.padding(innerPadding).background(Color.White).fillMaxSize().drawWithContent {
        drawIntoCanvas { canvas ->
            val paint = Paint().apply { textSize = 64.sp.toPx() }
            // Draw text vertically
            paint.flags = paint.flags or VERTICAL_TEXT_FLAG
            val height = paint.measureText(text)
            canvas.nativeCanvas.drawText(
                text,
                0,
                text.length,
                size.width / 2,
                (size.height - height) / 2,
                paint
            )
        }
    }
) {}

Personnalisation du système de mesure

Les utilisateurs peuvent désormais personnaliser leur système de mesure dans les préférences régionales dans les paramètres. La préférence de l'utilisateur est incluse dans le code de paramètres régionaux. Vous pouvez donc enregistrer un BroadcastReceiver sur ACTION_LOCALE_CHANGED pour gérer les modifications de configuration des paramètres régionaux lorsque les préférences régionales changent.

L'utilisation de formateurs peut vous aider à adapter l'expérience locale. Par exemple, "0,5 pouce" en anglais (États-Unis) correspond à "12,7 mm" pour un utilisateur qui a défini son téléphone sur l'anglais (Danemark) ou qui utilise son téléphone en anglais (États-Unis) avec le système métrique comme système de mesure préféré.

Pour accéder à ces paramètres, ouvrez l'application Paramètres et accédez à System >Languages & region (Système > Langues et région).