Le moteur de thème Monet de Material You est le point fort d'Android 12, et voici comment il fonctionne

Material You de Google n'est pas si compliqué à comprendre, même s'il n'y a pas beaucoup d'informations au même endroit. Vérifiez le ici!

Liens rapides

  • Comment fonctionne le moteur de thème Monet
  • Qu’est-il arrivé aux superpositions de ressources d’exécution (RRO) ?
  • Material You s'améliore encore
  • Changements dans Android 13

De loin le plus grand changement dans Android 12 est Matériel Vous, la dernière version du langage de conception Material de Google. Matériel Vous, comme le décrit Google, «cherche à créer des designs personnels pour chaque style, accessibles à tous les besoins, vivants et adaptatifs pour chaque écran." Lors du développement d'Android 12, Google a créé un nouveau moteur de thème nommé « monet » qui génère une riche palette de couleurs pastel. dérivé du fond d’écran de l’utilisateur. Ces couleurs sont ensuite appliquées à diverses parties du système et leurs valeurs sont mises à disposition via un API que les applications de l'utilisateur peuvent appeler, laissant ainsi les applications décider si elles souhaitent également recolorer leur Interface utilisateur. Google a misé tout sur Material You et la société a mis à jour la plupart de ses applications pour incorporer des couleurs dynamiques.

Pour un cours intensif sur l'histoire du Material Design, il a été lancé pour la première fois avec Android 5 Lollipop, avec un accent inhérent sur l'expérience utilisateur. Comme Google le dit, "Le matériel est un système adaptable de directives, de composants et d'outils qui prennent en charge les meilleures pratiques de conception de l'interface utilisateur. " Il présentait des palettes de couleurs plates et pastel, de la profondeur, un éclairage doux et réaliste la physique. Android 9 Pie a vu l'avènement de Material Design 2, même s'il s'agissait d'une refonte visuelle loin d'être aussi importante que la première itération de Material Design. Android 12 a vu le lancement de Conception matérielle 3, ce qui constitue une refonte plus importante.

Cependant, supprimez le moteur de thème des couleurs, et Material You n'est pas réellement que différent. En fait, l’élément personnel désigné par le « Vous » disparaît plus ou moins entièrement.

Comment fonctionne le moteur de thème Monet

Le moteur de thème "monet" est l'endroit où la magie opère lorsqu'il s'agit de Material You, et c'est l'algorithme qui décide quelles couleurs sont sélectionnées dans un fond d'écran. « Monet » a été ajouté à AOSP dans Android 12L. Les développeurs de ROM personnalisées peuvent également l'implémenter implémentation open source de « monet ». Les développeurs d'applications tierces sont gratuits pour ajouter la prise en charge des couleurs dynamiques pour le moment, même si cela ne fonctionne actuellement que sur un nombre limité d’appareils.

Je suis sûr que la première question que la plupart des gens se posent à propos de Material You est de savoir comment il parvient à sélectionner des couleurs qui fonctionnent ensemble et contrastent bien ensemble à chaque fois. J'ai essayé d'innombrables fonds d'écran avec l'intention de briser l'algorithme de sélection des couleurs, mais aucun n'y est parvenu. Il choisit toujours des couleurs qui fonctionnent ensemble à chaque fois, ce qui est pour le moins un exploit impressionnant. Pour avoir un aperçu du fonctionnement de l'algorithme de sélection des couleurs d'Android 12, l'un des deux œufs de Pâques se présente sous la forme d'un widget que vous pouvez ajouter à votre bureau. Le widget affiche toutes les couleurs sélectionnées par monet et vous pouvez appuyer dessus pour l'afficher en plein écran. Lorsqu'il est en plein écran, vous pouvez ensuite appuyer sur une couleur pour la partager. Lorsque vous le partagez, le résultat ressemble à ceci :

A1-600 (@android:color/system_accent1_600)
currently: #626200

Lorsqu'un utilisateur change son fond d'écran sur un appareil Android 12, l'image est analysée pour sélectionner une couleur et choisissez algorithmiquement les couleurs primaires, secondaires, tertiaires et d'erreur en utilisant une graine initiale couleur. Deux couleurs neutres sont également choisies qui donnent à Material You sa teinte globale. Parallèlement, elle applique la théorie des couleurs et les règles d’accessibilité. A partir de ces couleurs, l'algorithme crée des palettes tonales allant de 0 % de luminance (NOIR) à 100 % (BLANC). La thématique dynamique ou la thématique personnalisée utilise les valeurs de ces palettes tonales pour définir les attributs de thème pour cette gamme de couleurs. Il extrait jusqu'à 128 couleurs du papier peint vers l'espace colorimétrique CIELAB en tant qu'intermédiaire, puis ces couleurs sont mappé sur CAM16. Le CAM16 ccouleur unapparence mmodèle est utilisé pour trier et filtrer les couleurs afin de déterminer la couleur de départ réelle, puis des palettes sont générées en utilisant cette couleur de départ. Ensuite, ces couleurs sont mappées en RVB pour définir les couleurs dans tout le système.

CIELAB est parfois également appelé « L*a*b* ». L* pour la luminosité/luminosité perçue, et a* et b* pour les quatre couleurs uniques de la vision humaine: rouge, vert, bleu et jaune. La luminosité est utilisée pour calculer un rapport de contraste, garantissant la lisibilité. Une fois appliquées, vous obtenez toutes vos jolies couleurs à l'échelle du système qui peuvent être implémentées dans l'interface utilisateur du système, les applications et bien plus encore.

