Google a présenté la deuxième version bêta de sa plateforme mobile ouverte Android 15. Le lancement d'Android 15 est prévu pour le troisième trimestre de 2024. Un programme de test anticipé a été proposé pour évaluer les nouvelles fonctionnalités de la plateforme. Des builds du firmware ont été préparées pour les appareils Pixel 6/6a/6 Pro, Pixel 7/7a/7 Pro, Pixel 8/8a/8 Pro, Pixel Fold et Pixel Tablet.
Les changements dans Android 15 Developer Preview 2 par rapport à la première version bêta :
- Pour les applications, il est maintenant possible d'utiliser de petits écrans auxiliaires (Cover screen), qui équipent certains smartphones pliables, tels que le Samsung Galaxy Z Flip. Par exemple, l'écran auxiliaire permet de répondre rapidement à un appel, de répondre à un message, de contrôler la caméra et d'effectuer d'autres actions sans déplier l'appareil.

- Dans le widget TextView, l'attribut elegantTextHeight est activé par défaut, ce qui signifie que des polices avec des interlignes plus grands, améliorant la lisibilité du texte, seront utilisées au lieu d'une police compacte.


- Les capacités de travail via des canaux de communication par satellite ont été élargies. De nouveaux éléments d'interface ont été ajoutés pour uniformiser l'utilisation des communications par satellite. Les applications ont la possibilité de déterminer l'utilisation du canal par satellite grâce à la méthode ServiceState.isUsingNonTerrestrialNetwork(). L'interface pour le traitement des SMS/MMS prend désormais en charge l'envoi et la réception de messages via des canaux par satellite.

- Des efforts ont été déployés pour faciliter l'utilisation des téléphones NFC pour le paiement sans contact. Les applications peuvent maintenant mettre l'adaptateur NFC en mode veille, où l'appareil reçoit des demandes NFC et les envoie à un processus désigné pour traitement, mais ne répond pas et ne transmet pas de données aux lecteurs NFC.
- Les capacités de rendu des documents PDF (API PdfRenderer) ont été considérablement élargies. Par exemple, des outils ont été fournis pour rendre des fichiers protégés par mot de passe, afficher des annotations, éditer des formulaires, rechercher dans le document et sélectionner des zones à copier via le presse-papiers. Des optimisations ont été ajoutées pour réduire la consommation de ressources et accélérer la visualisation des fichiers PDF locaux. L'implémentation de l'API PdfRenderer a été déplacée dans un module distinct, mis à jour via Google Play et indépendamment de la plateforme principale.

- Les capacités de reconnaissance automatique de la langue et de changement de langue ont été améliorées. Les applications disposent de nouvelles options pour affiner le changement de langue pendant la reconnaissance vocale. Par exemple, le mode EXTRA_LANGUAGE_SWITCH_INITIAL_ACTIVE_DURATION_TIME_MILLIS permet un changement uniquement au début d'une session audio, tandis que le mode EXTRA_LANGUAGE_SWITCH_MATCH_SWITCHES annule le changement de langue après un certain nombre de changements, ce qui peut être utile dans des situations où l'on sait à l'avance qu'une seule langue sera utilisée dans une session.
- Des moyens de gestion flexible des sauts de ligne ont été fournis. Dans le widget TextView, pour améliorer la lisibilité, les balises et permettent de contrôler le déplacement de groupes de mots ou de parties de mots vers une autre ligne. Par exemple, dans la phrase « La puissance et l'intelligence derrière Pixel 8 Pro. », l'expression « Pixel 8 Pro » sera toujours affichée sur une seule ligne.


- Les capacités de filtrage des requêtes intent ont été élargies. À l'aide de la classe UriRelativeFilterGroup, il est possible de définir des règles pour bloquer ou autoriser des requêtes en fonction du contenu des paramètres d'URL et des fragments d'URL. Les règles de filtrage peuvent également être spécifiées via une nouvelle balise dans le manifeste de l'application.
- La prise en charge de l'API OpenJDK a été étendue. Par exemple, la prise en charge de méthodes supplémentaires dans les classes Math et StrictMath, des collections et des listes ordonnées, l'utilisation de ByteBuffer dans Deflater et la mise à jour des clés a été ajoutée.
- Une API a été ajoutée, permettant aux applications de déterminer l'activation de l'enregistrement d'écran. L'application peut définir un gestionnaire de rappel qui sera appelé si l'enregistrement d'écran est activé et si la fenêtre de l'application se trouve dans la zone visible. Cette fonctionnalité proposée permet d'avertir l'utilisateur de l'enregistrement en cas d'affichage de données confidentielles.
- Une API ApplicationStartInfo a été ajoutée, permettant d'obtenir des informations sur l'état au démarrage du programme. Par exemple, il est possible de savoir si les composants de l'application sont mis en cache (états cold, warm ou hot), combien de temps ont duré les différentes étapes de démarrage, quelle a été la raison de l'activation, ainsi que de déterminer des indicateurs utiles pour optimiser la vitesse de démarrage.
- La gestion de l'état d'arrêt a été modifiée, où l'exécution de l'application est suspendue jusqu'à une action de l'utilisateur liée à l'application. La nouvelle version offre des capacités pour que l'application détermine la fin de la mise en pause : gestion du message BOOT_COMPLETED ou utilisation de la méthode ApplicationStartInfo.wasForceStopped().
- En plus de la méthode StorageStats.getAppBytes(), qui permet d'obtenir des données générales sur la taille de l'application installée, une méthode StorageStats.getAppBytesByDataType() a été ajoutée, permettant d'obtenir des informations distinctes sur la taille du paquet APK, du code compilé, ainsi que des données extraites et générées.
- Des modifications ont été apportées à l'API du lancement des services prioritaires (Foreground Service). Un nouveau type de service prioritaire a été ajouté — mediaProcessing, qui peut être utilisé pour des opérations gourmandes en ressources sur le contenu multimédia, par exemple, la recodification d'un format à un autre.
- Une nouvelle API a été proposée pour travailler avec le moteur de stockage basé sur SQLite, offrant accès aux fonctionnalités avancées de SQLite.
- Il est possible de gérer la réserve de luminosité pour HDR (le rapport entre le blanc le plus lumineux dans une image HDR et la luminosité du blanc dans une image en plage dynamique standard). Pour définir la réserve de luminosité, une méthode setDesiredHdrHeadroom a été ajoutée, permettant d'équilibrer la luminosité lors de l'affichage du contenu en SDR et en HDR.

- La prise en charge de la norme CTA-2075 a été ajoutée, définissant les capacités de normalisation du volume pour éviter les changements de niveau sonore pour différents contenus. L'alignement du volume est réalisé grâce à la définition de métadonnées sur les caractéristiques des haut-parleurs et du volume du contenu audio AAC. Pour la normalisation du volume, un objet LoudnessCodecController a été proposé ainsi qu'une méthode OnLoudnessCodecUpdateListener, ajustant les paramètres de volume avant d'appeler le codec.
- Dans AndroidX media3 ExoPlayer 1.0, l'utilisation du son spatial pour le son multicanal est activée par défaut, si le son spatial est supporté sur l'appareil. La classe Virtualizer a été déclarée obsolète, et pour déterminer le comportement et les capacités du son spatial, la classe Spatializer doit être utilisée.
- Ajout de la classe AutomaticZenRules, permettant aux applications de configurer des règles pour le mode "Ne pas déranger" et de déterminer les situations dans lesquelles ces règles doivent être appliquées.

Source : opennet.ru








