Présentation des fonctionnalités et des API

Android 14 offre aux développeurs de nouvelles fonctionnalités et API de qualité. Les sections suivantes vous présentent les nouvelles fonctionnalités disponibles pour vos applications et leurs nouvelles API.

Pour obtenir une liste détaillée des API ajoutées, modifiées et supprimées, consultez le rapport de différences des API. Pour en savoir plus sur les API ajoutées, consultez la documentation de référence des API Android. Pour Android 14, recherchez les API ajoutées au niveau d'API 34. Pour savoir dans quels domaines les changements de plate-forme peuvent affecter vos applications, consultez les modifications de comportement d'Android 14 pour les applications ciblant Android 14 et pour toutes les applications.

Internationalisation

Préférences linguistiques par application

Android 14 expands on the per-app language features that were introduced in Android 13 (API level 33) with these additional capabilities:

  • Automatically generate an app's localeConfig: Starting with Android Studio Giraffe Canary 7 and AGP 8.1.0-alpha07, you can configure your app to support per-app language preferences automatically. Based on your project resources, the Android Gradle plugin generates the LocaleConfig file and adds a reference to it in the final manifest file, so you no longer have to create or update the file manually. AGP uses the resources in the res folders of your app modules and any library module dependencies to determine the locales to include in the LocaleConfig file.

  • Dynamic updates for an app's localeConfig: Use the setOverrideLocaleConfig() and getOverrideLocaleConfig() methods in LocaleManager to dynamically update your app's list of supported languages in the device's system settings. Use this flexibility to customize the list of supported languages per region, run A/B experiments, or provide an updated list of locales if your app utilizes server-side pushes for localization.

  • App language visibility for input method editors (IMEs): IMEs can utilize the getApplicationLocales() method to check the language of the current app and match the IME language to that language.

API Grammatical Inflection

3 milliards de personnes parlent des langues genrées : des langues dont les catégories grammaticales, telles que les noms, verbes, adjectifs et prépositions, s'accordent en fonction du genre des personnes et des objets auxquels on s'adresse ou dont on parle. Traditionnellement, de nombreuses langues genrées utilisent le genre grammatical masculin comme genre par défaut ou générique.

S'adresser à une personne en utilisant le mauvais genre grammatical, par exemple s'adresser à une femme en utilisant le genre masculin, peut avoir un impact négatif sur son comportement et son attitude. En revanche, une interface utilisateur dont le langage reflète correctement le genre grammatical de l'utilisateur ou de l'utilisatrice peut améliorer l'engagement et fournir une expérience utilisateur plus personnalisée et naturelle.

Pour vous aider à localiser une UI axée sur l'utilisateur dans une langue genrée, Android 14 introduit l'API Grammatical Inflection, qui permet d'ajouter une prise en charge du genre grammatical sans refactoriser votre application.

Préférences régionales

Les préférences régionales permettent aux utilisateurs de personnaliser les unités de température, le premier jour de la semaine et les systèmes de numérotation. Une personne européenne vivant aux États-Unis peut préférer que les unités de température soient exprimées en Celsius plutôt qu'en Fahrenheit, et que les applications considèrent le lundi comme le début de la semaine et non le dimanche, comme c'est le cas aux États-Unis.

Les nouveaux menus des paramètres Android correspondant à ces préférences offrent aux utilisateurs un emplacement centralisé et visible pour modifier les préférences des applications. Ces préférences sont également conservées lors de la sauvegarde et de la restauration. Plusieurs API et intents, tels que getTemperatureUnit et getFirstDayOfWeek, autorisent votre application l'accès en lecture aux préférences utilisateur afin que votre application puisse ajuster la façon dont elle affiche les informations. Vous pouvez également 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.

Pour accéder à ces paramètres, ouvrez l'application Paramètres et accédez à System > Languages & input > Regional preferences (Système > Langues et saisie > Préférences régionales).

Écran des préférences régionales dans les paramètres système Android.
Options de température pour les préférences régionales dans les paramètres système Android

Accessibilité

Mise à l'échelle non linéaire de la police à 200 %

À partir d'Android 14, le système prend en charge la mise à l'échelle des polices jusqu'à 200 %, offrant ainsi aux utilisateurs déficients visuels des options d'accessibilité supplémentaires qui respectent les consignes d'accessibilité du contenu Web (WCAG).

