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 pour les 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 dans les lanceurs Android compatibles sont teintées pour hériter de la couleur du fond d'écran et d'autres thèmes choisis par l'utilisateur.

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ématiques (c'est-à-dire qu'il a activé l'option Icônes thématiques dans les paramètres système) et que le lanceur est compatible avec cette fonctionnalité, le système utilise la couleur du fond d'écran et du thème choisis par l'utilisateur pour déterminer la couleur de la teinte, qu'il applique ensuite à l'icône d'application monochrome.

L'écran d'accueil n'affiche PAS l'icône d'application thématique, mais l'icône d'application adaptative ou standard dans les scénarios suivants:

  • Si l'utilisateur n'a pas activé les icônes d'application à thème
  • Si votre application ne fournit pas d'icône d'application monochrome
  • 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.

Ces modifications n'ont aucune incidence sur les applications qui ne sont pas multilingues.

Prise en charge améliorée du texte et des langues

Android 13 inclut plusieurs fonctionnalités de texte et de langue qui vous aident à offrir une expérience plus soignée, comme décrit dans les sections suivantes:

Caractère de trait d'union plus rapide

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 césure sont optimisées jusqu'à 200 %. Vous pouvez donc l'activer dans votre TextView sans presque aucun impact sur les performances de rendu. Pour activer le césure plus rapidement, utilisez les fréquences fullFast ou normalFast dans setHyphenationFrequency().

API de conversion de texte

Les personnes qui parlent des langues comme le japonais et le chinois utilisent des méthodes de saisie de lettres phonétiques, ce qui ralentit souvent la recherche et des fonctionnalités telles que la saisie semi-automatique. Dans Android 13, les applications peuvent appeler la nouvelle API de conversion de texte afin que les utilisateurs puissent trouver ce qu'ils recherchent plus rapidement et plus facilement. Auparavant, par exemple, un utilisateur japonais devait suivre ces étapes 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. Enfin, obtenez ses résultats de recherche

Avec 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 sautant 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 qui étaient rognées dans Android 12 (ci-dessus) et qui sont désormais mieux positionnées et non rognées dans Android 13 (ci-dessous).

Amélioration du retour à la ligne en japonais

À partir d'Android 13, les TextViews peuvent encapsuler le texte en bunsetsu (la plus petite unité de mots qui semble naturel) ou par des expressions, plutôt que 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 :

  • Les ressources de traduction en anglais (Canada) en‑CA et en anglais (République des Philippines) en‑PH utilisent toutes les deux les ressources de traduction en anglais (États-Unis) en lorsqu'aucune ressource de traduction n'est disponible au lieu 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 couleur

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 ajouter la carte.

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 obtenir une documentation détaillée, consultez Mettre à jour votre application pour prendre en charge un geste Retour prédictif. Vous pouvez également essayer notre atelier de programmation.

Bluetooth LE Audio

L'audio basse consommation (LE) est une technologie audio sans fil conçue 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 de l'intonation non occidentale et des performances plus expressives à l'aide de contrôleurs par note.

Améliorations 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 SplashScreen:

  • 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 d'exécution a également été repensé pour le rendre principalement non bloquant, ce qui réduit encore 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 plus de validations de bytecode au moment de l'installation, ce qui évite les dépenses liées à la validation au moment de l'exécution et maintient les temps de démarrage des applications rapides.

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 d'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 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. De plus, 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 de 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 à aucune des conditions de 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 concernant les autorisations, ce qui renforce la confiance des utilisateurs. Vous pouvez envisager d'afficher 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 exécutant d'anciennes versions d'Android ignorent le signataire rotatif et utilisent plutôt 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 d'effectuer une rotation, le système applique par défaut le schéma de signature v3.1.

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

API_LEVEL est 32 ou inférieur.

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 les codes d'erreur Keystore/KeyMint et l'état de la possibilité de réessayer l'erreur. 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. La création de rapports d'erreurs améliorée 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 de générer des 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'interface utilisateur du système, une meilleure 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 est compatible avec les objets RuntimeShader programmables, dont le comportement est défini à l'aide du langage AGSL (Android Graphics Shading Language). AGSL partage une grande partie de sa syntaxe avec GLSL, mais fonctionne dans le moteur de rendu Android pour personnaliser la peinture dans le canevas d'Android et filtrer le 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 pour Choreographer et recevoir des informations sur la chronologie des frames. Dans Android 13 (niveau d'API 33), Choreographer renvoie plusieurs heures de présentation possibles et leurs délais de frame correspondants. Les applications peuvent choisir l'heure de la présentation et informer SurfaceFlinger de leur choix. SurfaceFlinger n'essaie ensuite pas d'appliquer des transactions ni de verrouiller des tampons 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). Vous obtenez ainsi une qualité vidéo plus proche de la réalité, avec des couleurs plus riches, des tons clairs plus éclatants 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 des 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 de description audio en l'interrogeant avec 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 principales bibliothèques Android afin de s'adapter à la version LTS OpenJDK 11, avec des mises à jour de la bibliothèque et la compatibilité avec le 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:

  • Prise en charge du mot clé var pour les variables locales et en tant que lambdas de paramètres.
  • 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.

  • Compatibilité avec 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é Reader NullReader, NullWriter, InputStream, OutputStream et transferTo() qui transfère les caractères lus vers un 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.