Présentation des fonctionnalités et des API

Android 13 offre aux développeurs de nouvelles fonctionnalités et API de qualité. Les sections ci-dessous vous présentent les nouvelles fonctionnalités disponibles pour vos application et leurs nouvelles API.

Pour obtenir une liste détaillée des nouvelles API, des API modifiées et supprimées, consultez le rapport de différences des API. Pour en savoir plus sur les nouvelles API, consultez la documentation de référence des API Android. Les nouvelles API sont mises en évidence. Pour en savoir plus sur les domaines dans lesquels les modifications de la plate-forme peuvent affecter vos applications, consultez les modifications de comportement d'Android 13 pour les applications qui ciblent Android 13 et pour toutes les applications.

Productivité et outils des développeurs

Icônes d'applications à thème

Utilisateur activant les icônes d'application à thème
Activer les icônes d'application thématiques sur Android 13

À partir d'Android 13, vous pouvez activer les icônes d'application thématiques. Grâce à cette fonctionnalité, les icônes d'application des lanceurs Android compatibles sont teintées pour hériter de la couleur du fond d'écran choisi par l'utilisateur et d'autres thèmes.

Pour prendre en charge cette fonctionnalité, votre application doit fournir à la fois une icône adaptative et une icône d'application monochrome, et pointer vers l'icône d'application monochrome de l'élément <adaptive-icon> dans le fichier manifeste. Si un utilisateur a activé les icônes d'application à thème (en d'autres termes, activé le bouton Icônes à thème dans les paramètres système) et que le lanceur d'applications prend en charge cette fonctionnalité, le système utilise la couleur du fond d'écran et du thème choisis par l'utilisateur pour déterminer la teinte, qui s'applique ensuite à l'icône d'application monochrome.

L'écran d'accueil n'affiche PAS l'icône d'application à thème, mais l'icône d'application adaptative ou standard, dans les cas suivants:

  • Si l'utilisateur n'a pas activé les icônes d'application à thème
  • Si votre application ne fournit pas d'icône monochromatique
  • Si le lanceur d'applications ne prend pas en charge les icônes d'application à thème

Pour en savoir plus et obtenir des instructions, consultez Icônes adaptatives.

Préférence linguistique par appli

Langues par application dans les paramètres système

Dans bien des cas, les utilisateurs multilingues choisissent une langue (telle que l'anglais) pour leur système, mais veulent être en mesure d'en sélectionner d'autres (telles que le néerlandais, le chinois ou encore l'hindi) pour des applications spécifiques. Afin d'améliorer l'expérience de ces utilisateurs, Android 13 propose maintenant les fonctionnalités suivantes pour les applications prenant en charge plusieurs langues :

  • Paramètres système : emplacement centralisé où les utilisateurs peuvent sélectionner une langue préférée pour chaque application.

    L'attribut android:localeConfig doit être déclaré dans le fichier manifeste de votre application pour indiquer au système qu'elle accepte plusieurs langues. Pour en savoir plus, consultez les instructions pour créer un fichier de ressources et le déclarer dans le fichier manifeste de votre application.

  • API supplémentaires : ces API publiques telles que les méthodes setApplicationLocales() et getApplicationLocales() dans LocaleManager permettent aux utilisateurs d'une application de définir une langue différente de celle du système au moment de l'exécution.

    Ces API se synchronisent automatiquement avec les paramètres système. Par conséquent, les applications qui utilisent ces API pour créer des outils de sélection de langue personnalisés dans l'application garantissent une expérience cohérente, quel que soit l'endroit où les utilisateurs sélectionnent leurs préférences linguistiques. Les API publiques vous aident également à réduire la quantité de code récurrent, et sont compatibles avec les APK divisés ainsi que la sauvegarde automatique des applications pour stocker les paramètres linguistiques de l'utilisateur au niveau de l'application.

    Pour assurer la rétrocompatibilité avec les versions précédentes d'Android, des API équivalentes sont également disponibles sur AndroidX. Nous vous recommandons d'utiliser les API ajoutées dans Appcompat 1.6.0-beta01 ou version ultérieure.

Les applications qui ne sont pas disponibles en plusieurs langues ne sont pas concernées par ces changements.

Amélioration de la prise en charge du texte et des langues

Android 13 inclut plusieurs fonctionnalités d'amélioration du texte et de la langue qui vous aident à offrir une expérience plus soignée, qui sont décrites dans les sections suivantes:

Traitement plus rapide de la césure

