Il motore del tema Monet di Material You è il grande punto forte di Android 12 ed ecco come funziona

click fraud protection

Il materiale di Google You non è poi così complicato da capire, anche se non ci sono molte informazioni in un unico posto. Controllalo qui!

Link veloci

  • Come funziona il motore dei temi Monet
  • Cosa è successo ai Runtime Resource Overlays (RRO)?
  • Material You sta ancora migliorando
  • Cambiamenti in Android 13

Di gran lunga il cambiamento più grande in Androide 12 È Materiale Tu, l'ultima versione del linguaggio di progettazione dei materiali di Google. Materiale Tu, come descrive Google, "cerca di creare design personali per ogni stile, accessibili per ogni esigenza, vivi e adattivi per ogni schermo."Durante lo sviluppo di Android 12, Google ha creato un nuovo motore di temi nome in codice "monet" che genera una ricca tavolozza di colori pastello derivato dallo sfondo dell'utente. Questi colori vengono poi applicati a varie parti del sistema e i loro valori vengono resi disponibili tramite un file API che le applicazioni dell'utente possono chiamare, consentendo così alle app di decidere se vogliono ricolorare anche i propri file interfaccia utente. Google ha puntato tutto su Material You e la società ha aggiornato la maggior parte delle sue app per incorporare colori dinamici.

Si tratta di un corso intensivo sulla storia del Material Design, lanciato per la prima volta con Android 5 Lollipop, con un focus intrinseco sull'esperienza dell'utente. COME Lo mette Google, "Il materiale è un sistema adattabile di linee guida, componenti e strumenti che supportano le migliori pratiche di design dell'interfaccia utente." Presentava tavolozze di colori piatti, pastello, profondità, luci soffuse e realistiche fisica. Android 9 Pie ha visto l'avvento di Material Design 2, anche se non si è trattato di una revisione visiva così ampia come lo è stata la prima iterazione di Material Design. Android 12 ha visto il lancio di Progettazione dei materiali 3, che è una revisione più significativa.

Tuttavia, togli il motore dei temi cromatici e Material You in realtà non lo è Quello diverso. Infatti l'elemento personale denotato dal “Tu” scompare più o meno del tutto.

Come funziona il motore dei temi Monet

Il motore del tema "monet" è il luogo in cui avviene la magia quando si tratta di Material You, ed è l'algoritmo che decide quali colori vengono selezionati da uno sfondo. "Monet" è stato aggiunto ad AOSP in Android 12L. Anche gli sviluppatori di ROM personalizzate possono implementarlo implementazione open source di “monet”. Gli sviluppatori di app di terze parti sono gratuiti per aggiungere il supporto per i colori dinamici in questo momento, anche se al momento funzionerà solo su un numero limitato di dispositivi.

La prima domanda che sono sicuro la maggior parte delle persone si fa riguardo a Material You è come riesca a selezionare i colori che funzionano insieme e contrastano bene insieme ogni volta. Ho provato innumerevoli sfondi con l'intenzione di rompere l'algoritmo di selezione del colore, ma nessuno di loro è riuscito a farlo. Sceglie ancora colori che funzionano insieme ogni volta, il che è un'impresa a dir poco impressionante. Per avere un'idea di come funziona l'algoritmo di selezione dei colori di Android 12, una delle due uova di Pasqua si presenta sotto forma di widget che puoi aggiungere al tuo desktop. Il widget mostra tutti i colori selezionati da Monet e puoi toccarlo per visualizzarlo a schermo intero. Quando è a schermo intero, puoi toccare un colore per condividerlo. Quando lo condividi, l'output è simile al seguente:

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

Quando un utente cambia lo sfondo su un dispositivo Android 12, l'immagine viene analizzata per selezionare un colore e scegli algoritmicamente i colori Primario, Secondario, Terziario ed Errore utilizzando un seme iniziale colore. Vengono scelti anche due colori neutri che conferiscono a Material You la sua tinta generale. Allo stesso tempo, applica la teoria dei colori e le regole di accessibilità. Da questi colori, l'algoritmo crea tavolozze tonali che vanno dallo 0% di luminanza (NERO) al 100% (BIANCO). I temi dinamici o personalizzati utilizzano i valori in queste tavolozze tonali per impostare gli attributi del tema per quella gamma di colori. Estrae fino a 128 colori dallo sfondo allo spazio colore CIELAB come intermediario, quindi quei colori vengono mappato su CAM16. Il CAM16 Ccolore UNaspetto Model viene utilizzato per ordinare e filtrare i colori per determinare il colore seme effettivo, quindi le tavolozze vengono generate utilizzando quel colore seme. Successivamente, tali colori vengono mappati nuovamente su RGB per l'impostazione dei colori in tutto il sistema.

CIELAB viene talvolta indicato anche come "L*a*b*". L* per la luminosità/leggerezza percepita e a* e b* per i quattro colori unici della visione umana: rosso, verde, blu e giallo. La luminosità viene utilizzata per calcolare un rapporto di contrasto, garantendo la leggibilità. Una volta applicati, ottieni tutti i tuoi graziosi colori a livello di sistema che possono essere implementati nell'interfaccia utente del sistema, nelle app e altro ancora.

Cosa è successo ai Runtime Resource Overlays (RRO)?