Pour éviter que les éléments de texte de grande taille ne soient trop grands à l'écran, le système applique une courbe de mise à l'échelle non linéaire. Cette stratégie de mise à l'échelle signifie que le texte de grande taille n'a pas le même niveau de mise à l'échelle que le texte de petite taille. La mise à l'échelle non linéaire de la police permet de préserver la hiérarchie proportionnelle entre des éléments de différentes tailles, tout en limitant les problèmes liés à la mise à l'échelle linéaire du texte à des degrés élevés (par exemple, le texte coupé ou le texte qui est plus difficile à lire sur de très grands écrans).

Tester votre application avec la mise à l'échelle non linéaire de la police

Activez la taille de police maximale dans les paramètres d'accessibilité d'un appareil pour tester votre application.

Si vous utilisez déjà des unités de pixels mis à l'échelle (sp) pour définir la taille du texte, ces d'autres options et des améliorations de scaling sont appliquées automatiquement du texte dans votre application. Toutefois, vous devez quand même effectuer des tests de l'interface utilisateur avec la taille de police activée (200%) pour vous assurer que votre application les applique correctement et peut s'adapter à des tailles de police plus grandes sans nuire à la facilité d'utilisation.

Pour activer la taille de police 200 %, procédez comme suit :

  1. Ouvrez l'application Paramètres, puis accédez à Accessibility > Display size and text (Accessibilité > Taille d'affichage et texte).
  2. Pour l'option Font size (Taille de la police), appuyez sur l'icône plus (+) jusqu'à ce que le paramètre de taille de police maximale soit activé, comme illustré sur l'image.

Utiliser des unités de pixels mis à l'échelle (sp) pour les tailles de texte

N'oubliez pas de toujours spécifier la taille du texte en unités sp. Lorsque votre application utilise des unités de pixels mis à l'échelle, Android peut appliquer la taille de texte préférée de l'utilisateur et la mettre à l'échelle.

N'utilisez pas les unités de pixels mis à l'échelle pour les marges intérieures ni ne définissez les hauteurs de vue en supposant une marge intérieure implicite. Avec une mise à l'échelle non linéaire de la police, les dimensions des pixels mis à l'échelle peuvent ne pas être proportionnelles. Par conséquent, 4sp + 20sp peut ne pas être égal à 24sp.

Convertir les unités de pixels mis à l'échelle (sp)

Utilisez TypedValue.applyDimension() pour convertir des unités de sp en pixels et TypedValue.deriveDimension() pour convertir des pixels en sp. Ces méthodes appliquent automatiquement la courbe de mise à l'échelle non linéaire appropriée.

Évitez de coder les équations en dur en utilisant Configuration.fontScale ou DisplayMetrics.scaledDensity. La mise à l'échelle de la police n'étant pas linéaire, le champ scaledDensity n'est plus précis. Le champ fontScale ne doit être utilisé qu'à des fins d'information, car les polices ne sont plus mises à l'échelle avec une seule valeur scalaire.

Utiliser des unités sp pour lineHeight

Toujours définir android:lineHeight à l'aide d'unités de sp de dp afin que la hauteur de la ligne s'adapte à votre texte. Sinon, si votre texte est de sp, mais votre lineHeight est en dp ou px, elle n'est pas à l'échelle et semble surchargée. TextView corrige automatiquement les lineHeight pour qu'elles correspondent proportions sont conservées, mais uniquement si textSize et lineHeight sont tous les deux défini en unités de pixels mis à l'échelle.

Appareil photo et médias

Ultra HDR pour les images

An illustration of Standard Dynamic Range (SDR) versus High Dynamic Range (HDR) image quality.

Android 14 adds support for High Dynamic Range (HDR) images that retain more of the information from the sensor when taking a photo, which enables vibrant colors and greater contrast. Android uses the Ultra HDR format, which is fully backward compatible with JPEG images, allowing apps to seamlessly interoperate with HDR images, displaying them in Standard Dynamic Range (SDR) as needed.

Rendering these images in the UI in HDR is done automatically by the framework when your app opts in to using HDR UI for its Activity Window, either through a manifest entry or at runtime by calling Window.setColorMode(). You can also capture compressed Ultra HDR still images on supported devices. With more colors recovered from the sensor, editing in post can be more flexible. The Gainmap associated with Ultra HDR images can be used to render them using OpenGL or Vulkan.

