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 familiariser 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.

Vous devez également examiner les domaines dans lesquels les changements de plate-forme peuvent affecter vos applications. 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 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.

Notifications axées sur la progression

Android 16 引入了以进度为中心的通知,可帮助用户顺畅地跟踪用户发起的端到端历程。

Notification.ProgressStyle 是一种新的通知样式,可让您创建以进度为中心的通知。主要用例包括共享车辆、送货和导航。在 Notification.ProgressStyle 类中,您可以使用细分来表示用户体验历程中的状态和里程碑。

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 就提供了对触感反馈致动器的控制。

Android 11 添加了对更复杂的触感反馈效果的支持,更高级的致动器可以通过设备定义的语义基元 VibrationEffect.Compositions 支持这些效果。

Android 16 添加了触感反馈 API,让应用能够定义触感反馈效果的振幅和频率曲线,同时抽象出设备功能之间的差异。

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 qu'Android Studio, Jetpack Compose et les bibliothèques Android Jetpack, nous cherchons 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.

Composant de démarrage 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

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.

API de marge dans ADPF

SystemHealthManager introduit les API getCpuHeadroom et getGpuHeadroom, conçues pour fournir aux jeux et aux applications gourmandes en ressources des estimations des ressources de processeur et de GPU disponibles. Ces méthodes vous permettent d'évaluer comment votre application ou votre jeu peut améliorer au mieux l'état du système, en particulier lorsqu'elles sont utilisées avec d'autres API Android Dynamic Performance Framework (ADPF) qui détectent le throttling thermique.

En utilisant CpuHeadroomParams et GpuHeadroomParams sur les appareils compatibles, vous pouvez personnaliser la période utilisée pour calculer la marge de manœuvre et choisir entre une disponibilité moyenne ou minimale des ressources. Cela peut vous aider à réduire l'utilisation des ressources du processeur ou du GPU en conséquence, ce qui améliore l'expérience utilisateur et l'autonomie de la batterie.

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 添加了其他 API 来增强界面语义,这有助于为依赖于无障碍服务(例如 TalkBack)的用户提高一致性。

为文字添加轮廓,以最大限度地提高文字对比度

视力较低的用户对对比度的敏感度通常较低,因此很难将对象与背景区分开来。为了帮助这些用户,Android 16 引入了轮廓文本,取代了高对比度文本,后者会在文本周围绘制较大的对比度区域,以大大提高可辨性。

Android 16 包含新的 AccessibilityManager API,可让您的应用检查注册监听器,以查看此模式是否已启用。这主要适用于 Compose 等界面工具包,以提供类似的视觉体验。如果您维护界面工具包库,或者您的应用执行绕过 android.text.Layout 类的自定义文本渲染,则可以使用此方法来了解何时启用轮廓文本。

Android 16 推出新的轮廓文本无障碍功能前后,对比度更高的文本

向 TtsSpan 添加了时长

Android 16 使用 TYPE_DURATION 扩展了 TtsSpan,其中包含 ARG_HOURSARG_MINUTESARG_SECONDS。这样,您就可以直接为时长添加注释,确保通过 TalkBack 等服务获得准确且一致的文本转语音输出。

支持具有多个标签的元素

Android 目前允许界面元素从其他元素派生其无障碍功能标签,现在还支持关联多个标签,这是 Web 内容中常见的情况。通过在 AccessibilityNodeInfo 中引入基于列表的 API,Android 可以直接支持这些多标签关系。在进行这项更改的过程中,我们已弃用 AccessibilityNodeInfo#setLabeledBy#getLabeledBy,改用 #addLabeledBy#removeLabeledBy#getLabeledByList

改进了对可展开元素的支持

Android 16 添加了无障碍功能 API,可让您传达互动元素(例如菜单和展开式列表)的展开或收起状态。通过使用 setExpandedState 设置展开状态,并使用 CONTENT_CHANGE_TYPE_EXPANDED 内容更改类型调度 TYPE_WINDOW_CONTENT_CHANGED AccessibilityEvents,您可以确保 TalkBack 等屏幕阅读器会读出状态更改,从而提供更直观、更包容的用户体验。

不确定进度条

Android 16 添加了 RANGE_TYPE_INDETERMINATE,让您可以为确定性和不确定性 ProgressBar 微件公开 RangeInfo,从而让 TalkBack 等服务能够更一致地为进度指示器提供反馈。

三态复选框

Android 16 中的新 AccessibilityNodeInfo getCheckedsetChecked(int) 方法现在除了“已选中”和“未选中”之外,还支持“部分选中”状态。此字段取代了已废弃的布尔值 isCheckedsetChecked(boolean)

补充说明

如果无障碍服务提供关于 ViewGroup 的说明,则会将来自其子视图的内容标签合并在一起。如果您为 ViewGroup 提供 contentDescription,无障碍服务会假定您还要覆盖不可聚焦的子视图的说明。如果您想为下拉菜单等内容添加标签(例如“字体系列”),同时保留当前的无障碍功能选择(例如“Roboto”),这可能会造成问题。Android 16 添加了 setSupplementalDescription,以便您提供用于提供 ViewGroup 相关信息的文本,而不会覆盖其子项中的信息。

