Motorul tematic Monet al lui Material You este marele punct culminant al Android 12 și iată cum funcționează

click fraud protection

Materialul dvs. de la Google nu este chiar atât de complicat de înțeles, deși nu există multe informații într-un singur loc. Verificați aici!

Legături rapide

  • Cum funcționează motorul de teme monetare
  • Ce sa întâmplat cu Runtime Resource Overlays (RRO)?
  • Material You încă se îmbunătățește
  • Modificări în Android 13

De departe, cea mai mare schimbare în Android 12 este Material Tu, cea mai recentă versiune a limbajului de design Material de la Google. Materialul dvs., așa cum descrie Google, „caută să creeze modele care sunt personale pentru fiecare stil, accesibile pentru fiecare nevoie, vii și adaptabile pentru fiecare ecran.Când a dezvoltat Android 12, Google a creat un motor nou cu nume de cod „monet” care generează o paletă bogată de culori pastelate. derivat din imaginea de fundal a utilizatorului. Aceste culori sunt apoi aplicate diferitelor părți ale sistemului, iar valorile lor sunt disponibile prin intermediul unui API pe care aplicațiile utilizatorului îl pot apela, permițând astfel aplicațiilor să decidă dacă doresc și să-și recoloreze UI. Google a făcut all-in pe Material You, iar compania și-a actualizat majoritatea aplicațiilor pentru a încorpora culori dinamice.

Pentru un curs intensiv despre istoria Material Design, a fost lansat pentru prima dată cu Android 5 Lollipop, cu un accent inerent pe experiența utilizatorului. La fel de Google o pune, „Materialul este un sistem adaptabil de linii directoare, componente și instrumente care sprijină cele mai bune practici ale Designul interfeței cu utilizatorul.” A prezentat palete plate, pastelate, adâncime, iluminare slabă și realiste fizică. Android 9 Pie a văzut apariția Material Design 2, deși nu a fost nici pe departe o revizuire vizuală la fel de mare precum prima iterație Material Design. Android 12 a văzut lansarea Designul materialului 3, care este o revizie mai semnificativă.

Cu toate acestea, elimină motorul de tematică a culorilor, iar Material You nu este de fapt acea diferit. De fapt, elementul personal notat de „Tu” dispare mai mult sau mai puțin în întregime.

Cum funcționează motorul de teme monetare

Motorul tematic „monet” este locul în care se întâmplă magia când vine vorba de Material You și este algoritmul care decide ce culori sunt selectate dintr-un tapet. „Monet” a fost adăugat la AOSP în Android 12L. De asemenea, dezvoltatorii de ROM personalizate pot implementa acest lucru implementare open-source a „monet”. Dezvoltatorii de aplicații terți sunt gratuiti pentru a adăuga suport pentru culori dinamice chiar acum, chiar dacă în prezent va funcționa doar pe un număr limitat de dispozitive.

Prima întrebare pe care o au majoritatea oamenilor despre Material You este cum reușește să selecteze culorile care funcționează împreună și contrastează bine împreună de fiecare dată. Am încercat nenumărate imagini de fundal cu intenția de a sparge algoritmul de alegere a culorilor, dar niciunul nu a reușit să o facă. Încă alege culori care funcționează împreună de fiecare dată, ceea ce este cel puțin o performanță impresionantă. Pentru a obține o perspectivă asupra modului în care funcționează algoritmul de alegere a culorilor Android 12, unul dintre cele două ouă de Paște vine sub forma unui widget pe care îl puteți adăuga pe desktop. Widgetul afișează toate culorile selectate în funcție de monet și îl puteți atinge pe ecran complet. Când este pe ecran complet, puteți apoi să atingeți o culoare pentru a o partaja. Când îl partajați, rezultatul arată astfel:

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

Când un utilizator își schimbă imaginea de fundal pe un dispozitiv Android 12, imaginea este analizată pentru a selecta o culoare și alegeți algoritmic culorile primare, secundare, terțiare și de eroare folosind o sămânță inițială culoare. De asemenea, sunt alese două culori neutre care conferă Material You nuanța sa generală. În același timp, aplică teoria culorilor și regulile de accesibilitate. Din aceste culori, algoritmul creează palete tonale variind de la 0% luminanță (NEGRU) la 100% (ALB). Tematica dinamică sau tematică personalizată utilizează valorile din aceste palete tonale pentru a seta atributele temei pentru acea gamă de culori. Extrage până la 128 de culori din tapet în spațiul de culoare CIELAB ca intermediar, apoi acele culori sunt mapat la CAM16. CAM16 color Aaspectul model este utilizat pentru sortarea și filtrarea culorilor pentru a determina culoarea reală a semințelor, iar apoi paletele sunt generate folosind acea culoare a semințelor. Ulterior, acele culori sunt mapate înapoi la RGB pentru setarea culorilor în întregul sistem.

CIELAB este uneori denumit și „L*a*b*”. L* pentru luminozitate/luminozitate percepută și a* și b* pentru cele patru culori unice ale vederii umane -- roșu, verde, albastru și galben. Luminozitatea este utilizată pentru calcularea raportului de contrast, garantând lizibilitatea. Odată aplicate, obțineți toate culorile dvs. destul de la nivelul întregului sistem, care pot fi implementate în interfața de utilizare a sistemului, în aplicații și multe altele.

Ce sa întâmplat cu Runtime Resource Overlays (RRO)?