Gli RRO non sono andati da nessuna parte e Material You funziona tramite l'API Fabricated Overlays. In passato ne abbiamo parlato come è possibile utilizzare gli overlay fabbricati per ripristinare temi senza radici. Gli overlay fabbricati sono una nuova aggiunta ad Android 12 e funzionano in modo leggermente diverso dagli RRO. Per prima cosa, le RRO funziona tramite un APK overlay installato su un dispositivo, mentre un Overlay fabbricato indica semplicemente a un'app quali colori usare utilizzo.

Anche gli Overlay fabbricati sono leggermente più limitati degli RRO. Prima di Android 11, le RRO potevano farlo sovrascrivono praticamente qualsiasi risorsa: booleani, numeri interi, dimensioni, attributi, layout e persino dati grezzi file di dati. Android 11 ha apportato alcune modifiche al funzionamento degli RRO, rendendo la sostituzione dei layout non più fattibile. Gli Overlay fabbricati, d'altra parte, possono sovrascrivere solo valori che possono essere rappresentati come numeri interi. Ciò include numeri interi, dimensioni, valori booleani e colori. Non puoi usarli per sovrascrivere risorse di dati grezzi, layout, stringhe o array, almeno non facilmente.

Tuttavia, queste limitazioni non hanno molta importanza quando si tratta di Material You e Monet. Le sovrapposizioni fabbricate consentono al sistema di applicare facilmente sovrapposizioni di colori e dimensioni al volo, senza attendere la compilazione di un APK o il riavvio del sistema per applicarlo.

Material You sta ancora migliorando

I colori dinamici di Material You non sono certamente esenti da problemi, e non è poi così difficile romperli fondamentalmente. Se cambi rapidamente lo sfondo, ad esempio, puoi farlo istituire effettivamente un attacco di negazione del servizio. Mishaal Rahman ha confermato che questo attacco di negazione del servizio è stato risolto in Android 12L. Spero sinceramente che Material You venga migliorato nelle versioni future, poiché, sebbene lo adoro e il suo concetto, ha bisogno di molto lavoro. Dalla mia esperienza personale, ritengo che i suoi bug siano in parte il motivo per cui non è stato aggiunto ad AOSP... questo e il fatto che Google l'abbia effettivamente resa un'esclusiva temporale per la serie Pixel. Recentemente ho anche riscontrato un problema dopo l'aggiornamento alla patch di dicembre di Android 13 sul mio Google Pixel 7 Pro, che in seguito ho rintracciato nel logcat come causato da Material You e Google Pixel lanciatore.

In modo fastidioso, Android 12 ha rimosso le scelte di caratteri e icone personalizzate a favore della tematizzazione dinamica di Material You. Il sistema di temi è stato introdotto per la prima volta con l'app Pixel Themes ed era basato sul framework di temi basato su overlay di Android. Sebbene il sistema di temi Material You di Android 12 sia più personalizzabile, non presenta gli stili personalizzati introdotti da Google in Android 10. In un commento sul Google Issue Tracker, un googler ha fornito la seguente motivazione per la sua rimozione:

"Le funzionalità di stile personalizzato (carattere, forma dell'icona, pacchetto di icone e colore in risalto) in R verranno sostituite dalla nuova funzionalità di tematica dinamica che stiamo introducendo in S. Consideriamo la nuova funzionalità di tematizzazione dinamica più moderna e intelligente. Un’esperienza semplice e piacevole che speriamo tutti gli utenti possano apprezzare”.

Sembra improbabile che Google reintrodurrà i caratteri e le scelte di icone personalizzate in futuro. Molti utenti hanno espresso il loro disappunto per le modifiche di Material You di Google e, considerato quanto possa essere rotto, capisco perfettamente il motivo. Speriamo che Google migliori la sua implementazione o qualcosa del genere altri OEM non cadono nelle stesse trappole nelle loro implementazioni di cui dispone Google.

Cambiamenti in Android 13

Google ha migliorato Material You per il rilascio di Androide 13e uno dei primi miglioramenti è stata l'aggiunta di cinque stili di colore extra. Questi nuovi stili di colore si chiamano TONAL_SPOT, VIBRANT, EXPRESSIVE, SPRITZ, RAINBOW e FRUIT_SALAD. Abbiamo preso degli screenshot e li abbiamo mostrati di seguito.

  • TONAL_SPOT: colori predefiniti del materiale
  • VIBRANTE: genera una tavolozza più tonale con tonalità leggermente variabili e colori secondari e di sfondo più colorati
  • ESPRESSIVA: genera una tavolozza con molteplici tonalità prominenti che sono più colorate che VIBRANTI
  • SPRITZ: genera una tavolozza di colori più bassi

Android 13 ha inoltre introdotto la possibilità per gli sviluppatori di avere anche icone delle app a tema, in modo che possano assumere il tema del sistema. Gli sviluppatori possono supportare questa funzionalità fornendo sia un'icona adattiva che un'icona monocromatica nelle loro app. Il launcher deve comunque supportare le icone a tema, come il launcher di Google Pixel.


Grazie al membro senior di XDA kdrag0n, sviluppatore sia di ProtonAOSP che una ricreazione del sistema tematico Material You, per il loro aiuto in questo articolo!