Zoom, mise au point, post-visualisation et plus encore dans les extensions de caméras

Android 14 upgrades and improves camera extensions, allowing apps to handle longer processing times, which enables improved images using compute-intensive algorithms like low-light photography on supported devices. These features give users an even more robust experience when using camera extension capabilities. Examples of these improvements include:

Zoom dans le capteur

When REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE in CameraCharacteristics contains SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW, your app can use advanced sensor capabilities to give a cropped RAW stream the same pixels as the full field of view by using a CaptureRequest with a RAW target that has stream use case set to CameraMetadata.SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW. By implementing the request override controls, the updated camera gives users zoom control even before other camera controls are ready.

Audio USB sans perte

Android 14 est compatible avec les formats audio sans perte pour des expériences audiophiles via des casques filaires USB. Vous pouvez interroger un appareil USB pour ses attributs de mixeur préférés, enregistrer un écouteur pour les modifications apportées aux attributs de mixeur préférés et configurer les attributs de mixeur à l'aide de la classe AudioMixerAttributes. Cette classe représente le format, comme le masque de canal, le taux d'échantillonnage et le comportement du mixeur audio. La classe permet d'envoyer directement l'audio, sans mélange, réglage du volume ni effets de traitement.

Productivité et outils pour les développeurs

Gestionnaire d'identifiants

Android 14 adds Credential Manager as a platform API, with additional support back to Android 4.4 (API level 19) devices through a Jetpack Library using Google Play services. Credential Manager aims to make sign-in easier for users with APIs that retrieve and store credentials with user-configured credential providers. Credential Manager supports multiple sign-in methods, including username and password, passkeys, and federated sign-in solutions (such as Sign-in with Google) in a single API.

Passkeys provide many advantages. For example, passkeys are built on industry standards, can work across different operating systems and browser ecosystems, and can be used with both websites and apps.

For more information, see the Credential Manager and passkeys documentation and the blogpost about Credential Manager and passkeys.

Santé Connect

Health Connect is an on-device repository for user health and fitness data. It allows users to share data between their favorite apps, with a single place to control what data they want to share with these apps.

On devices running Android versions prior to Android 14, Health Connect is available to download as an app on the Google Play store. Starting with Android 14, Health Connect is part of the platform and receives updates through Google Play system updates without requiring a separate download. With this, Health Connect can be updated frequently, and your apps can rely on Health Connect being available on devices running Android 14 or higher. Users can access Health Connect from the Settings in their device, with privacy controls integrated into the system settings.

Users can get started using Health Connect without a separate app download on devices running Android 14 or higher.
Users can control which apps have access to their health and fitness data through system settings.

Health Connect includes several new features in Android 14, such as exercise routes, allowing users to share a route of their workout which can be visualized on a map. A route is defined as a list of locations saved within a window of time, and your app can insert routes into exercise sessions, tying them together. To ensure that users have complete control over this sensitive data, users must allow sharing individual routes with other apps.

For more information, see the Health Connection documentation and the blogpost on What's new in Android Health.

Mises à jour OpenJDK 17

Android 14 poursuit le travail d'actualisation des principales bibliothèques Android afin de s'adapter aux fonctionnalités des dernières versions d'OpenJDK LTS, y compris les mises à jour de la bibliothèque et la compatibilité avec le langage Java 17 pour les développeurs d'applications et de plates-formes.

Les fonctionnalités et améliorations suivantes sont incluses :

  • Mise à jour d'environ 300 classes java.base pour la prise en charge de Java 17.
  • Les blocs de texte, qui introduisent des littéraux de chaîne multilignes dans le langage de programmation Java.
  • La correspondance de structure pour instanceof, qui permet de traiter un objet comme ayant un type spécifique dans une instanceof sans aucune variable supplémentaire.
  • Les classes scellées, qui vous permettent de limiter les classes et les interfaces pouvant les étendre ou les implémenter.

Grâce aux mises à jour du système Google Play (projet Mainline), plus de 600 millions d'appareils sont compatibles avec les dernières mises à jour d'Android Runtime (ART) qui incluent ces modifications. Tout ceci fait partie de notre engagement à fournir aux applications un environnement plus cohérent et sécurisé sur tous les appareils, et à proposer de nouvelles fonctionnalités aux utilisateurs indépendamment des versions de la plate-forme.

Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.

