Présentation des fonctionnalités et des API

Android 14 offre aux développeurs d'excellentes fonctionnalités et API. L'aide suivante pour vous familiariser avec les fonctionnalités de vos applications et commencer à utiliser les API associées.

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 en savoir plus sur les zones où les changements de plate-forme peuvent affecter vos applis, consultez Android 14 modifications de comportement pour les applications qui ciblent 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

Regional preferences enable users to personalize temperature units, the first day of the week, and numbering systems. A European living in the United States might prefer temperature units to be in Celsius rather than Fahrenheit and for apps to treat Monday as the beginning of the week instead of the US default of Sunday.

New Android Settings menus for these preferences provide users with a discoverable and centralized location to change app preferences. These preferences also persist through backup and restore. Several APIs and intents—such as getTemperatureUnit and getFirstDayOfWeek— grant your app read access to user preferences, so your app can adjust how it displays information. You can also register a BroadcastReceiver on ACTION_LOCALE_CHANGED to handle locale configuration changes when regional preferences change.

To find these settings, open the Settings app and navigate to System > Languages & input > Regional preferences.

Regional preferences screen in Android system settings.
Temperature options for regional preferences in Android system settings.

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

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

Android 14 prend en charge les images HDR (plage dynamique élevée) qui conservent davantage d'informations du capteur lors de la prise de vue, ce qui permet d'obtenir des couleurs plus vives et un contraste plus élevé. Android utilise le format Ultra HDR, qui est entièrement rétrocompatible avec les images JPEG. Il permet aux applications d'interagir de manière fluide avec les images HDR, en les affichant en plage dynamique standard (SDR) si nécessaire.

Le rendu de ces images dans l'UI en HDR est effectué automatiquement par le framework lorsque votre application active l'UI HDR pour sa fenêtre d'activité, soit via une entrée de fichier manifeste, soit au moment de l'exécution en appelant Window.setColorMode(). Vous pouvez également prendre des images fixes Ultra HDR compressées sur les appareils compatibles. Avec plus de couleurs récupérées à partir du capteur, le post-traitement peut être plus flexible. Le Gainmap associé aux images Ultra HDR peut être utilisé pour les afficher à l'aide d'OpenGL ou de Vulkan.

Zoom, Mise au point, Postview et plus dans les extensions Appareil photo

Android 14 met à niveau et améliore les extensions d'appareil photo, ce qui permet aux applications de gérer des temps de traitement plus longs, ce qui améliore les images à l'aide d'algorithmes gourmands en calcul, comme la photographie en faible luminosité sur les appareils compatibles. Ces fonctionnalités offrent aux utilisateurs une expérience encore plus robuste lorsqu'ils utilisent les fonctionnalités d'extension de la caméra. Voici quelques exemples d'améliorations:

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

Starting in Android 14, the Android package installer lets you specify app metadata, such as data safety practices, to include on app store pages such as 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 updates the system sharesheet to support custom app actions and more informative preview results for users.

Add custom actions

With Android 14, your app can add custom actions to the system sharesheet it invokes.

Screenshot of custom actions on the sharesheet.

Improve ranking of Direct Share targets

Android 14 uses more signals from apps to determine the ranking of the direct share targets to provide more helpful results for the user. To provide the most useful signal for ranking, follow the guidance for improving rankings of your Direct Share targets. Communication apps can also report shortcut usage for outgoing and incoming messages.

Direct Share row in the sharesheet, as shown by 1

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

Vidéo  : animations pour la prévisualisation du Retour

Android 13 a introduit l'animation pour la prévisualisation du retour à l'accueil via une option pour les développeurs. Dans une application compatible, et si l'option pour les développeurs est activée, le fait de balayer l'écran vers l'arrière déclenche l'affichage d'une animation indiquant que le geste Retour permet de quitter l'application et de revenir à l'écran d'accueil.

Android 14 comporte plusieurs améliorations et de nouvelles consignes pour la prévisualisation du Retour :

Avec cette version preview d'Android 14, toutes les fonctionnalités de la prévisualisation du Retour sont accessibles via une option pour les développeurs. Consultez le guide du développeur pour migrer votre application vers la prévisualisation du Retour ainsi que le guide du développeur pour créer des transitions personnalisées dans l'application.

