Sortie de la plateforme mobile Android 12

Google a publié la version de la plateforme mobile ouverte Android 12. Les textes sources associés à la nouvelle version sont publiés dans le référentiel Git du projet (branche android-12.0.0_r1). Les mises à jour du micrologiciel sont préparées pour les appareils de la série Pixel, ainsi que pour les smartphones fabriqués par Samsung Galaxy, OnePlus, Oppo, Realme, Tecno, Vivo et Xiaomi. De plus, des assemblages GSI (Generic System Images) universels ont été créés, adaptés à divers appareils basés sur les architectures ARM64 et x86_64.

Principales nouveautés :

  • L'une des mises à jour de conception d'interface les plus importantes de l'histoire du projet a été proposée. Le nouveau design met en œuvre le concept « Material You », présenté comme la prochaine génération de Material Design. Le nouveau concept sera automatiquement appliqué à toutes les plates-formes et éléments d'interface, et ne nécessitera aucune modification des développeurs d'applications. En juillet, il est prévu de fournir aux développeurs d'applications la première version stable d'une nouvelle boîte à outils pour développer des interfaces graphiques - Jetpack Compose.
    Sortie de la plateforme mobile Android 12

    La plateforme elle-même présente un nouveau design de widget. Les widgets ont été rendus plus visibles, les coins ont été mieux arrondis et la possibilité d'utiliser des couleurs dynamiques correspondant au thème du système a été fournie. Ajout de contrôles interactifs tels que des cases à cocher et des commutateurs (CheckBox, Switch et RadioButton), par exemple, vous permettant de modifier les listes de tâches dans le widget TODO sans ouvrir l'application.

    Sortie de la plateforme mobile Android 12

    Implémentation d'une transition visuelle plus fluide vers les applications lancées à partir de widgets. La personnalisation des widgets a été simplifiée - un bouton a été ajouté (un cercle avec un crayon) pour reconfigurer rapidement le placement du widget sur l'écran, qui apparaît lorsque vous touchez longuement le widget.

    Sortie de la plateforme mobile Android 12Sortie de la plateforme mobile Android 12

    Des modes supplémentaires sont fournis pour limiter la taille du widget et la possibilité d'utiliser la disposition adaptative des éléments du widget (mise en page réactive) pour créer des mises en page standard qui changent en fonction de la taille de la zone visible (par exemple, vous pouvez créer des mises en page distinctes pour tablettes et smartphones). L'interface du sélecteur de widget implémente un aperçu dynamique et la possibilité d'afficher une description du widget.

    Sortie de la plateforme mobile Android 12
  • Ajout de la possibilité d'adapter automatiquement la palette système à la couleur du fond d'écran sélectionné - le système détecte automatiquement les couleurs dominantes, ajuste la palette actuelle et applique les modifications à tous les éléments de l'interface, y compris la zone de notification, l'écran de verrouillage, les widgets et le contrôle du volume.
  • De nouveaux effets d'animation ont été implémentés, tels qu'un zoom progressif et un déplacement fluide des zones lors du défilement, de l'apparition et du déplacement des éléments sur l'écran. Par exemple, lorsque vous annulez une notification sur l'écran de verrouillage, l'indicateur de temps s'agrandit automatiquement et occupe l'espace que la notification occupait auparavant.
  • La conception de la zone déroulante avec les notifications et les paramètres rapides a été repensée. Des options pour Google Pay et le contrôle de la maison intelligente ont été ajoutées aux paramètres rapides. Maintenir le bouton d'alimentation enfoncé fait apparaître Google Assistant, que vous pouvez commander pour passer un appel, ouvrir une application ou lire un article à haute voix. Les notifications dont le contenu est spécifié par l'application sont affichées sous une forme générale.
    Sortie de la plateforme mobile Android 12
  • Ajout de l'effet de défilement extensible pour indiquer que l'utilisateur a dépassé la zone de défilement et atteint la fin du contenu. Avec le nouvel effet, l’image du contenu semble s’étirer et rebondir. Le nouveau comportement de fin de défilement est activé par défaut, mais il existe une option dans les paramètres pour revenir à l'ancien comportement.
  • L'interface a été optimisée pour les appareils équipés d'écrans pliables.
    Sortie de la plateforme mobile Android 12
  • Des transitions audio plus fluides ont été implémentées - lors du passage d'une application qui émet du son à une autre, le son de la première est désormais coupé en douceur et la seconde augmente en douceur, sans superposer un son sur l'autre.
  • L'interface de gestion des connexions réseau dans le bloc de configuration rapide, le panneau et le configurateur système a été modernisée. Un nouveau panneau Internet a été ajouté qui vous permet de basculer rapidement entre différents fournisseurs et de diagnostiquer les problèmes.
    Sortie de la plateforme mobile Android 12
  • Ajout de la possibilité de créer des captures d'écran qui couvrent non seulement la zone visible, mais également le contenu de la zone de défilement. La possibilité de conserver le contenu en dehors de la zone visible fonctionne pour toutes les applications qui utilisent la classe View pour la sortie. Pour implémenter la prise en charge des captures d'écran défilantes dans les programmes utilisant des interfaces spécifiques, l'API ScrollCapture a été proposée.
    Sortie de la plateforme mobile Android 12
  • La fonction de rotation automatique du contenu de l'écran a été améliorée et peut désormais utiliser la reconnaissance faciale de la caméra frontale pour déterminer si l'écran doit être tourné, par exemple lorsqu'une personne utilise le téléphone en position couchée. Pour garantir la confidentialité, les informations sont traitées à la volée sans stockage intermédiaire d'images. La fonctionnalité n'est actuellement disponible que sur les Pixel 4 et les smartphones plus récents.
  • Mode image dans l’image amélioré (PIP, Picture in Picture) et fluidité accrue des effets de transition. Si vous activez la transition automatique vers PIP avec un geste de retour à la maison (en déplaçant le bas de l'écran vers le haut), l'application passe désormais immédiatement en mode PIP, sans attendre la fin de l'animation. Redimensionnement amélioré des fenêtres PIP avec du contenu non vidéo. Ajout de la possibilité de masquer la fenêtre PIP en la faisant glisser vers le bord gauche ou droit de l'écran. Le comportement lorsque vous touchez une fenêtre PIP a été modifié : une seule pression affiche désormais les boutons de commande et une double pression modifie la taille de la fenêtre.
  • Optimisations des performances :
    • Une optimisation significative des performances du système a été réalisée : la charge sur le processeur des principaux services système a diminué de 22 %, ce qui a entraîné une augmentation de la durée de vie de la batterie de 15 %. En réduisant les conflits de verrouillage, la latence et l'optimisation des E/S, les performances de transition d'une application à une autre sont augmentées et le temps de démarrage de l'application est réduit.

      Dans PackageManager, lorsque vous travaillez avec des instantanés en mode lecture seule, les conflits de verrouillage sont réduits de 92 %. Le moteur de communication interprocessus de Binder utilise une mise en cache légère pour réduire la latence jusqu'à 47 fois pour certains types d'appels. Performances améliorées pour le traitement des fichiers dex, odex et vdex, ce qui entraîne des temps de chargement des applications plus rapides, en particulier sur les appareils dotés de peu de mémoire. Le lancement d'applications depuis des notifications a été accéléré, par exemple, le lancement de Google Photos depuis une notification est désormais 34 % plus rapide.

      Les performances des requêtes de base de données ont été améliorées grâce à l'utilisation d'optimisations en ligne dans l'opération CursorWindow. Pour de petites quantités de données, CursorWindow est devenu 36 % plus rapide, et pour des ensembles de plus de 1000 49 lignes, l'accélération peut aller jusqu'à XNUMX fois.

      Des critères sont proposés pour classer les appareils par performances. En fonction des capacités d'un appareil, une classe de performances lui est attribuée, qui peut ensuite être utilisée dans des applications pour limiter la fonctionnalité des codecs sur des appareils à faible consommation ou pour gérer du contenu multimédia de meilleure qualité sur du matériel puissant.

    • Un mode d'hibernation de l'application a été implémenté, qui permet, si l'utilisateur n'a pas interagi explicitement avec le programme pendant une longue période, de réinitialiser automatiquement les autorisations précédemment accordées à l'application, d'arrêter l'exécution, de restituer les ressources utilisées par l'application, telles que la mémoire, et bloquer le lancement du travail en arrière-plan et l'envoi de notifications push. Le mode peut être utilisé pour la plupart des applications et vous permet de protéger les données utilisateur auxquelles les programmes oubliés depuis longtemps continuent d'avoir accès. Si vous le souhaitez, le mode hibernation peut être désactivé de manière sélective dans les paramètres.
    • L'animation lors de la rotation de l'écran a été optimisée, réduisant le délai avant rotation d'environ 25 %.
    • La structure comprend un nouveau moteur de recherche haute performance AppSearch, qui vous permet d'indexer les informations sur l'appareil et d'effectuer des recherches en texte intégral avec des résultats de classement. AppSearch fournit deux types d'index : pour organiser les recherches dans des applications individuelles et pour rechercher dans l'ensemble du système.
    • Ajout de l'API du mode jeu et des paramètres correspondants qui vous permettent de gérer le profil de performances du jeu - par exemple, vous pouvez sacrifier les performances pour prolonger la durée de vie de la batterie ou utiliser toutes les ressources disponibles pour atteindre un FPS maximum.
    • Ajout de la fonction de lecture pendant le téléchargement pour télécharger les ressources du jeu en arrière-plan pendant le processus d'installation, vous permettant de commencer à jouer avant la fin du téléchargement. application.
    • Réactivité et vitesse de réaction accrues lorsque vous travaillez avec des notifications. Par exemple, lorsqu'un utilisateur appuie sur une notification, celle-ci le dirige désormais immédiatement vers l'application associée. Les applications limitent l'utilisation des trampolines de notification.
    • Appels IPC optimisés dans Binder. En utilisant une nouvelle stratégie de mise en cache et en éliminant les conflits de verrouillage, la latence a été considérablement réduite. Dans l’ensemble, les performances des appels Binder ont à peu près doublé, mais dans certains domaines, des accélérations encore plus significatives ont été obtenues. Par exemple, l'appel de refContentProvider() est devenu 47 fois plus rapide, releaseWakeLock() 15 fois plus rapide et JobScheduler.schedule() 7.9 fois plus rapide.
    • Pour éviter d'éventuels problèmes de performances, il est interdit aux applications d'exécuter des services de premier plan lorsqu'elles s'exécutent en arrière-plan, sauf dans quelques cas particuliers. Pour commencer à travailler en arrière-plan, il est recommandé d'utiliser WorkManager. Pour simplifier la transition, un nouveau type de travail a été proposé dans JobScheduler, qui démarre immédiatement, avec une priorité et un accès au réseau accrus.
  • Modifications affectant la sécurité et la confidentialité :
    • L'interface Privacy Dashboard a été implémentée avec un aperçu général de tous les paramètres d'autorisation, vous permettant de comprendre à quelles données utilisateur les applications ont accès. L'interface comprend également une chronologie qui visualise l'historique des accès des applications aux données du microphone, de la caméra et de la localisation. Pour chaque application, vous pouvez afficher les détails et les raisons de l'accès aux données sensibles.
      Sortie de la plateforme mobile Android 12
    • Des indicateurs d'activité du microphone et de la caméra ont été ajoutés au panneau, qui apparaissent lorsqu'une application accède à la caméra ou au microphone. Lorsque vous cliquez sur les indicateurs, une boîte de dialogue avec les paramètres apparaît, vous permettant de déterminer quelle application fonctionne avec la caméra ou le microphone et, si nécessaire, de révoquer les autorisations.
    • Des commutateurs ont été ajoutés au bloc contextuel des paramètres rapides, avec lesquels vous pouvez éteindre de force le microphone et la caméra. Après la désactivation, les tentatives d'accès à la caméra et au microphone entraîneront l'envoi d'une notification et de données vides à l'application.
      Sortie de la plateforme mobile Android 12
    • Ajout d'une nouvelle notification qui apparaît en bas de l'écran chaque fois qu'une application tente de lire le contenu du presse-papiers via un appel à la fonction getPrimaryClip(). Si le contenu du presse-papiers est copié dans la même application dans laquelle il a été ajouté, la notification n'apparaît pas.
    • Ajout d'une autorisation distincte BLUETOOTH_SCAN pour analyser les appareils à proximité via Bluetooth. Auparavant, cette fonctionnalité était fournie sur la base de l'accès aux informations de localisation de l'appareil, ce qui entraînait la nécessité d'accorder des autorisations supplémentaires aux applications nécessitant un couplage avec un autre appareil via Bluetooth.
    • La boîte de dialogue permettant d'accéder aux informations sur l'emplacement de l'appareil a été modernisée. L'utilisateur a désormais la possibilité de fournir à l'application des informations sur l'emplacement exact ou de fournir uniquement des données approximatives, ainsi que de limiter l'autorité à la seule session active avec le programme (refuser l'accès en arrière-plan). Le niveau de précision des données renvoyées lors de la sélection d'un emplacement approximatif peut être modifié dans les paramètres, y compris en ce qui concerne les applications individuelles.
      Sortie de la plateforme mobile Android 12
    • Les développeurs d'applications ont la possibilité de désactiver les avertissements contextuels qui chevauchent le contenu. Auparavant, la possibilité d'afficher des fenêtres qui se chevauchaient était contrôlée en exigeant que les autorisations soient vérifiées lors de l'installation d'applications affichant des fenêtres qui se chevauchent. Aucun outil n'était disponible pour influencer le chevauchement du contenu des applications dont les fenêtres se chevauchent. Lors de l'utilisation de l'appel Window#setHideOverlayWindows(), toutes les fenêtres qui se chevauchent seront désormais automatiquement masquées. Par exemple, le masquage peut être activé lors de l'affichage d'informations particulièrement importantes, telles que la confirmation d'une transaction.
    • Les applications reçoivent des paramètres supplémentaires pour limiter les opérations de notification lorsque l'écran est verrouillé. Auparavant, vous aviez uniquement la possibilité de contrôler la visibilité des notifications lorsque l'écran est verrouillé, mais vous pouvez désormais activer l'authentification obligatoire pour effectuer toute action avec les notifications lorsque l'écran est verrouillé. Par exemple, une application de messagerie peut exiger une authentification avant de supprimer ou de marquer un message comme lu.
    • Ajout de l'API PackageManager.requestChecksums() pour demander et vérifier la somme de contrôle d'une application installée. Les algorithmes pris en charge incluent SHA256, SHA512 et Merkle Root.
    • Le moteur Web WebView implémente la possibilité d'utiliser l'attribut SameSite pour contrôler le traitement des cookies. La valeur « SameSite=Lax » limite l'envoi de cookies pour les sous-demandes intersites, telles que la demande d'image ou le chargement de contenu via une iframe depuis un autre site. En mode « SameSite=Strict », les cookies ne sont envoyés pour aucun type de requêtes intersites, y compris tous les liens entrants provenant de sites externes.
    • Nous continuons à travailler sur la randomisation des adresses MAC afin d'éliminer la possibilité de suivi des appareils lorsqu'ils sont connectés à un réseau sans fil. Les applications non privilégiées ont un accès limité à l'adresse MAC du périphérique et l'appel à getHardwareAddress() renvoie désormais une valeur nulle.
  • Modifications et améliorations de bas niveau pour les développeurs d'applications :
    • Ajout de la possibilité d'adapter les éléments d'interface aux appareils dotés d'écrans arrondis. Les développeurs peuvent désormais obtenir des informations sur les arrondis de l'écran et ajuster les éléments d'interface qui tombent sur des zones de coin invisibles. Grâce à la nouvelle API RoundedCorner, vous pouvez connaître des paramètres tels que le rayon et le centre de l'arrondi, et grâce à Display.getRoundedCorner() et WindowInsets.getRoundedCorner(), vous pouvez déterminer les coordonnées de chaque coin arrondi de l'écran.
      Sortie de la plateforme mobile Android 12
    • Une nouvelle API CompanionDeviceService a été ajoutée, avec laquelle vous pouvez activer des applications qui contrôlent les appareils compagnons, tels que les montres intelligentes et les trackers de fitness. L'API résout le problème du lancement et de la connexion des applications nécessaires lorsqu'un appareil compagnon apparaît à proximité. Le système active le service lorsqu'un appareil est à proximité et envoie une notification lorsque l'appareil est déconnecté ou lorsque l'appareil entre ou sort de la portée. Les applications peuvent également utiliser le nouveau profil d'appareil compagnon pour configurer plus facilement les autorisations permettant de rejoindre un appareil.
    • Système de prévision de capacité amélioré. Les applications peuvent désormais demander des informations sur le débit total prévu par rapport à l'opérateur, au réseau sans fil spécifique (Wi-Fi SSID), au type de réseau et à la force du signal.
    • L'application d'effets visuels courants, tels que le flou et la distorsion des couleurs, a été simplifiée et peut désormais être appliquée à l'aide de l'API RenderEffect à n'importe quel objet RenderNode ou à l'ensemble de la zone visible, y compris dans une chaîne avec d'autres effets. Cette fonctionnalité, par exemple, vous permet de flouter une image affichée via ImageView sans copier, traiter et remplacer explicitement le bitmap, déplaçant ces actions du côté de la plateforme. De plus, l'API Window.setBackgroundBlurRadius() est proposée, avec laquelle vous pouvez flouter l'arrière-plan d'une fenêtre avec un effet de verre dépoli et mettre en évidence la profondeur en brouillant l'espace entourant la fenêtre.
      Sortie de la plateforme mobile Android 12
    • Outils intégrés de transcodage des flux multimédias pouvant être utilisés dans des environnements avec une application de caméra qui enregistre la vidéo au format HEVC, pour garantir la compatibilité avec les applications qui ne prennent pas en charge ce format. Pour de telles applications, une fonction de transcodage automatique a été ajoutée au format AVC le plus courant.
    • Ajout de la prise en charge du format d'image AVIF (AV1 Image Format), qui utilise les technologies de compression intra-image du format d'encodage vidéo AV1. Le conteneur de distribution de données compressées dans AVIF est complètement similaire à HEIF. AVIF prend en charge les images dans l'espace colorimétrique HDR (High Dynamic Range) et Wide-gamut, ainsi que dans la plage dynamique standard (SDR).
    • Une API OnReceiveContentListener unifiée est proposée pour insérer et déplacer des types étendus de contenu (texte formaté, images, vidéos, fichiers audio, etc.) entre des applications utilisant diverses sources de données, notamment le presse-papiers, le clavier et l'interface glisser-déposer.
    • Un effet de retour tactile, mis en œuvre à l'aide du moteur de vibration intégré aux téléphones, a été ajouté, dont la fréquence et l'intensité de la vibration dépendent des paramètres du son actuellement émis. Le nouvel effet vous permet de ressentir physiquement le son et peut être utilisé pour ajouter un réalisme supplémentaire aux jeux et aux programmes sonores.
    • En mode immersif, dans lequel le programme est affiché en plein écran avec les panneaux de service masqués, la navigation est simplifiée grâce aux gestes de contrôle. Par exemple, les livres, les vidéos et les photos peuvent désormais être parcourus d'un seul geste.
    • Dans le cadre du projet Mainline, qui vous permet de mettre à jour des composants système individuels sans mettre à jour l'ensemble de la plateforme, de nouveaux modules système pouvant être mis à jour ont été préparés en plus des 22 modules disponibles dans Android 11. Les mises à jour affectent les composants non matériels téléchargés via Google Play séparément des mises à jour du micrologiciel OTA du fabricant. Parmi les nouveaux modules pouvant être mis à jour via Google Play sans mettre à jour le firmware figurent ART (Android Runtime) et un module de transcodage vidéo.
    • Une API a été ajoutée à la classe WindowInsets pour déterminer la position d'affichage des indicateurs d'utilisation de la caméra et du microphone (les indicateurs peuvent chevaucher les contrôles dans les programmes déployés en plein écran, et grâce à l'API spécifiée, l'application peut ajuster son interface).
    • Pour les appareils gérés de manière centralisée, une option a été ajoutée pour empêcher l'utilisation de commutateurs pour désactiver le microphone et la caméra.
    • Pour les applications CDM (Companion Device Manager) exécutées en arrière-plan, qui contrôlent les appareils compagnons tels que les montres intelligentes et les trackers de fitness, il est possible de lancer des services de premier plan.
    • Au lieu d'une édition destinée aux appareils portables, Android Wear et Samsung ont décidé de développer une nouvelle plate-forme unifiée combinant les capacités d'Android et de Tizen.
    • Les capacités des éditions Android pour les systèmes d'infodivertissement automobiles et les téléviseurs intelligents ont été étendues.

    Source: opennet.ru

  • Ajouter un commentaire