Améliorations apportées aux plates-formes de téléchargement d'applications

Android 14 introduit plusieurs API PackageInstaller qui permettent aux plates-formes de téléchargement d'applications d'améliorer leur expérience utilisateur.

Demander l'autorisation de l'installation avant le téléchargement

L'installation ou la mise à jour d'une application peut nécessiter l'autorisation de l'utilisateur. Par exemple, lorsqu'un programme d'installation qui utilise l'autorisation REQUEST_INSTALL_PACKAGES tente d'installer une nouvelle application. Dans les versions précédentes d'Android, les plates-formes de téléchargement d'applications ne pouvaient demander l'autorisation de l'utilisateur qu'une fois les APK écrits dans la session d'installation et que la session était lancée.

À partir d'Android 14, la méthode requestUserPreapproval() permet aux installateurs de demander l'autorisation de l'utilisateur avant de lancer la session d'installation. Cette amélioration permet à une plate-forme de téléchargement d'applications de différer le téléchargement des APK jusqu'à ce que l'installation ait été autorisée par l'utilisateur. En outre, une fois qu'un utilisateur a autorisé l'installation de l'application, la plate-forme de téléchargement d'applications peut la télécharger et l'installer en arrière-plan sans interrompre l'utilisateur.

Revendiquer la responsabilité des prochaines mises à jour

La méthode setRequestUpdateOwnership() permet à un programme d'installation d'indiquer au système qu'il a l'intention d'être responsable des futures mises à jour d'une application qu'il installe. Cette fonctionnalité active l'application forcée de la propriété de la mise à jour, ce qui signifie que seul le propriétaire des mises à jour est autorisé à installer des mises à jour automatiques de l'application. L'application forcée de la propriété de la mise à jour permet de s'assurer que les utilisateurs ne reçoivent des mises à jour que depuis la plate-forme de téléchargement d'applications attendue.

Tout autre programme d'installation, y compris ceux utilisant l'autorisation INSTALL_PACKAGES, doit recevoir une approbation explicite de l'utilisateur pour installer une mise à jour. Si un utilisateur décide de procéder à une mise à jour à partir d'une autre source, la propriété de la mise à jour est perdue.

Mettre à jour les applications au meilleur moment

Les plates-formes de téléchargement d'applications évitent généralement de mettre à jour une application en cours d'utilisation, car cela entraîne la fermeture des processus en cours d'exécution, ce qui peut potentiellement interrompre l'activité de l'utilisateur.

À partir d'Android 14, l'API InstallConstraints permet aux programmes d'installation de s'assurer que les mises à jour de leur application sont effectuées au moment opportun. Par exemple, une plate-forme de téléchargement d'applications peut appeler la méthode commitSessionAfterInstallConstraintsAreMet() pour s'assurer qu'une mise à jour n'est lancée que lorsque l'utilisateur n'interagit plus avec l'application en question.

Installer facilement des divisions facultatives

Avec les APK divisés, les fonctionnalités d'une application peuvent être distribuées dans des fichiers APK distincts plutôt que sous forme d'un APK monolithique. Les APK divisés permettent aux plates-formes de téléchargement d'applications d'optimiser la distribution des différents composants de l'application. Par exemple, les plates-formes de téléchargement d'applications peuvent être optimisées en fonction des propriétés de l'appareil cible. L'API PackageInstaller est compatible avec les divisions depuis son lancement au niveau d'API 22.

Dans Android 14, la méthode setDontKillApp() permet à un programme d'installation d'indiquer que les processus en cours d'exécution de l'application ne doivent pas être supprimés lorsque de nouvelles divisions sont installées. Les plates-formes de téléchargement d'applications peuvent utiliser cette fonctionnalité pour installer facilement les nouvelles fonctionnalités d'une application lorsque l'utilisateur l'utilise.

Bundles de métadonnées d'application

À partir d'Android 14, le programme d'installation du package Android vous permet de spécifier des métadonnées sur votre application, telles que les pratiques en matière de sécurité des données, à inclure sur les pages de la plate-forme de téléchargement d'applications telles que Google Play.

