Android 14 offre aux développeurs de nouvelles fonctionnalités et API de qualité. Les informations suivantes vous aident à découvrir les fonctionnalités de vos applications et à vous familiariser avec 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 savoir dans quels domaines les changements de plate-forme peuvent affecter vos applications, consultez les modifications de comportement d'Android 14pour 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 theLocaleConfig
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 theres
folders of your app modules and any library module dependencies to determine the locales to include in theLocaleConfig
file.Dynamic updates for an app's
localeConfig
: Use thesetOverrideLocaleConfig()
andgetOverrideLocaleConfig()
methods inLocaleManager
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.
To help you build a user-centric UI for gendered languages, Android 14 introduces the Grammatical Inflection API, which lets you add support for grammatical gender without refactoring your app.
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.


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

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 :
- Ouvrez l'application Paramètres, puis accédez à Accessibility > Display size and text (Accessibilité > Taille d'affichage et texte).
- 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

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, postview et plus encore dans les extensions d'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:
- L'estimation dynamique de la latence de traitement de la capture d'image fixe fournit des estimations de la latence de capture d'image fixe beaucoup plus précises en fonction de la scène et des conditions environnementales actuelles. Appelez
CameraExtensionSession.getRealtimeStillCaptureLatency()
pour obtenir un objetStillCaptureLatency
qui comporte deux méthodes d'estimation de la latence. La méthodegetCaptureLatency()
renvoie la latence estimée entreonCaptureStarted
etonCaptureProcessStarted()
, et la méthodegetProcessingLatency()
renvoie la latence estimée entreonCaptureProcessStarted()
et le frame traité final disponible. - Prise en charge des rappels de progression de la capture afin que les applications puissent afficher la progression actuelle des opérations de traitement de la capture d'image fixe de longue durée. Vous pouvez vérifier si cette fonctionnalité est disponible avec
CameraExtensionCharacteristics.isCaptureProcessProgressAvailable
. Si c'est le cas, vous implémentez le rappelonCaptureProcessProgressed()
, qui transmet la progression (de 0 à 100) en tant que paramètre. Métadonnées spécifiques à l'extension, telles que
CaptureRequest.EXTENSION_STRENGTH
pour régler l'intensité d'un effet d'extension, comme l'intensité du floutage de l'arrière-plan avecEXTENSION_BOKEH
.Fonctionnalité Postview pour la capture d'images fixes dans les extensions d'appareil photo, qui fournit une image moins traitée plus rapidement que l'image finale. Si une extension a augmenté la latence de traitement, une image post-vue peut être fournie en tant que zone réservée pour améliorer l'expérience utilisateur et être remplacée plus tard par l'image finale. Vous pouvez vérifier si cette fonctionnalité est disponible avec
CameraExtensionCharacteristics.isPostviewAvailable
. Vous pouvez ensuite transmettre unOutputConfiguration
àExtensionSessionConfiguration.setPostviewOutputConfiguration
.Compatibilité avec
SurfaceView
, ce qui permet d'obtenir un chemin de rendu d'aperçu plus optimisé et plus économe en énergie.Prise en charge de la mise au point et du zoom par appui pendant l'utilisation de l'extension.
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 gains support for lossless audio formats for audiophile-level
experiences over USB wired headsets. You can query a USB device for its
preferred mixer attributes, register a listener for changes in preferred mixer
attributes, and configure mixer attributes using the
AudioMixerAttributes
class. This class represents the
format, such as channel mask, sample rate, and behavior of the audio mixer. The
class allows for audio to be sent directly, without mixing,
volume adjustment, or processing effects.
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
Santé Connect est un dépôt sur l'appareil pour les données de santé et de remise en forme des utilisateurs. Il permet aux utilisateurs de partager des données entre leurs applications préférées, avec un seul et même endroit pour contrôler les données qu'ils souhaitent partager avec ces applications.
Sur les appareils équipés de versions d'Android antérieures à Android 14, Santé Connect est disponible en téléchargement en tant qu'application sur le Google Play Store. À partir d'Android 14, Santé Connect fait partie de la plate-forme et reçoit les mises à jour via les mises à jour du système Google Play, sans nécessiter de téléchargement distinct. Santé Connect peut ainsi être mis à jour fréquemment, et vos applications peuvent compter sur Santé Connect sur les appareils équipés d'Android 14 ou version ultérieure. Les utilisateurs peuvent accéder à Santé Connect depuis les paramètres de leur appareil, avec des commandes de confidentialité intégrées aux paramètres système.