必填表单字段

Android 16 向 AccessibilityNodeInfo 添加了 setFieldRequired,以便应用可以告知无障碍服务需要输入表单字段。对于填写各种类型表单的用户而言,这是一个重要的场景,即使是简单的必填条款及条件复选框,也能帮助用户始终如一地识别必填字段并在必填字段之间快速导航。

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

Android 16 新增了一项功能,让 LE Audio 助听器用户能够在助听器的内置麦克风和手机上的麦克风之间切换,以进行语音通话。在嘈杂的环境或助听器麦克风可能无法正常工作的其他情况下,这会很有帮助。

Contrôle du volume ambiant pour les appareils auditifs LEA

Android 16 adds the capability for users of LE Audio hearing aids to adjust the volume of ambient sound that is picked up by the hearing aid's microphones. This can be helpful in situations where background noise is too loud or too quiet.

Appareil photo

Android 16 améliore la prise en charge des utilisateurs de caméras professionnelles, en permettant l'exposition automatique hybride ainsi que des ajustements précis de la température et de la teinte des couleurs. Un nouvel indicateur de mode nuit aide votre application à savoir quand passer à une session de caméra en mode nuit et quand en sortir. Les nouvelles actions Intent permettent de capturer plus facilement des photos animées. Nous continuons également d'améliorer les images Ultra HDR en ajoutant la prise en charge de l'encodage HEIC et de nouveaux paramètres issus de la version préliminaire 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 et de la teinte des couleurs

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 en mode Nuit de l'appareil photo

To help your app know when to switch to and from a night mode camera session, Android 16 adds EXTENSION_NIGHT_MODE_INDICATOR. If supported, it's available in the CaptureResult within Camera2.

This is the API we briefly mentioned as coming soon in the How Instagram enabled users to take stunning low light photos blog post. That post is a practical guide on how to implement night mode together with a case study that links higher-quality in-app night mode photos with an increase in the number of photos shared from the in-app camera.

Actions d'intent de capture de photos animées

Android 16 ajoute des actions d'intent standards (ACTION_MOTION_PHOTO_CAPTURE et ACTION_MOTION_PHOTO_CAPTURE_SECURE), qui demandent à l'application Appareil photo de prendre une photo Mouvement et de la renvoyer.

Vous devez transmettre un EXTRA_OUTPUT supplémentaire pour contrôler l'emplacement où l'image sera écrite, ou un Uri via Intent.setClipData(ClipData). Si vous ne définissez pas de ClipData, il sera copié automatiquement lorsque vous appelez Context.startActivity(Intent).

Exemple de photo animée, montrant l'image fixe suivie de la lecture animée.

Améliorations apportées aux 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, comme 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.

Mesure de distance 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.

API de mesure 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

Dans Android 16, de nouvelles API sont introduites pour lier votre service d'application compagnon. Le service est lié lorsque le BLE est à portée et que le Bluetooth est connecté, et il est dissocié lorsque le BLE est hors de portée ou que le Bluetooth est déconnecté. L'application reçoit un nouveau rappel 'onDevicePresenceEvent()' en fonction de différents DevicePresenceEvent. Pour en savoir plus, consultez 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

照片选择器为用户提供了一种安全的内置授权方式,让用户可以向应用授予对本地存储空间和云端存储空间中所选图片和视频的访问权限,而不是对整个媒体库的访问权限。通过 Google 系统更新Google Play 服务组合使用模块化系统组件,该工具向后支持到 Android 4.4(API 级别 19)。只需几行代码即可与相关的 Android Jetpack 库集成。

Android 16 对照片选择器进行了以下改进:

  • 嵌入式照片选择器新 API,可让应用将照片选择器嵌入其视图层次结构中。这样,它就感觉像是应用中更为集成的一部分,同时仍可利用进程隔离功能,让用户能够选择媒体,而无需应用拥有过于宽泛的权限。为了最大限度地提高跨平台版本的兼容性并简化集成,如果您想集成嵌入式照片选择器,则需要使用即将推出的 Android Jetpack 库。
  • 照片选择器中的云搜索新的 API 可让 Android 照片选择器从云端媒体提供商中进行搜索。照片选择器中的搜索功能即将推出。

Vidéo Advanced Professional

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.

Nouveautés 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 à renforcer la sécurité de votre application et à protéger ses données.

API de partage de clés

Android 16 adds APIs that support sharing access to Android Keystore keys with other apps. The new KeyStoreManager class supports granting and revoking access to keys by app uid, and includes an API for apps to access shared keys.

Facteurs de forme des appareils

Android 16 permet à vos applications d'exploiter tout le potentiel des facteurs de forme d'Android.

Cadre 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 complètent 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).