Détecter quand les utilisateurs prennent des captures d'écran de l'appareil

Pour créer une expérience plus standardisée, Android 14 introduit une API de détection des captures d'écran protégeant la confidentialité. Cette API permet aux applications d'enregistrer des rappels par activité. Ces rappels sont appelés, et l'utilisateur en est informé lorsqu'une capture d'écran est prise et que cette activité est visible.

Expérience utilisateur

Actions personnalisées Sharesheet et classement amélioré

Android 14 met à jour la Sharesheet du système afin de prendre en charge les actions personnalisées dans l'application et les résultats d'aperçu plus détaillés pour les utilisateurs.

Ajouter des actions personnalisées

Avec Android 14, votre application peut ajouter des actions personnalisées à la Sharesheet du système qu'elle appelle.

Capture d'écran des actions personnalisées dans la Sharesheet.

Améliorer le classement des cibles de partage direct

Android 14 utilise davantage de signaux provenant d'applications pour déterminer le classement des cibles de partage direct et fournir de meilleurs résultats à l'utilisateur. Pour fournir le signal le plus utile pour le classement, suivez les conseils pour améliorer le classement de vos cibles de partage direct. Les applications de communication peuvent également signaler l'utilisation des raccourcis pour les messages sortants et entrants.

Ligne de partage direct dans la Sharesheet, comme indiqué par 1

Prise en charge des animations intégrées et personnalisées pour la prévisualisation du Retour

Video: Predictive back animations

Android 13 introduced the predictive back-to-home animation behind a developer option. When used in a supported app with the developer option enabled, swiping back shows an animation indicating that the back gesture exits the app back to the home screen.

Android 14 includes multiple improvements and new guidance for Predictive Back:

With this Android 14 preview release, all features of Predictive Back remain behind a developer option. See the developer guide to migrate your app to predictive back, as well as the developer guide to creating custom in-app transitions.

Forçages par application des fabricants d'appareils à grand écran

Les forçages par application permettent aux fabricants d'appareils de modifier le comportement des applications sur les appareils à grand écran. Par exemple, le forçage FORCE_RESIZE_APP indique au système de redimensionner l'application pour qu'elle s'adapte aux dimensions d'affichage (en évitant le mode de compatibilité de taille), même si resizeableActivity="false" est défini dans le fichier manifeste de l'application.

Les remplacements sont destinés à améliorer l'expérience utilisateur sur les grands écrans.

Les nouvelles propriétés de fichier manifeste vous permettent de désactiver certains forçages du fabricant de l'appareil pour votre application.

Forçages par application pour les utilisateurs de grands écrans

Les forçages par application modifient le comportement des applications sur les appareils à grand écran. Par exemple, le forçage du fabricant de l'appareil OVERRIDE_MIN_ASPECT_RATIO_LARGE définit le format de l'application sur 16:9, quelle que soit la configuration de l'application.

Android 14 QPR1 permet aux utilisateurs d'appliquer des forçages par application à l'aide d'un nouveau menu des paramètres sur les appareils à grand écran.

Partager le contenu d'une appli sur l'écran

Le partage d'écran d'application permet aux utilisateurs de partager une fenêtre d'application au lieu de l'intégralité de l'écran de l'appareil lors de l'enregistrement du contenu de l'écran.

Avec le partage d'écran de l'application, la barre d'état, la barre de navigation, les notifications et d'autres éléments d'interface utilisateur du système sont exclus de l'écran partagé. Seul le contenu de l'application sélectionnée est partagé.

Le partage d'écran d'une application améliore la productivité et la confidentialité en permettant aux utilisateurs d'exécuter plusieurs applications, mais en limitant le partage de contenu à une seule application.

Réponse suggérée optimisée par un LLM dans Gboard sur un Pixel 8 Pro

On Pixel 8 Pro devices with the December Feature Drop, developers can try out higher-quality smart replies in Gboard powered by on-device Large Language Models (LLMs) running on Google Tensor.

This feature is available as a limited preview for US English in WhatsApp, Line, and KakaoTalk. It requires using a Pixel 8 Pro device with Gboard as your keyboard.

To try it out, first enable the feature in Settings > Developer Options > AiCore Settings > Enable Aicore Persistent.

Next, open a conversation in a supported app to see LLM-powered Smart Reply in Gboard's suggestion strip in response to incoming messages.