RRO-urile nu au mers nicăieri, iar Material You funcționează prin API-ul Fabricated Overlays. În trecut, am mai vorbit despre cum pot fi folosite suprapunerile fabricate pentru a readuce tematica fără rădăcini. Suprapunerile fabricate sunt o nouă adăugare la Android 12 și funcționează ușor diferit de RRO. În primul rând, RRO lucrează printr-un APK de suprapunere instalat pe un dispozitiv, în timp ce o suprapunere fabricată spune pur și simplu unei aplicații ce culori să aibă utilizare.

Suprapunerile fabricate sunt, de asemenea, puțin mai limitate decât RRO. Înainte de Android 11, RRO-urile ar putea suprascrie aproape orice resursă: boolean, numere întregi, dimensiuni, atribute, layout-uri și chiar brut fișiere de date. Android 11 a adus unele modificări în modul în care funcționează RRO-urile, făcând ca layout-urile să nu mai fie cu adevărat fezabile. Suprapunerile fabricate, pe de altă parte, pot suprascrie numai valorile care pot fi reprezentate ca numere întregi. Aceasta include numere întregi, dimensiuni, booleeni și culori. Nu le puteți folosi pentru a suprascrie resurse de date brute, machete, șiruri de caractere sau matrice - cel puțin nu ușor.

Totuși, aceste limitări nu contează cu adevărat când vine vorba de Material You și bani. Suprapunerile fabricate facilitează aplicarea suprapunerilor de culori și dimensiuni din mers, fără a aștepta compilarea unui APK sau repornirea sistemului pentru a-l aplica.

Material You încă se îmbunătățește

Culorile dinamice ale Material You sunt cu siguranță nu lipsite de problemele lor și nu este chiar atât de greu să le spargi în mod fundamental. Dacă îți schimbi rapid imaginea de fundal, de exemplu, poți inițiază efectiv un atac de refuz de serviciu. Mishaal Rahman a confirmat că acest atac de denial of service a fost remediat în Android 12L. Sper din tot sufletul ca Material You să fie îmbunătățit în versiunile viitoare, deoarece, deși îl iubesc și conceptul său, are nevoie de multă muncă. Din experiența mea personală, simt că erorile sale sunt parțial motivul pentru care nu a fost adăugat la AOSP... asta și faptul că Google a făcut-o efectiv o exclusivitate cronometrată pentru seria Pixel. Am întâmpinat chiar și o problemă recent după ce am actualizat la patch-ul din decembrie Android 13 pe Google Pixel 7 Pro, pe care l-am depistat ulterior în logcat, fiind cauzat de Material You și Google Pixel lansator.

Enervant, Android 12 a eliminat fontul personalizat și opțiunile personalizate pentru pictograme în favoarea tematicii dinamice a lui Material You. Sistemul de tematică a fost introdus pentru prima dată cu aplicația Pixel Themes și s-a bazat pe cadrul de tematică bazat pe suprapunere Android. Deși sistemul de tematică Material You din Android 12 este mai personalizabil, nu include stilurile personalizate introduse de Google în Android 10. Într-o cometariu pe Google Issue Tracker, un Googler a oferit următorul motiv pentru eliminarea acestuia:

„Funcțiile de stil personalizat (font, forma pictogramei, pachet de pictograme și culoare de accent) în R sunt înlocuite de noua funcție de tematică dinamică pe care o introducem în S. Vedem noua caracteristică de tematică dinamică ca fiind mai modernă și mai inteligentă. O experiență simplă și încântătoare de care sperăm că toți utilizatorii se pot bucura.”

Se pare puțin probabil ca Google să reintroducă fonturile și opțiunile personalizate de pictograme în viitor. Mulți utilizatori și-au exprimat dezamăgirea față de modificările Google Material You și, având în vedere cât de deteriorat poate fi, înțeleg perfect de ce. Sperăm că Google își îmbunătățește implementarea sau asta alți OEM nu cad în aceleași capcane în implementările lor pe care le are Google.

Modificări în Android 13

Google a îmbunătățit Material You pentru eliberarea de Android 13, iar una dintre primele îmbunătățiri a fost adăugarea a cinci stiluri de culoare suplimentare. Aceste noi stiluri de culoare se numesc TONAL_SPOT, VIBRANT, EXPRESSIVE, SPRITZ, RAINBOW și FRUIT_SALAD. Am făcut capturi de ecran și le-am arătat mai jos.

  • TONAL_SPOT: Materialul implicit pe care îl colorați
  • VIBRANT: generează o paletă mai tonală cu nuanțe ușor diferite și culori secundare și de fundal mai colorate
  • EXPRESIV: generează o paletă cu mai multe nuanțe proeminente, care sunt mai colorate decât VIBRANT
  • SPRITZ: generează o paletă mai slabă de culori

Android 13 a introdus și posibilitatea dezvoltatorilor de a avea și pictograme pentru aplicații tematice, astfel încât să poată prelua tema sistemului. Dezvoltatorii pot sprijini acest lucru furnizând atât o pictogramă adaptivă, cât și o pictogramă de aplicație monocromatică în aplicațiile lor. Lansatorul trebuie să accepte totuși pictograme tematice, cum ar fi lansatorul Google Pixel.


Mulțumim membrului senior XDA kdrag0n, dezvoltator atât pentru ProtonAOSP, cât și pentru o recreare a sistemului de tematică Material You, pentru ajutorul acordat în acest articol!