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

  • 此预览版适用于 Android 的下一个主要版本,计划于 2025 年第 2 季度发布。此版本与我们过去的所有 API 版本类似,我们可以进行计划性的行为更改,这些更改通常与 targetSdkVersion 相关联。
  • 我们计划提前一个季度(2021 年第 2 季度,而非之前的第 3 季度)发布主要版本,以便更好地与整个生态系统中的设备发布时间表保持一致,让更多设备能够更早地搭载 Android 主要版本。由于主要版本将于第 2 季度发布,因此您需要比往年提前几个月进行年度兼容性测试,以确保您的应用已做好准备。
  • 我们计划在 2025 年第 4 季度再发布一次,届时还将推出新的开发者 API。2025 年只有第二季度的主要版本包含可能影响应用的计划行为变更。

除了新的开发者 API 之外,第 4 季度次要版本还将包含功能更新、优化和 bug 修复;其中不会包含任何会影响应用的行为变更。

2025 年 Android 版本的时间轴视图,请注意,25Q2 版本是一个主要版本,25Q4 版本是一个次要版本。

我们将继续每季度发布 Android 版本。在 API 版本之间,第 1 季度和第 3 季度的更新将提供增量更新,以帮助确保持续提供高质量的服务。我们正积极与设备合作伙伴合作,将 Q2 版本推广到尽可能多的设备。

在主要版本和次要版本中使用新 API

目前,使用 SDK_INT 常量与 VERSION_CODES 结合使用,即可通过检查 API 级别来保护代码块。我们将继续支持主要 Android 版本。

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

新的 SDK_INT_FULL 常量可用于针对主要版本和次要版本进行 API 检查,并使用新的 VERSION_CODES_FULL 枚举。

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

您还可以使用 Build.getMinorSdkVersion() 方法仅获取 SDK 次要版本。

val minorSdkVersion = Build.getMinorSdkVersion(VERSION_CODES_FULL.BAKLAVA)

这些 API 尚未最终确定,可能会发生变化,因此如果您有任何疑虑,请向我们发送反馈

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 添加了新 API,可帮助您在手势导航中启用预测性返回系统动画,例如“返回主屏幕”动画。通过使用新的 PRIORITY_SYSTEM_NAVIGATION_OBSERVER 注册 onBackInvokedCallback,您的应用可以在系统处理返回导航时接收常规的 onBackInvoked 调用,而不会影响正常的返回导航流程。

Android 16 还添加了 finishAndRemoveTaskCallback()moveTaskToBackCallback。通过向 OnBackInvokedDispatcher 注册这些回调,系统可以在调用返回手势时触发特定行为并播放相应的提前动画。

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

在 Android 16 中,动态壁纸框架将获得一个新的 content API,以应对由用户驱动的动态壁纸带来的挑战。目前,包含用户提供的内容的实时壁纸需要复杂的服务专用实现。Android 16 引入了 WallpaperDescriptionWallpaperInstance。借助 WallpaperDescription,您可以识别同一服务中的动态壁纸的不同实例。例如,如果某张壁纸同时在主屏幕和锁定屏幕上显示,则这两种情况下显示的内容可能各不相同。壁纸选择器和 WallpaperManager 会使用此元数据更好地向用户呈现壁纸,从而简化创建多样化个性化动态壁纸体验的过程。

Performances et batterie

Android 16 introduit des API qui permettent de 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 引入了 getCpuHeadroomgetGpuHeadroom API,旨在为游戏和资源密集型应用提供可用 CPU 和 GPU 资源的估算值。通过这些方法,您可以评估应用或游戏如何以最佳方式改善系统运行状况,尤其是在与用于检测热节流的其他 Android 动态性能框架 (ADPF) API 搭配使用时。