Santé Connect inclut plusieurs nouvelles fonctionnalités dans Android 14, comme les parcours d'exercice, qui permettent aux utilisateurs de partager un parcours de leur entraînement qui peut être visualisé sur une carte. Un parcours est défini comme une liste d'emplacements enregistrés dans une période donnée. Votre application peut insérer des parcours dans des séances d'exercice, en les associant. Pour que les utilisateurs aient un contrôle total sur ces données sensibles, ils doivent autoriser le partage de trajets individuels avec d'autres applications.
Pour en savoir plus, consultez la documentation sur Santé Connect et l'article de blog sur les nouveautés d'Android Santé.
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 introduces several PackageInstaller
APIs that
allow app stores to improve their user experience.
Request install approval before downloading
Installing or updating an app might require user approval.
For example, when an installer making use of the
REQUEST_INSTALL_PACKAGES
permission attempts to install a
new app. In prior Android versions, app stores can only request user approval
after APKs are written to the install session and the
session is committed.
Starting with Android 14, the requestUserPreapproval()
method lets installers request user approval before committing the install
session. This improvement lets an app store defer downloading any APKs until
after the installation has been approved by the user. Furthermore, once a user
has approved installation, the app store can download and install the app in the
background without interrupting the user.
Claim responsibility for future updates
The setRequestUpdateOwnership()
method allows an installer
to indicate to the system that it intends to be responsible for future updates
to an app it is installing. This capability enables update ownership
enforcement, meaning that only the update owner is permitted
to install automatic updates to the app. Update ownership enforcement helps to
ensure that users receive updates only from the expected app store.
Any other installer, including those making use of the
INSTALL_PACKAGES
permission, must receive explicit user
approval in order to install an update. If a user decides to proceed with an
update from another source, update ownership is lost.
Update apps at less-disruptive times
App stores typically want to avoid updating an app that is actively in use because this leads to the app's running processes being killed, which potentially interrupts what the user was doing.
Starting with Android 14, the InstallConstraints
API
gives installers a way to ensure that their app updates happen at an opportune
moment. For example, an app store can call the
commitSessionAfterInstallConstraintsAreMet()
method to
make sure that an update is only committed when the user is no longer
interacting with the app in question.
Seamlessly install optional splits
With split APKs, features of an app can be delivered in separate APK files,
rather than as a monolithic APK. Split APKs allow app stores to optimize the
delivery of different app components. For example, app stores might optimize
based on the properties of the target device. The
PackageInstaller
API has supported splits since its
introduction in API level 22.
In Android 14, the setDontKillApp()
method allows an
installer to indicate that the app's running processes shouldn't be killed when
new splits are installed. App stores can use this feature to seamlessly install
new features of an app while the user is using the app.
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.

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.

Prise en charge des animations intégrées et personnalisées 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 :
- Vous pouvez définir
android:enableOnBackInvokedCallback=true
pour activer les animations système pour la prévisualisation du Retour par activité plutôt que pour l'ensemble de l'application. - Nous avons ajouté de nouvelles animations système pour accompagner l'animation de retour à l'écran d'accueil à partir d'Android 13. Les nouvelles animations système sont multi-activités et multitâches. Vous les obtenez automatiquement après avoir migré vers la prévisualisation du Retour.
- Nous avons ajouté de nouvelles animations de composant Material pour les bottom sheets, les espaces annexes et la recherche.
- Nous avons rédigé des conseils de conception pour créer des animations et des transitions personnalisées dans l'application.
- Nous avons ajouté de nouvelles API pour prendre en charge les animations de transition personnalisées dans l'application :
handleOnBackStarted
,handleOnBackProgressed
,handleOnBackCancelled
in
OnBackPressedCallback
onBackStarted
,onBackProgressed
,onBackCancelled
in
OnBackAnimationCallback
- Utilisez
overrideActivityTransition
au lieu deoverridePendingTransition
pour les transitions qui réagissent lorsque l'utilisateur balaie l'écran vers l'arrière.
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
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 sur grand écran
Per-app overrides change the behavior of apps on large screen devices. For example, the OVERRIDE_MIN_ASPECT_RATIO_LARGE
device manufacturer override sets the app aspect ratio to 16:9 regardless of the app's configuration.
Android 14 QPR1 enables users to apply per‑app overrides by means of a new settings menu on large screen devices.
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
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.
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 sommet et de fragment
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.