Gboard utilizes on-device LLMs to provide higher-quality smart replies.

Graphiques

Les chemins sont interrogeables et interpolables

L'API Path d'Android est un mécanisme puissant et flexible permettant de créer et d'afficher des graphiques vectoriels. Elle permet de tracer ou de remplir un tracé, de construire un tracé à partir de segments de ligne ou de courbes quadratiques ou cubiques, d'effectuer des opérations booléennes pour obtenir des formes encore plus complexes, ou tout cela simultanément. L'une des limites est la possibilité de savoir ce qui se trouve réellement dans un objet Path, une fois créés, les composants internes de l'objet sont opaques pour les appelants.

Pour créer un Path, appelez des méthodes telles que moveTo(), lineTo() et cubicTo() afin d'ajouter des segments de chemin. Cependant, il n'existe aucun moyen de lui demander quels sont les segments. Vous devez donc conserver ces informations au moment de la création.

À partir d'Android 14, vous pouvez interroger des chemins pour connaître leur contenu. Tout d'abord, vous devez obtenir un objet PathIterator à l'aide de l'API Path.getPathIterator :

Kotlin

val path = Path().apply {
    moveTo(1.0f, 1.0f)
    lineTo(2.0f, 2.0f)
    close()
}
val pathIterator = path.pathIterator

Java

Path path = new Path();
path.moveTo(1.0F, 1.0F);
path.lineTo(2.0F, 2.0F);
path.close();
PathIterator pathIterator = path.getPathIterator();

Vous pouvez ensuite appeler PathIterator pour itérer les segments un par un, en récupérant toutes les données nécessaires pour chaque segment. Cet exemple utilise des objets PathIterator.Segment, qui empaquettent les données pour vous:

Kotlin

for (segment in pathIterator) {
    println("segment: ${segment.verb}, ${segment.points}")
}

Java

while (pathIterator.hasNext()) {
    PathIterator.Segment segment = pathIterator.next();
    Log.i(LOG_TAG, "segment: " + segment.getVerb() + ", " + segment.getPoints());
}

PathIterator dispose également d'une version non attribuée de next() dans laquelle vous pouvez transmettre un tampon pour stocker les données de point.

L'interpolation est l'un des principaux cas d'utilisation des demandes de données formulées à Path. Par exemple, vous pouvez animer (ou transformer) entre deux chemins différents. Pour simplifier ce cas d'utilisation, Android 14 inclut également la méthode interpolate() sur Path. En supposant que les deux chemins aient la même structure interne, la méthode interpolate() crée un nouveau Path avec ce résultat interpolé. Cet exemple renvoie un tracé dont la forme est à mi-chemin (interpolation linéaire de 0,5) entre path et otherPath :

Kotlin

val interpolatedResult = Path()
if (path.isInterpolatable(otherPath)) {
    path.interpolate(otherPath, .5f, interpolatedResult)
}

Java

Path interpolatedResult = new Path();
if (path.isInterpolatable(otherPath)) {
    path.interpolate(otherPath, 0.5F, interpolatedResult);
}

La bibliothèque Jetpack graphics-path permet également d'utiliser des API similaires pour les versions antérieures d'Android.

Mailles personnalisées avec nuanceurs de vertex et de fragments

Android has long supported drawing triangle meshes with custom shading, but the input mesh format has been limited to a few predefined attribute combinations. Android 14 adds support for custom meshes, which can be defined as triangles or triangle strips, and can, optionally, be indexed. These meshes are specified with custom attributes, vertex strides, varying, and vertex and fragment shaders written in AGSL.

The vertex shader defines the varyings, such as position and color, while the fragment shader can optionally define the color for the pixel, typically by using the varyings created by the vertex shader. If color is provided by the fragment shader, it is then blended with the current Paint color using the blend mode selected when drawing the mesh. Uniforms can be passed into the fragment and vertex shaders for additional flexibility.

Rendu du tampon matériel pour Canvas

Pour faciliter l'utilisation de l'API Canvas d'Android pour dessiner avec une accélération matérielle dans un HardwareBuffer, Android 14 introduit HardwareBufferRenderer. Cette API est particulièrement utile lorsque votre cas d'utilisation implique une communication avec le système compositeur via SurfaceControl pour une faible latence un dessin.