在受支持的设备上使用 CpuHeadroomParamsGpuHeadroomParams,您可以自定义用于计算余量的时间范围,并在平均资源可用性或最低资源可用性之间进行选择。这有助于您相应地减少 CPU 或 GPU 资源用量,从而提升用户体验并延长电池续航时间。

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 ajoute des API supplémentaires pour améliorer la sémantique de l'UI, ce qui permet d'améliorer la cohérence pour les utilisateurs qui s'appuient sur des services d'accessibilité tels que TalkBack.

Ajouter un contour au texte pour optimiser le contraste

Les utilisateurs malvoyants ont souvent une sensibilité au contraste réduite, ce qui rend difficile la distinction des objets de leur arrière-plan. Pour aider ces utilisateurs, Android 16 introduit le texte en contour, qui remplace le texte à contraste élevé. Il dessine une zone plus contrastée autour du texte pour améliorer considérablement sa lisibilité.

Android 16 contient de nouvelles API AccessibilityManager pour permettre à vos applications de vérifier ou d'enregistrer un écouteur pour voir si ce mode est activé. Cela permet principalement aux boîtes à outils d'UI telles que Compose d'offrir une expérience visuelle similaire. Si vous gérez une bibliothèque UI Toolkit ou si votre application effectue un rendu de texte personnalisé qui contourne la classe android.text.Layout, vous pouvez l'utiliser pour savoir quand le texte en contour est activé.

Texte avec contraste amélioré avant et après la nouvelle fonctionnalité d'accessibilité du texte avec contour d'Android 16

Durée ajoutée à TtsSpan

Android 16 étend TtsSpan avec un TYPE_DURATION, composé de ARG_HOURS, ARG_MINUTES et ARG_SECONDS. Vous pouvez ainsi annoter directement la durée, ce qui garantit une sortie de synthèse vocale précise et cohérente avec des services tels que TalkBack.

Prendre en charge les éléments avec plusieurs libellés

Android permet actuellement aux éléments d'interface utilisateur de dériver leur libellé d'accessibilité à partir d'un autre. Il permet désormais d'associer plusieurs libellés, un scénario courant dans le contenu Web. En introduisant une API basée sur des listes dans AccessibilityNodeInfo, Android peut prendre en charge directement ces relations multi-libellés. Dans le cadre de ce changement, nous avons abandonné AccessibilityNodeInfo#setLabeledBy et #getLabeledBy au profit de #addLabeledBy, #removeLabeledBy et #getLabeledByList.

Amélioration de la compatibilité avec les éléments extensibles

Android 16 ajoute des API d'accessibilité qui vous permettent de transmettre l'état développé ou réduit des éléments interactifs, tels que les menus et les listes extensibles. En définissant l'état développé à l'aide de setExpandedState et en distribuant des AccessibilityEvents TYPE_WINDOW_CONTENT_CHANGED avec un type de modification de contenu CONTENT_CHANGE_TYPE_EXPANDED, vous pouvez vous assurer que les lecteurs d'écran tels que TalkBack annoncent les changements d'état, offrant ainsi une expérience utilisateur plus intuitive et inclusive.

Barres de progression indéterminées

Android 16 ajoute RANGE_TYPE_INDETERMINATE, ce qui vous permet d'exposer RangeInfo pour les widgets ProgressBar déterminés et indéterminés, ce qui permet à des services tels que TalkBack de fournir des commentaires plus cohérents pour les indicateurs de progression.

Case à cocher à trois états

Les nouvelles méthodes AccessibilityNodeInfo getChecked et setChecked(int) d'Android 16 acceptent désormais un état "partiellement coché" en plus des états "coché" et "non coché". Cette valeur remplace les valeurs booléennes isChecked et setChecked(boolean), obsolètes.

Descriptions supplémentaires

Lorsqu'un service d'accessibilité décrit un ViewGroup, il combine les libellés de contenu de ses vues enfants. Si vous fournissez un contentDescription pour le ViewGroup, les services d'accessibilité supposent que vous remplacez également la description des vues enfants non sélectionnables. Cela peut poser problème si vous souhaitez ajouter un libellé à un menu déroulant (par exemple, "Famille de polices") tout en conservant la sélection actuelle à des fins d'accessibilité (par exemple, "Roboto"). Android 16 ajoute setSupplementalDescription afin que vous puissiez fournir du texte fournissant des informations sur un ViewGroup sans remplacer les informations de ses enfants.

