Présentation des fonctionnalités et des API

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 développe les fonctionnalités de langage par application introduites dans Android 13 (niveau d'API 33) avec les fonctionnalités supplémentaires suivantes :

  • Générer automatiquement la localeConfig d'une application : à partir d'Android Studio Giraffe Canary 7 et AGP 8.1.0-alpha07, vous pouvez configurer votre application pour qu'elle prenne automatiquement en charge votre préférence linguistique par appli. En fonction des ressources de votre projet, le plug-in Android Gradle génère le fichier LocaleConfig et ajoute une référence dans le fichier manifeste final. Vous n'avez donc plus besoin de créer ni de mettre à jour le fichier manuellement. Le plug-in Android Gradle utilise les ressources des dossiers res de vos modules d'application et les dépendances des modules de la bibliothèque pour déterminer les paramètres régionaux à inclure dans le fichier LocaleConfig.

  • Mises à jour dynamiques pour la localeConfig d'une application  : utilisez les méthodes setOverrideLocaleConfig() et getOverrideLocaleConfig() dans LocaleManager pour mettre à jour de façon dynamique la liste des langues disponibles de votre application dans les paramètres système de l'appareil. Utilisez cette flexibilité pour personnaliser la liste des langues disponibles par région, effectuer des tests A/B ou fournir une liste actualisée des paramètres régionaux si votre application utilise des transferts côté serveur pour la localisation.

  • Visibilité de la langue de l'application pour les éditeurs de mode de saisie (IME) : les éditeurs de mode de saisie peuvent utiliser la méthode getApplicationLocales() pour vérifier la langue de l'application et choisir la même langue.

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

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, 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 permet d'améliorer les images à l'aide d'algorithmes gourmands en ressources de calcul tels que la photographie par faible luminosité sur les appareils compatibles. Ces fonctionnalités offrent aux utilisateurs une expérience encore plus robuste lorsqu'ils utilisent des fonctionnalités d'extension d'appareil photo. Voici quelques exemples de ces améliorations:

Zoom dans le capteur

Lorsque REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE dans CameraCharacteristics contient SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW, votre application peut utiliser les fonctionnalités avancées du capteur pour donner à un flux RAW recadré les mêmes pixels que le champ de vision complet en utilisant un CaptureRequest avec une cible RAW dont le cas d'utilisation du flux est défini sur CameraMetadata.SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW. En implémentant les commandes de forçage de la requête, la caméra mise à jour permet aux utilisateurs de contrôler le zoom avant même que les autres commandes de la caméra soient prêtes.

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 des développeurs

Gestionnaire d'identifiants

Android 14 ajoute le Gestionnaire d'identifiants en tant qu'API de plate-forme, avec une prise en charge supplémentaire des appareils Android 4.4 (niveau d'API 19) via une bibliothèque Jetpack à l'aide des services Google Play. Le Gestionnaire d'identifiants vise à faciliter la connexion des utilisateurs grâce à des API qui récupèrent et stockent des identifiants à l'aide de fournisseurs d'identifiants configurés par l'utilisateur. Le Gestionnaire d'identifiants prend en charge plusieurs méthodes de connexion, y compris le nom d'utilisateur et le mot de passe, les clés d'accès et des solutions de connexion fédérée (comme Se connecter avec Google) dans une seule API.

Les clés d'accès offrent de nombreux avantages. Par exemple, les clés d'accès sont basées sur les normes du secteur. Elles peuvent fonctionner avec différents systèmes d'exploitation et écosystèmes de navigateurs, ainsi qu'avec des sites Web et des applications.

Pour en savoir plus, consultez la documentation sur le Gestionnaire d'identifiants et les clés d'accès, ainsi que l'article de blog sur le Gestionnaire d'identifiants et les clés d'accès.

Santé Connect

Santé Connect est un dépôt sur l'appareil contenant 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 endroit pour contrôler les données qu'ils souhaitent partager avec ces applications.

Sur les appareils exécutant des versions d'Android antérieures à Android 14, Santé Connect peut être téléchargée 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 qu'un téléchargement distinct soit nécessaire. Santé Connect peut ainsi être mis à jour fréquemment, et vos applications peuvent s'assurer que Santé Connect est disponible 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, et les paramètres de confidentialité sont intégrés aux paramètres système.

Les utilisateurs peuvent commencer à utiliser Santé Connect sans télécharger d'application distincte sur les appareils équipés d'Android 14 ou version ultérieure.
Les utilisateurs peuvent contrôler quelles applications ont accès à leurs données de santé et de remise en forme via les paramètres système.

Santé Connect inclut plusieurs nouvelles fonctionnalités dans Android 14, comme les parcours sportifs, qui permettent aux utilisateurs de partager un parcours de leur entraînement qui peut être visualisé sur une carte. Un itinéraire est défini comme une liste de lieux enregistrés pendant une période donnée. Votre application peut insérer des itinéraires dans des sessions d'exercice, en les associant. Pour s'assurer que les utilisateurs ont un contrôle total sur ces données sensibles, ils doivent autoriser le partage de routes individuelles avec d'autres applications.

Pour en savoir plus, consultez la documentation de Santé Connection et l'article de blog sur les Nouveautés d'Android Health.

Mises à jour OpenJDK 17

Android 14 continues the work of refreshing Android's core libraries to align with the features in the latest OpenJDK LTS releases, including both library updates and Java 17 language support for app and platform developers.

The following features and improvements are included:

  • Updated approximately 300 java.base classes to Java 17 support.
  • Text Blocks, which introduce multi-line string literals to the Java programming language.
  • Pattern Matching for instanceof, which allows an object to be treated as having a specific type in an instanceof without any additional variables.
  • Sealed classes, which allow you restrict which classes and interfaces can extend or implement them.

Thanks to Google Play system updates (Project Mainline), over 600 million devices are enabled to receive the latest Android Runtime (ART) updates that include these changes. This is part of our commitment to give apps a more consistent, secure environment across devices, and to deliver new features and capabilities to users independent of platform releases.

Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

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'approbation de l'utilisateur. Par exemple, lorsqu'un programme d'installation utilisant 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 peuvent demander l'approbation de l'utilisateur qu'après que les APK ont été écrits dans la session d'installation et que la session a été validée.

À partir d'Android 14, la méthode requestUserPreapproval() permet aux installateurs de demander l'approbation 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 sera responsable des futures mises à jour d'une application qu'il installe. Cette fonctionnalité permet d'appliquer la propriété des mises à jour, ce qui signifie que seul le propriétaire de la mise à jour est autorisé à installer des mises à jour automatiques de l'application. L'application forcée de la propriété des mises à jour permet de s'assurer que les utilisateurs ne reçoivent les 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 l'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 leurs applications 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 validé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 accepte 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 de 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 d'application, telles que des 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 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

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

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

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

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

App screen sharing enables users to share an app window instead of the entire device screen during screen content recording.

With app screen sharing, the status bar, navigation bar, notifications, and other system UI elements are excluded from the shared display. Only the content of the selected app is shared.

App screen sharing improves productivity and privacy by enabling users to run multiple apps but limit content sharing to a single app.

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

Sur les appareils Pixel 8 Pro avec la mise à jour groupée de décembre, les développeurs peuvent tester des réponses suggérées de meilleure qualité dans Gboard, basées sur les grands modèles de langage (LLM, Large Language Model) installés sur l'appareil et exécutés sur Google Tensor.

Cette fonctionnalité est disponible sous la forme d'un aperçu limité en anglais américain dans WhatsApp, Line et KakaoTalk. Vous devez utiliser un Pixel 8 Pro avec Gboard comme clavier.

Pour l'essayer, commencez par activer la fonctionnalité dans Paramètres > Options pour les développeurs > Paramètres AI Core > Activer le persistant Aicore.

Ensuite, ouvrez une conversation dans une application compatible pour afficher la fonctionnalité Réponse suggérée basée sur le LLM dans la bande de suggestions de Gboard en réponse aux messages entrants.

Gboard utilise des LLM intégrés à l'appareil pour fournir des réponses suggérées de meilleure qualité.

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.

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

Android accepte depuis longtemps le dessin de maillages triangulaires avec ombrage personnalisé, mais le format du maillage d'entrée est limité à quelques combinaisons d'attributs prédéfinis. Android 14 est compatible avec les réseaux maillés personnalisés, qui peuvent être définis comme des triangles ou des bandes triangulaires et qui peuvent éventuellement être indexés. Ces maillages sont spécifiés avec des attributs personnalisés, des pas de sommet, des nuances variables, et des nuanceurs de sommets et de fragments écrits en AGSL.

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

Moteur de rendu de tampon matériel pour Canvas

To assist in using Android's Canvas API to draw with hardware acceleration into a HardwareBuffer, Android 14 introduces HardwareBufferRenderer. This API is particularly useful when your use case involves communication with the system compositor through SurfaceControl for low-latency drawing.