Forçages par application du fabricant d'appareils à grand écran

Per-app overrides enable device manufacturers to change the behavior of apps on large screen devices. For example, the FORCE_RESIZE_APP override instructs the system to resize the app to fit display dimensions (avoiding size compatibility mode) even if resizeableActivity="false" is set in the app manifest.

Overrides are intended to improve the user experience on large screens.

New manifest properties enable you to disable some device manufacturer overrides for your app.

Forçages par application pour les utilisateurs sur grand écran

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 LLM dans Gboard sur un Pixel 8 Pro

Sur les appareils Pixel 8 Pro avec le Feature Drop de décembre, les développeurs peuvent essayer des réponses intelligentes de meilleure qualité dans Gboard, qui sont optimisées par de grands modèles de langage (LLM) sur l'appareil exécutés sur Google Tensor.

Cette fonctionnalité est disponible en version Preview limitée pour l'anglais américain dans WhatsApp, Line et KakaoTalk. Pour cela, vous devez utiliser un appareil Pixel 8 Pro avec Gboard comme clavier.

Pour tester cette fonctionnalité, activez-la dans Paramètres > Options pour les développeurs > Paramètres AICore > Activer la persistance AICore.

Ouvrez ensuite une conversation dans une application compatible pour voir la réponse suggérée optimisée par LLM dans la bande de suggestions de Gboard en réponse aux messages entrants.

Gboard utilise des LLM sur l'appareil pour fournir des réponses suggérées de meilleure qualité.

Graphiques

Les chemins sont interrogeables et interpolables

Android's Path API is a powerful and flexible mechanism for creating and rendering vector graphics, with the ability to stroke or fill a path, construct a path from line segments or quadratic or cubic curves, perform boolean operations to get even more complex shapes, or all of these simultaneously. One limitation is the ability to find out what is actually in a Path object; the internals of the object are opaque to callers after creation.

To create a Path, you call methods such as moveTo(), lineTo(), and cubicTo() to add path segments. But there has been no way to ask that path what the segments are, so you must retain that information at creation time.

Starting in Android 14, you can query paths to find out what's inside of them. First, you need to get a PathIterator object using the Path.getPathIterator API:

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();

Next, you can call PathIterator to iterate through the segments one by one, retrieving all of the necessary data for each segment. This example uses PathIterator.Segment objects, which packages up the data for you:

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 also has a non-allocating version of next() where you can pass in a buffer to hold the point data.

One of the important use cases of querying Path data is interpolation. For example, you might want to animate (or morph) between two different paths. To further simplify that use case, Android 14 also includes the interpolate() method on Path. Assuming the two paths have the same internal structure, the interpolate() method creates a new Path with that interpolated result. This example returns a path whose shape is halfway (a linear interpolation of .5) between path and 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);
}

The Jetpack graphics-path library enables similar APIs for earlier versions of Android as well.

Maillages personnalisés avec des nuanceurs de sommets et de fragments

Android permet depuis longtemps de dessiner des maillages triangulaires avec un ombrage personnalisé, mais le format de maillage d'entrée était limité à quelques combinaisons d'attributs prédéfinies. Android 14 est compatible avec les maillages personnalisés, qui peuvent être définis comme des triangles ou des bandes de triangles, et peuvent éventuellement être indexés. Ces maillages sont spécifiés avec des attributs personnalisés, des pas de vertex, des variations, et des nuanceurs de vertex et de fragment écrits en AGSL.

Le nuanceur de sommet définit les variations, telles que la position et la couleur, tandis que le nuanceur de fragment peut éventuellement définir la couleur du pixel, généralement à l'aide des variations créées par le nuanceur de sommet. Si une couleur est fournie par le nuanceur de fragment, elle est ensuite mélangée à la couleur Paint actuelle à l'aide du mode de fusion sélectionné lors du dessin du maillage. Les uniformes peuvent être transmis aux nuanceurs de fragment et de sommet pour plus de flexibilité.

Moteur de rendu de 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.