La société Google a présenté la deuxième version trimestrielle de la plateforme mobile ouverte Android 16 (QPR2). Le code source associé à cette nouvelle version est disponible dans le référentiel Git du projet (branche android-16.0.0_r4). Des firmwares ont été préparés pour les appareils Pixel 6/6a/6 Pro, Pixel 7/7a/7 Pro, Pixel 8/8a/8 Pro, Pixel 9/9a/9 Pro/9 Pro XL/9 Pro Fold, Pixel Fold et Pixel Tablet. Dans les mois à venir, des mises à jour avec cette nouvelle version sont attendues pour les smartphones Samsung, Honor, iQOO, Lenovo, Motorola, Nothing, OnePlus, Oppo, realme, Sharp, Sony, Tecno, vivo et Xiaomi. De plus, des versions universelles GSI (Generic System Images) seront créées, adaptées à différents appareils basés sur les architectures ARM64 et x86_64.
La sortie d'Android 16 QPR2 a été créée dans le cadre d'un nouveau calendrier de développement, selon lequel chaque année deux versions majeures d'Android sont publiées : la première au deuxième trimestre (QPR1) et la seconde au quatrième trimestre (QPR2). La version estivale intègre des nouveautés significatives, des modifications du comportement dans le SDK et de nouvelles API. La version hivernale comprend des améliorations, de nouvelles API et des changements qui n'affectent pas la compatibilité avec les applications.
Les principales nouveautés d'Android 16 QPR2 :
- Ajout de la possibilité de lancer des applications graphiques compilées pour Linux. Le lancement se fait via l'application Linux Terminal, permettant d'exécuter dans un environnement Android une machine virtuelle avec Debian GNU/Linux, où il est possible d'exécuter des applications Linux classiques. Pour activer l'interface graphique, un bouton « Affichage » a été ajouté à l'application Linux Terminal, permettant de rediriger l'affichage via des composants de l'environnement Android principal. Une fois le bouton « Affichage » activé dans le terminal, il est possible de lancer le serveur composite Weston, offrant une session de fenêtre minimaliste, puis de l'utiliser pour exécuter n'importe quelle application graphique, par exemple, le lancement du logiciel d'édition graphique GIMP.

La fonctionnalité de la machine virtuelle avec Linux se développe dans le cadre du projet Ferrochrome. Dans l'environnement invité, Debian GNU/Linux est lancé. La virtualisation utilise le cadre AVF (Android Virtualization Framework), basé sur le système d'exploitation hyperviseur. KVM et l'outil crosvm. L'interface graphique utilise le protocole Wayland et est basée sur le compositeur le serveur Weston. L'accélération matérielle graphique utilise VirGL, un GPU virtuel Virgil3D. Le lancement d'applications compilées pour X11 se fait à l'aide du composant DDX XWayland.
- Un thème sombre étendu (Expanded Dark Theme) a été mis en œuvre, qui inverse automatiquement les couleurs dans les applications ne proposant pas de thème sombre. La nécessité d'inversion est déterminée séparément pour chaque application sur la base de l'attribut isLightTheme. L'inversion est appliquée aux éléments de l'interface basés sur Android Views, Composables et WebViews, mais n'est pas utilisée pour les applications avec leurs propres moteurs de rendu, par exemple, basés sur le cadre Flutter.

- Il est désormais possible de sélectionner des formes spécifiques d'icônes, qui seront appliquées à toutes les icônes et raccourcis des catalogues affichés.


- Pour les applications ne fournissant pas d'options d'icônes spécifiques aux thèmes, une fonctionnalité de génération automatique d'icônes stylisées selon les thèmes a été mise en œuvre. Lors de la génération, un filtre de couleur est appliqué à l'icône de lancement existante de l'application.

- La possibilité de continuer l'interaction avec l'application après l'ouverture de la boîte de dialogue système Partager (Share) a été fournie et le contenu de l'interface de l'application est mis à jour pendant la sélection d'un gestionnaire d'échange de données.
- Un ramasse-miettes génératif (Generational Concurrent Mark-Compact Garbage Collector) a été ajouté dans Android Runtime (ART), utilisant un traitement séparé des objets « anciens » et « jeunes », ce qui améliore l'efficacité du nettoyage des objets nouvellement créés ayant une courte durée de vie. L'utilisation du ramasse-miettes génératif réduit le risque de pauses lors de l'allocation de ressources et diminue la charge CPU, ce qui améliore l'efficacité de la consommation d'énergie.
- Les fonctions d'analyse de l'interaction des utilisateurs avec les widgets ont été étendues - l'application peut désormais recevoir des métriques sur les événements d'interaction, tels que les clics, les défilements et les impressions.
- Une alerte concernant l'absence d'alignement mémoire par rapport aux frontières de pages de 16 Ko a été mise en œuvre dans l'application en mode débogage. À l'avenir, pour certaines architectures, un passage à l'utilisation de pages de 16 Ko au lieu de 4 Ko est attendu, ce qui permettra d'améliorer les performances des programmes traitant intensivement avec la mémoire.

- Un décodeur logiciel a été ajouté pour le format audio IAMF (Immersive Audio Model and Formats), utilisé pour la diffusion du son ambiophonique (prenant en compte la propagation des signaux sonores dans l'espace tridimensionnel pour recréer un son le plus proche possible de la réalité).
- L'interface de sélection de périphérique de lecture (Output Switcher) est intégrée avec la possibilité de partager le son via Bluetooth LE, sans nécessiter de modification des paramètres Bluetooth.

- Le système Health Connect a ajouté le support du suivi automatique du nombre de pas parcourus, en utilisant les capteurs disponibles. L'accès à l'information sur le nombre de pas est fourni aux applications disposant des droits d'accès READ_STEPS. La nouvelle méthode permet de simplifier le code dans les applications et de réduire la consommation d'énergie lors du suivi des pas. Health Connect assure un stockage centralisé des données provenant des bracelets de fitness et d'autres dispositifs liés à la santé de l'utilisateur, et organise un accès partagé des différentes applications aux données de santé.
- Une nouvelle API Data Transfer a été ajoutée pour améliorer la fiabilité de la migration des données entre les appareils Android et iOS.
- Une API pour la vérification des développeurs a été ajoutée lors de l'installation des paquets APK. Des commandes ont été ajoutées à l'outil ADB pour simuler la vérification (la possibilité d'installer des applications sans vérification, en utilisant ADB, restera inchangée).
- La protection SMS avec des mots de passe à usage unique (OTP) a été assurée. Pour protéger contre l'interception des mots de passe à usage unique par des applications malveillantes, la livraison des SMS avec hachage pour le service SMS Retriever sera retardée de trois heures pour la plupart des applications. Pendant ce temps, la diffusion de l'événement RECEIVE_SMS sera bloquée, et les requêtes à la base de données avec des SMS seront filtrées.
- Un nouvel état systémique de verrouillage « Secure Lock Device » a été ajouté, lorsque celui-ci est activé (par exemple, via le service de recherche d'appareil perdu « Find My Device »), l'appareil sera immédiatement verrouillé et exigera la saisie d'un code PIN ou d'un mot de passe pour le déverrouiller. Les notifications et rappels en mode verrouillé seront cachés de l'écran de verrouillage, et le déverrouillage biométrique sera temporairement désactivé.
Source : opennet.ru