Qu’est-il arrivé aux superpositions de ressources d’exécution (RRO)?

Les RRO ne sont allés nulle part et Material You fonctionne via l'API Fabricated Overlays. Dans le passé, nous avons parlé comment les superpositions fabriquées peuvent être utilisées pour ramener les thèmes sans racines. Les superpositions fabriquées sont un nouvel ajout à Android 12 et fonctionnent légèrement différemment des RRO. D'une part, les RRO travailler via une superposition APK installée sur un appareil, alors qu'une superposition fabriquée indique simplement à une application quelles couleurs utiliser utiliser.

Les superpositions fabriquées sont également un peu plus limitées que les RRO. Avant Android 11, les RRO pouvaient remplacer à peu près n'importe quelle ressource: booléens, entiers, dimensions, attributs, mises en page et même bruts fichiers de données. Android 11 a apporté quelques modifications au fonctionnement des RRO, rendant les mises en page prioritaires plus vraiment réalisables. En revanche, les superpositions fabriquées ne peuvent remplacer que les valeurs pouvant être représentées sous forme d'entiers. Cela inclut les entiers, les dimensions, les booléens et les couleurs. Vous ne pouvez pas les utiliser pour remplacer des ressources de données brutes, des mises en page, des chaînes ou des tableaux – du moins pas facilement.

Pourtant, ces limitations n’ont pas vraiment d’importance lorsqu’il s’agit de Material You et de monet. Les superpositions fabriquées permettent au système d'appliquer facilement des superpositions de couleurs et de dimensions à la volée, sans attendre la compilation d'un APK ou le redémarrage du système pour l'appliquer.

Material You s'améliore encore

Les couleurs dynamiques de Material You ne sont certainement pas sans problèmes, et il n'est pas si difficile de les briser fondamentalement. Si vous changez rapidement de fond d'écran, par exemple, vous pouvez instituer efficacement une attaque par déni de service. Michaal Rahman a confirmé que cette attaque par déni de service a été corrigée dans Android 12L. J'espère sincèrement que Material You sera amélioré dans les versions futures, car même si je l'aime ainsi que son concept, il nécessite beaucoup de travail. D'après ma propre expérience personnelle, je pense que ses bugs expliquent en partie pourquoi il n'a pas été ajouté à AOSP... cela, et le fait que Google en a effectivement fait une exclusivité chronométrée pour la série Pixel. J'ai même rencontré un problème récemment après la mise à jour vers le correctif de décembre d'Android 13 sur mon Google Pixel 7 Pro, que j'ai ensuite identifié dans le logcat comme étant causé par Material You et Google Pixel. lanceur.

De manière ennuyeuse, Android 12 a supprimé les choix de polices personnalisées et d'icônes personnalisées en faveur de la thématique dynamique de Material You. Le système de thème a été introduit pour la première fois avec l’application Pixel Themes et était basé sur le cadre de thème basé sur la superposition d’Android. Bien que le système de thèmes Material You d’Android 12 soit plus personnalisable, il ne propose pas les styles personnalisés introduits par Google dans Android 10. Dans un commentaire sur le Google Issue Tracker, un Googleur a donné le raisonnement suivant pour sa suppression :

« Les fonctionnalités de style personnalisé (police, forme d'icône, pack d'icônes et couleur d'accent) dans R sont remplacées par la nouvelle fonctionnalité de thème dynamique que nous introduisons dans S. Nous considérons la nouvelle fonctionnalité de thème dynamique comme plus moderne et intelligente. Une expérience simple et agréable dont nous espérons que tous les utilisateurs pourront profiter.

Il semble peu probable que Google réintroduise des polices et des choix d’icônes personnalisées à l’avenir. De nombreux utilisateurs ont exprimé leur déception face aux modifications apportées à Material You par Google, et étant donné à quel point elles peuvent être cassées, je comprends parfaitement pourquoi. Nous espérons que Google améliorera sa mise en œuvre, ou que les autres constructeurs ne tombent pas dans les mêmes pièges dans leurs implémentations que Google a.

Changements dans Android 13

Google a amélioré Material You pour la libération de Android 13, et l'une des premières améliorations a été l'ajout de cinq styles de couleurs supplémentaires. Ces nouveaux styles de couleurs sont appelés TONAL_SPOT, VIBRANT, EXPRESSIVE, SPRITZ, RAINBOW et FRUIT_SALAD. Nous avons pris des captures d'écran et les avons montrées ci-dessous.

  • TONAL_SPOT: Matériau par défaut que vous coloriez
  • VIBRANT: génère une palette plus tonale avec des teintes légèrement variables et des couleurs secondaires et d'arrière-plan plus colorées
  • EXPRESSIF: génère une palette avec plusieurs teintes proéminentes plus colorées que VIBRANT
  • SPRITZ: génère une palette de couleurs plus faible

Android 13 a également introduit la possibilité pour les développeurs d'avoir également des icônes d'application thématiques, afin qu'ils puissent adopter le thème du système. Les développeurs peuvent prendre en charge cela en fournissant à la fois une icône adaptative et une icône d'application monochrome dans leurs applications. Le lanceur doit cependant toujours prendre en charge les icônes thématiques, telles que le lanceur Google Pixel.


Merci au membre senior XDA kdrag0n, développeur de ProtonAOSP et une recréation du système de thème Material You, pour leur aide dans cet article !