L'utilisation de la césure rend le texte justifié plus facile à lire et contribue à rendre votre interface utilisateur plus adaptative. À partir d'Android 13, les performances de trait d'union sont optimisées jusqu'à 200 %. Vous pouvez donc l'activer dans votre TextView sans pratiquement aucun impact sur les performances d'affichage. Pour accélérer la traitance, utilisez les fréquences fullFast ou normalFast dans setHyphenationFrequency().

API Text Conversion

Les personnes qui parlent des langues telles que le japonais et le chinois utilisent des méthodes de saisie phonétiques, ce qui ralentit souvent la recherche et certaines fonctionnalités telles que la saisie semi-automatique. Dans Android 13, les applications peuvent appeler la nouvelle API de conversion textuelle afin que les utilisateurs puissent trouver ce qu'ils recherchent plus rapidement et plus facilement. Auparavant, par exemple, un utilisateur japonais devait effectuer les étapes suivantes pour effectuer une recherche:

  1. Saisissez le hiragana comme prononciation phonétique de son terme de recherche (un lieu ou le nom d'une application, par exemple).
  2. Convertir les caractères Hiragana en Kanji à l'aide du clavier
  3. Effectuer une nouvelle recherche à l'aide des caractères kanji
  4. obtenir les résultats de recherche ;

Grâce à la nouvelle API de conversion de texte, les utilisateurs japonais peuvent saisir du texte en hiragana et voir immédiatement les résultats de recherche en kanji en direct, en ignorant les étapes 2 et 3.

Amélioration des hauteurs de ligne pour les scripts non latins

Android 13 améliore l'affichage des scripts non latins (tels que le tamoul, le birman, le télougou et le tibétain) en utilisant une hauteur de ligne adaptée à chaque langue. Les nouvelles hauteurs de ligne empêchent le recadrage et améliorent le positionnement des caractères. Votre application peut profiter de ces améliorations simplement en ciblant Android 13. Veillez à tester vos applications lorsque vous utilisez le nouvel interligne, car les modifications peuvent affecter votre UI dans les langues non latines.

Hauteurs de ligne rognées dans Android 12 (ci-dessus) qui sont désormais mieux positionnées et non rognées dans Android 13 (ci-dessous).

Amélioration de l'habillage du texte en japonais

À partir d'Android 13, les TextViews peuvent mettre en forme le texte par bunsetsu (la plus petite unité de mots qui semble naturelle) ou par phrases, au lieu de le faire par caractère, pour des applications japonaises plus soignées et lisibles. Vous pouvez profiter de ce retour à la ligne en utilisant android:lineBreakWordStyle="phrase" avec des TextViews.

Retour à la ligne du texte en japonais avec le style de phrase activé (ci-dessous) et sans (ci-dessus).

Mises à jour de la bibliothèque Unicode

Android 13 ajoute les dernières améliorations, corrections et modifications incluses dans Unicode ICU 70, Unicode CLDR 40 et Unicode 14.0.

Voici quelques modifications notables :

  • L'anglais (Canada) en‑CA et l'anglais (République des Philippines) en‑PH utilisent tous deux des ressources de traduction en anglais (États-Unis) en lorsqu'aucune ressource de traduction n'est disponible, à la place de l'anglais (Royaume-Uni) en‑GB.
  • La catégorie de pluriel many a été introduite pour l'espagnol es, l'italien it, le portugais pt et le portugais (Portugal) pt‑PT. Semblable au français introduit dans la version 38 du CLDR, il est utilisé pour les grands nombres.

Polices vectorielles de couleurs

Emoji vectoriels COLRv1 (à gauche) et emoji bitmap (à droite)

À partir d'Android 13, le système prend en charge le rendu des polices COLR version 1 (COLRv1) et met à jour les emoji système au format COLRv1. COLRv1 est un format de police très compact qui s'affiche rapidement et de manière nette à n'importe quelle taille.

Pour la plupart des applications, le système gère tout et COLRv1 fonctionne. Toutefois, si votre application implémente son propre rendu de texte et utilise les polices du système, nous vous recommandons de tester le rendu des emoji.

Pour en savoir plus sur COLRv1, consultez les ressources suivantes:

API d'emplacement des Réglages rapides

Les paramètres rapides dans la barre de notification permettent aux utilisateurs de modifier des paramètres ou d'effectuer des actions rapides sans quitter le contexte d'une application. Pour les applications qui fournissent des tuiles personnalisées, nous facilitons la découverte et l'ajout de vos cartes aux paramètres rapides. Grâce à une nouvelle API de placement de cartes, votre application peut désormais inviter l'utilisateur à ajouter directement votre carte personnalisée à l'ensemble de cartes de paramètres rapides actives. Une nouvelle boîte de dialogue système permet à l'utilisateur d'ajouter la carte en une seule étape, sans quitter votre application, au lieu d'avoir à accéder aux réglages rapides pour l'ajouter.

Boîte de dialogue demandant à l&#39;utilisateur s&#39;il souhaite ajouter une carte à ses Réglages rapides.

Aperçu du presse-papiers

À partir d'Android 13, le système affiche une confirmation visuelle standard lorsque du contenu est ajouté au presse-papiers. La nouvelle confirmation effectue les opérations suivantes:

  • confirme que le contenu a bien été copié.
  • Fournit un aperçu du contenu copié.

Cette fonctionnalité standardise les différentes notifications affichées par les applications après la copie et offre aux utilisateurs plus de contrôle sur leur presse-papiers. Pour en savoir plus, consultez la page des fonctionnalités Copier et coller.

Widget Copier/Coller
Nouvelle interface utilisateur qui s'affiche lorsque du contenu est ajouté au presse-papiers.

Prévisualisation du geste Retour

Android 13 introduit la prévisualisation du geste Retour pour les appareils Android tels que les téléphones, les grands écrans et les pliables. Pour prendre en charge cette fonctionnalité, vous devez mettre à jour votre application.

Pour consulter la documentation détaillée, consultez Mettre à jour votre application pour permettre la prévisualisation du geste Retour. Vous pouvez également essayer notre atelier de programmation.

Bluetooth LE Audio

L'audio à basse consommation (LE) est un audio sans fil conçu pour remplacer le Bluetooth classique et permettre certains cas d'utilisation et topologies de connexion. Elle permet aux utilisateurs de partager et de diffuser leur contenu audio avec leurs amis et leur famille, ou de s'abonner à des diffusions publiques pour obtenir des informations, se divertir ou améliorer l'accessibilité. Il est conçu pour que les utilisateurs puissent recevoir un son haute fidélité sans sacrifier l'autonomie de la batterie et qu'ils puissent passer facilement d'un cas d'utilisation à un autre, ce qui n'est pas possible avec le Bluetooth classique. À partir d'Android 13, le système est compatible avec LE Audio. Les développeurs bénéficient donc de ces fonctionnalités gratuitement sur les appareils compatibles.

MIDI 2.0

À partir d'Android 13, le système est compatible avec la norme MIDI 2.0, y compris la possibilité de connecter du matériel MIDI 2.0 via USB. Cette norme offre des fonctionnalités telles qu'une résolution accrue pour les contrôleurs, une meilleure prise en charge des intonations non occidentales et des performances plus expressives avec des contrôleurs par note.

Amélioration de l'efficacité de l'écran de démarrage

Android 13 améliore l'efficacité des écrans de démarrage animés dans l'API Splash Screen:

  • Le système déduit la durée de l'animation directement à partir de AnimatedVectorDrawable. Avant Android 13, il était nécessaire de définir directement windowSplashScreenAnimationDuration.

  • Utilisez le nouvel attribut windowSplashScreenBehavior pour mieux contrôler si votre application affiche toujours l'icône sur l'écran de démarrage sous Android 13 ou version ultérieure.

Pour obtenir une documentation détaillée, consultez Écrans de démarrage.

Optimisations ART

Sous Android 13 (niveau d'API 33) et versions ultérieures, ART accélère considérablement la transition entre le code natif et le code non natif, avec des appels JNI jusqu'à 2,5 fois plus rapides. Le traitement des références dans l'environnement d'exécution a également été retravaillé pour qu'il soit principalement non bloquant, ce qui réduit davantage les à-coups. De plus, vous pouvez utiliser l'API publique Reference.refersTo() pour récupérer plus rapidement les objets inaccessibles. Vous remarquerez que l'interprète est désormais plus rapide grâce aux recherches de classe et de méthode optimisées. ART effectue également une plus grande vérification de l'octet de code au moment de l'installation, ce qui évite les dépenses liées à la validation au moment de l'exécution et réduit les temps de démarrage de l'application.

Confidentialité et sécurité

Exportation plus sécurisée des récepteurs enregistrés en contexte

Pour renforcer la sécurité des récepteurs d'exécution, Android 13 permet à votre application de spécifier si un broadcast receiver enregistré doit être exporté et visible par les autres applications de l'appareil. Dans les versions précédentes d'Android, n'importe quelle application de l'appareil pouvait envoyer une diffusion non protégée à un broadcast receiver enregistré dynamiquement, sauf si ce broadcast receiver était protégé par une autorisation de signature.

Cette configuration d'exportation est disponible sur les applications qui effectuent au moins l'une des opérations suivantes :

Sélecteur de photos

Android 13 (niveau d'API 33) ou version ultérieure inclut un sélecteur de photos. Lorsque votre application lance le sélecteur de photos, les utilisateurs sélectionnent des images et des vidéos spécifiques à partager avec votre application, comme des photos de profil, au lieu d'autoriser votre application à afficher l'intégralité de la bibliothèque multimédia. Il s'agit de la méthode recommandée pour accéder aux photos et aux vidéos de l'utilisateur.

Le sélecteur de photos offre une confidentialité renforcée aux utilisateurs, car votre application n'a pas besoin de déclarer d'autorisations d'exécution. En outre, le sélecteur de photos fournit une UI intégrée et standardisée pour les applications, ce qui crée une expérience utilisateur plus cohérente.

Nouvelle autorisation d'exécution pour les appareils Wi-Fi à proximité

Android 13 (niveau d'API 33) introduit une nouvelle autorisation d'exécution dans le groupe d'autorisations NEARBY_DEVICES pour les applications qui gèrent les connexions d'un appareil aux points d'accès à proximité via le Wi-Fi. Ces applications doivent déclarer la nouvelle autorisation, NEARBY_WIFI_DEVICES, lorsqu'elles appellent plusieurs API Wi-Fi différentes. En outre, tant que les applications ne dérivent pas la position physique à partir des API Wi-Fi, elles n'ont pas besoin de déclarer l'autorisation ACCESS_FINE_LOCATION lorsqu'elles ciblent Android 13 ou version ultérieure.

En savoir plus sur l'autorisation "Appareils Wi-Fi à proximité"

Nouvelle autorisation d'utiliser des alarmes exactes

Si votre application cible Android 13 ou version ultérieure, vous pouvez utiliser l'autorisation USE_EXACT_ALARM, qui lui est automatiquement accordée. Toutefois, pour que votre application puisse utiliser cette autorisation, elle doit remplir au moins l'un des critères suivants :

  • Votre application est une application de réveil ou de minuteur.
  • Votre application est un agenda qui affiche des notifications pour les événements à venir.

Si votre application définit des alarmes exactes, mais ne répond à aucun des cas indiqués dans la liste précédente, continuez à déclarer l'autorisation SCHEDULE_EXACT_ALARM à la place et préparez-vous à la situation où l'utilisateur refuse l'accès à votre application.

Autorisations révocables par le développeur

À partir d'Android 13, votre application peut révoquer l'accès aux autorisations d'exécution inutilisées. Cette API permet à votre application d'effectuer des tâches protégeant la confidentialité, comme les suivantes :

  • Supprimez les autorisations inutilisées.
  • Respectez les bonnes pratiques en matière d'autorisation afin de renforcer la confiance des utilisateurs. Vous pouvez envisager de présenter aux utilisateurs une boîte de dialogue indiquant les autorisations que vous avez révoquées de manière proactive.

APK Signature Scheme v3.1

Android 13 est compatible avec APK Signature Scheme v3.1, qui améliore l'APK Signature Scheme v3 existant. Ce schéma résout certains des problèmes connus liés à la rotation avec APK Signature Scheme v3. En particulier, le schéma de signature v3.1 est compatible avec le ciblage de version de SDK, ce qui permet à la rotation de cibler une version ultérieure de la plate-forme.

Le schéma de signature v3.1 utilise un ID de bloc qui n'est pas reconnu sur 12L ou version antérieure. Par conséquent, la plate-forme applique le comportement de signataire suivant:

  • Les appareils équipés d'Android 13 ou version ultérieure utilisent le signataire rotatif dans le bloc v3.1.
  • Les appareils qui exécutent d'anciennes versions d'Android ignorent le signataire ayant fait l'objet d'une rotation et utilisent à la place le signataire d'origine dans le bloc v3.0.

Les applications qui n'ont pas encore modifié leur clé de signature ne nécessitent aucune action supplémentaire. Chaque fois que ces applications choisissent de pivoter, le système applique le schéma de signature v3.1 par défaut.

Les applications qui ont déjà effectué une rotation et qui souhaitent continuer à utiliser leur clé de signature ayant fait l'objet d'une rotation dans le bloc de signature v3.0 doivent mettre à jour leur appel apksigner:

apksigner sign --ks keystore.jks |
  --key key.pk8 --cert cert.x509.pem
  --rotation-min-sdk-version API_LEVEL
  [signer_options] app-name.apk

...où API_LEVEL est inférieur ou égal à 32.

Amélioration des rapports d'erreurs dans Keystore et KeyMint

Pour les applications qui génèrent des clés, Keystore et KeyMint fournissent désormais des indicateurs d'erreur plus détaillés et précis. Nous avons ajouté une hiérarchie de classes d'exceptions sous java.security.ProviderException, avec des exceptions spécifiques à Android qui incluent des codes d'erreur Keystore/KeyMint et si l'erreur peut être répétée. Vous pouvez également modifier les méthodes de génération et d'utilisation des clés (signature, chiffrement) pour générer les nouvelles exceptions. L'amélioration des rapports d'erreurs ne se limite pas à la génération de clés et devrait désormais vous fournir ce dont vous avez besoin pour réessayer la génération de clés.

Compatibilité avec les tablettes et les grands écrans

Android 13 s'appuie sur les optimisations pour tablette introduites dans Android 12 et la mise à jour groupée 12L, y compris les optimisations de l'UI du système, un meilleur mode multitâche et des modes de compatibilité améliorés. Lors de vos tests, assurez-vous que vos applications sont optimisées pour les tablettes et les autres appareils à grand écran.

Pour en savoir plus sur les nouveautés et les tests à effectuer, consultez la page Compatibilité avec les tablettes et les grands écrans.

Graphiques

Nuanceurs programmables

Nuanceur d'animation AGSL, adapté de ce nuanceur GLSL.

À partir d'Android 13, le système prend en charge les objets RuntimeShader programmables, avec le comportement défini à l'aide du langage de nuance graphique Android Graphics (AGSL). AGSL partage une grande partie de sa syntaxe avec le GLSL, mais fonctionne dans le moteur de rendu Android pour personnaliser la peinture dans le canevas Android ainsi que le filtrage du contenu de la vue. Android utilise ces nuanceurs en interne pour implémenter des effets d'ondulation, le flou et le défilement hors limites pour étirer. Android 13 ou version ultérieure vous permet de créer des effets avancés similaires pour votre application.

Améliorations apportées à Choreographer

Android 13 introduit des méthodes d'API publiques pour Choreographer et ASurfaceControl qui fournissent aux applications plus d'informations sur les délais de frame possibles et ajoutent plus de contexte à SurfaceFlinger sur le cycle de vie des frames. Comme précédemment, les applications peuvent publier un rappel sur Choreographer et recevoir des informations sur la chronologie des frames. Dans Android 13 (niveau d'API 33), Choreographer renvoie plusieurs fois de présentation possibles et les délais de rendu correspondants. Les applications peuvent choisir l'heure de la présentation et informer SurfaceFlinger de leur choix. SurfaceFlinger ne tente alors pas d'appliquer des transactions ou des tampons de verrouillage avant l'heure de présentation souhaitée.

Si votre application utilise les nouvelles méthodes Choreographer et SurfaceControl, vous pouvez afficher le cycle de vie des frames de l'application dans une trace Perfetto.

Appareil photo

Capture vidéo HDR

À partir d'Android 13, les API Camera2 sont compatibles avec la capture vidéo HDR (High Dynamic Range), ce qui vous permet d'afficher un aperçu et d'enregistrer des contenus vidéo HDR à l'aide de votre appareil photo. Par rapport à la plage dynamique standard (SDR), la technologie HDR offre une gamme de couleurs plus large et augmente la plage dynamique du composant de luminance (de 100 cd/m2 à 1 000 cd/m2 actuellement). La qualité vidéo est ainsi plus proche de la réalité, avec des couleurs plus riches, des reflets plus lumineux et des ombres plus sombres.

Pour en savoir plus sur la capture vidéo HDR, consultez la documentation sur la capture vidéo HDR.

Contenus multimédias

Son spatial

Le son spatial est une expérience audio immersive qui rend le contenu multimédia plus réaliste pour vos utilisateurs. Consultez la documentation sur le son spatial pour savoir comment intégrer cette fonctionnalité.

Routage audio anticipé

Pour aider les applications multimédias à identifier le routage de leur contenu audio, Android 13 introduit les API de routage audio dans la classe AudioManager. L'API getAudioDevicesForAttributes() vous permet de récupérer la liste des appareils pouvant être utilisés pour lire l'audio spécifié, et l'API getDirectProfilesForAttributes() vous aide à déterminer si votre flux audio peut être lu directement. Utilisez ces API pour déterminer le meilleur AudioFormat à utiliser pour votre piste audio.

Accessibilité

Audiodescription

Android 13 (niveau d'API 33) introduit une nouvelle préférence d'accessibilité à l'échelle du système qui permet aux utilisateurs d'activer l'audiodescription dans toutes les applications. Une description audio est une piste de narration supplémentaire qui consiste en un narrateur qui parle pendant la présentation, décrivant ce qui se passe à l'écran pendant les pauses naturelles de l'audio. Les applications peuvent suivre les préférences de l'utilisateur pour les pistes audiodescription en interrogeant isAudioDescriptionRequested(), comme indiqué dans l'extrait de code suivant:

Kotlin

private lateinit var accessibilityManager: AccessibilityManager

// In onCreate():
accessibilityManager = getSystemService(AccessibilityManager::class.java)

// Where your media player is initialized
if (accessibilityManager.isAudioDescriptionRequested) {
    // User has requested to enable audio descriptions
}

Java

private AccessibilityManager accessibilityManager;

// In onCreate():
accessibilityManager = getSystemService(AccessibilityManager.class);

// Where your media player is initialized
if(accessibilityManager.isAudioDescriptionRequested()) {
    // User has requested to enable audio descriptions
}

Les applications peuvent surveiller les modifications de préférences de l'utilisateur en ajoutant un écouteur à AccessbilityManager :

Kotlin

private val listener =
    AccessibilityManager.AudioDescriptionRequestedChangeListener { enabled ->
        // Preference changed; reflect its state in your media player
    }

override fun onStart() {
    super.onStart()

    accessibilityManager.addAudioDescriptionRequestedChangeListener(mainExecutor, listener)
}

override fun onStop() {
    super.onStop()

    accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener)
}

Java

private AccessibilityManager.AudioDescriptionRequestedChangeListener listener = enabled -> {
    // Preference changed; reflect its state in your media player
};

@Override
protected void onStart() {
    super.onStart();

    accessibilityManager.addAudioDescriptionRequestedChangeListener(getMainExecutor(), listener);
}

@Override
protected void onStop() {
    super.onStop();

    accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener);
}

Fonctionnalité de base

Mises à jour OpenJDK 11

Android 13 commence à actualiser les bibliothèques principales d'Android pour les aligner sur la version LTS d'OpenJDK 11 avec des mises à jour de la bibliothèque et la prise en charge du langage Java 11 pour les développeurs d'applications et de plates-formes. Les modifications apportées à la bibliothèque principale dans Android 13 seront également disponibles pour les appareils Android 12 via une mise à jour du système Google Play du module ART Mainline.

Android 13 inclut les modifications suivantes apportées aux bibliothèques principales:

  • Compatibilité avec le mot clé var pour les variables locales et en tant que paramètres lambda.
  • Nouvelles méthodes dans la classe String:

    • isBlank()
    • lines()
    • repeat()
    • strip()
    • stripLeading()
    • stripTrailing()
  • Prise en charge de Collection.toArray(IntFunction) pour faciliter l'adaptation d'une collection à un tableau.

  • Prise en charge de ifPresentOrElse(), isEmpty(), orElseThrow() et stream() dans les classes java.util Optional, OptionalDouble, OptionalInt et OptionalLong.

  • Compatibilité étendue avec SocketOptions, y compris la réutilisation des sockets.

  • Fonctionnalité NullReader, NullWriter, InputStream, OutputStream et transferTo() Reader qui transfère les caractères lus vers Writer.

  • Ajout de fonctionnalités d'encodage et de décodage d'URL à l'aide de Charsets.

  • Fonctionnalité Charset pour FileReader, FileWriter, PrintStream et PrintWriter.

  • Nouvelles fonctions transferTo(), readNBytes(), readAllBytes() et writeBytes() pour ByteArrayInput ou OutputStream, et Input ou OutputStream.

  • Compatibilité de l'environnement d'exécution et du compilateur avec java.lang.invoke.VarHandle.

  • Mise à jour de java.util.concurrent vers l'API OpenJDK 11 à l'aide de VarHandle en interne.

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