Champs obligatoires du formulaire

Android 16 ajoute setFieldRequired à AccessibilityNodeInfo afin que les applications puissent indiquer à un service d'accessibilité que la saisie dans un champ de formulaire est obligatoire. Il s'agit d'un scénario important pour les utilisateurs qui remplissent de nombreux types de formulaires, même des éléments aussi simples qu'une case à cocher obligatoire pour les conditions d'utilisation, qui les aident à identifier de manière cohérente les champs obligatoires et à passer rapidement d'un champ à l'autre.

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.

Contrôle du 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 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. De nouvelles actions Intent permettent de capturer plus facilement des photos en mouvement. Nous continuons également d'améliorer les images Ultra HDR en prenant en charge l'encodage HEIC et de nouveaux paramètres de la norme ISO 21496-1 (version préliminaire).

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

为了帮助应用了解何时切换到夜间模式相机会话以及何时从夜间模式相机会话切换出,Android 16 添加了 EXTENSION_NIGHT_MODE_INDICATOR。如果受支持,则可在 Camera2 内的 CaptureResult 中使用。

这是我们在Instagram 如何让用户拍出令人惊艳的低光照片博文中提到的即将推出的 API。该博文提供了有关如何实现夜间模式的实用指南,并附有一份案例研究,该案例研究将应用内夜间模式照片质量的提升与通过应用内相机分享的照片数量的增加联系起来。

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

标准动态范围 (SDR) 与高动态范围 (HDR) 图片质量对比示意图。

Android 16 继续致力于通过 UltraHDR 图片提供出色的图片质量。它添加了对 HEIC 文件格式的 UltraHDR 图片的支持。这些图片将获得 ImageFormat 类型 HEIC_ULTRAHDR,并包含类似于现有 UltraHDR JPEG 格式的嵌入式增益图。我们还在努力为 UltraHDR 添加 AVIF 支持,敬请期待。

此外,Android 16 在 UltraHDR 中实现了 ISO 21496-1 草稿标准中的其他参数,包括能够获取和设置应应用增益图算法的色彩空间,以及支持使用 SDR 增益图的 HDR 编码基础图片。

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

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

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

Android 16 中的新 MediaQuality 软件包公开了一组标准化 API,用于访问音频和图片配置文件以及与硬件相关的设置。这样,在线播放应用就可以查询配置文件并将其动态应用于媒体:

  • 使用更大动态范围进行母版制作的电影需要更高的色彩准确度,才能看清阴影中的细微细节并根据环境光线进行调整,因此,最好使用色彩准确度优先于亮度的配置文件。
  • 体育赛事直播通常采用较窄的动态范围进行母版制作,但通常是在白天观看,因此偏向亮度而非色彩准确度的配置文件可以获得更好的效果。
  • 完全交互式内容需要尽可能减少处理以缩短延迟时间,并且需要更高的帧速率,因此许多电视都附带游戏配置文件。

借助此 API,应用可以在个人资料之间切换,用户可以享受调整支持的电视,以便尽可能适合其内容。

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

用户现在可以在“设置”中的地区偏好设置中自定义测量系统。用户偏好设置包含在语言区域代码中,因此您可以在 ACTION_LOCALE_CHANGED 上注册 BroadcastReceiver,以便在地区偏好设置发生更改时处理语言区域配置更改。

使用格式设置程序有助于提供符合当地体验的服务。例如,对于将手机设置为英语(丹麦)或将手机设置为英语(美国)并将公制作为首选测量系统的用户,“0.5 in”的英语(美国)对应于“12,7 mm”。

如需找到这些设置,请打开“设置”应用,然后依次前往系统 > 语言和地区