Motor za teme Monet tvrtke Material You velika je prednost Androida 12, a evo kako funkcionira

click fraud protection

Googleov materijal You nije toliko kompliciran za razumijevanje, iako nema puno informacija na jednom mjestu. Provjerite ovdje!

Brze veze

  • Kako radi mehanizam za temu Monet
  • Što se dogodilo s Runtime Resource Overlays (RRO)?
  • Material You se i dalje poboljšava
  • Promjene u Androidu 13

Daleko najveća promjena u Android 12 je Materijalni Vi, najnovija verzija Googleovog jezika za materijalni dizajn. Materijal Vi, kako Google opisuje, "nastoji stvoriti dizajne koji su osobni za svaki stil, dostupni za svaku potrebu, živi i prilagodljivi svakom zaslonu.” Prilikom razvoja Androida 12, Google je stvorio novi pokretač tema kodnog naziva “monet” koji generira bogatu paletu pastelnih boja izvedene iz korisničke pozadine. Te se boje zatim primjenjuju na različite dijelove sustava i njihove vrijednosti postaju dostupne putem API koji korisničke aplikacije mogu pozvati, dopuštajući tako aplikacijama da odluče žele li također promijeniti boju svojih korisničko sučelje. Google je uložio sve u Material You i tvrtka je ažurirala većinu svojih aplikacija kako bi uključila dinamične boje.

Za brzi tečaj o povijesti materijalnog dizajna, prvi put je lansiran s Androidom 5 Lollipop, s inherentnim fokusom na korisničko iskustvo. Kao Google to stavlja, "Material je prilagodljiv sustav smjernica, komponenti i alata koji podržavaju najbolju praksu dizajn korisničkog sučelja." Sadržavao je ravne, pastelne palete boja, dubinu, meko osvjetljenje i realistično fizika. Android 9 Pie doživio je pojavu Material Designa 2, iako nije bio ni blizu tako velikog vizualnog remonta kao što je bila prva iteracija Material Designa. Lansiran je Android 12 Dizajn materijala 3, što je značajniji remont.

Međutim, ako oduzmemo mehanizam za tematiziranje boja, Material You to zapravo nije da drugačiji. Zapravo, osobni element označen s "ti" više-manje u potpunosti nestaje.

Kako radi mehanizam za temu Monet

Tematski mehanizam "monet" je mjesto gdje se događa magija kada je u pitanju Material You, a algoritam je taj koji odlučuje koje će se boje odabrati s pozadine. “Monet” je dodan u AOSP u Androidu 12L. Prilagođeni ROM programeri također mogu implementirati ovo open-source implementacija "moneta". Programeri aplikacija trećih strana besplatni su za dodavanje podrške za dinamičke boje upravo sada, čak i ako će trenutno raditi samo na ograničenom broju uređaja.

Prvo pitanje za koje sam siguran da većina ljudi ima o Material You je kako uspijeva odabrati boje koje rade zajedno i imaju dobar kontrast svaki put. Isprobao sam bezbrojne pozadine s namjerom da razbijem algoritam odabira boja, ali nijedna nije uspjela. Još uvijek bira boje koje svaki put funkcioniraju zajedno, što je u najmanju ruku impresivan podvig. Da biste dobili uvid u to kako funkcionira algoritam za odabir boja Androida 12, jedno od dva uskršnja jaja dolazi u obliku widgeta koji možete dodati na svoju radnu površinu. Widget prikazuje sve boje koje je odabrao monet i možete ga dodirnuti za prikaz preko cijelog zaslona. Kada je na cijelom zaslonu, možete dodirnuti boju da biste je podijelili. Kada ga podijelite, rezultat izgleda ovako:

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

Kada korisnik promijeni pozadinu na Android 12 uređaju, slika se analizira kako bi se odabrala boja i algoritamski odaberite primarnu, sekundarnu, tercijarnu i boju pogreške koristeći početno sjeme boja. Odabrane su i dvije neutralne boje koje Material You daju cjelokupnu nijansu. Istodobno, primjenjuje teoriju boja i pravila pristupačnosti. Od ovih boja, algoritam stvara tonske palete u rasponu od 0% svjetline (CRNO) do 100% (BIJELO). Dinamičko ili prilagođeno temiranje koristi vrijednosti u ovim tonskim paletama za postavljanje atributa teme za taj raspon boja. Izvlači do 128 boja iz pozadine u prostor boja CIELAB kao posrednik, a zatim se te boje preslikano na CAM16. CAM16 color aizgled model koristi se za sortiranje i filtriranje boja kako bi se odredila stvarna boja sjemena, a zatim se palete generiraju pomoću te boje sjemena. Nakon toga, te se boje preslikavaju natrag u RGB za postavljanje boja u cijelom sustavu.

CIELAB se ponekad naziva i "L*a*b*". L* za percipiranu svjetlinu/svjetlinu, a* i b* za četiri jedinstvene boje ljudskog vida -- crvenu, zelenu, plavu i žutu. Svjetloća se koristi za izračun omjera kontrasta, jamčeći čitljivost. Jednom kada se primijenite, dobit ćete sve svoje lijepe boje za cijeli sustav koje se mogu implementirati u korisničko sučelje sustava, aplikacije i drugo.

Što se dogodilo s Runtime Resource Overlays (RRO)?

RRO-ovi nisu nikamo nestali, a Material You radi putem API-ja Fabricated Overlays. U prošlosti smo razgovarali o kako se Fabricated Overlays mogu koristiti za vraćanje teme bez korijena. Izrađeni slojevi novi su dodatak Androidu 12 i rade malo drugačije od RRO-ova. Kao prvo, RRO-ovi raditi kroz preklapajući APK instaliran na uređaju, dok Fabricirani sloj jednostavno govori aplikaciji koje boje treba koristiti.

Izrađeni slojevi također su malo ograničeniji od RRO-ova. Prije Androida 11, RRO su mogli nadjačavaju gotovo sve resurse: Booleove vrijednosti, cijele brojeve, dimenzije, atribute, izglede, pa čak i raw podatkovne datoteke. Android 11 napravio je neke promjene u načinu rada RRO-ova, zbog čega nadjačavanje izgleda više nije izvedivo. Izrađeni slojevi, s druge strane, mogu nadjačati samo vrijednosti koje se mogu predstaviti kao cijeli brojevi. To uključuje cijele brojeve, dimenzije, Booleove vrijednosti i boje. Ne možete ih koristiti za nadjačavanje resursa sirovih podataka, izgleda, nizova ili nizova - barem ne lako.

Ipak, ta ograničenja zapravo nisu bitna kada je riječ o materijalnom tebi i monetu. Izrađeni slojevi olakšavaju sustavu primjenu slojeva boja i dimenzija u hodu, bez čekanja da se APK kompajlira ili da se sustav ponovno pokrene kako bi ga primijenio.

Material You se i dalje poboljšava

Dinamične boje Material You sigurno nisu bez problema i nije ih tako teško razbiti iz temelja. Na primjer, možete brzo promijeniti pozadinu učinkovito pokrenuti napad uskraćivanjem usluge. Mishaal Rahman je potvrdio da je ovaj napad uskraćivanjem usluge popravljen u Androidu 12L. Iskreno se nadam da će Material You biti poboljšan u budućim verzijama, jer iako volim njega i njegov koncept, potrebno je puno rada na njemu. Iz vlastitog osobnog iskustva, smatram da je njegova pogreška djelomično razlog zašto nije dodan u AOSP... to, kao i činjenica da je Google to učinio vremenski ograničenom ekskluzivom za Pixel seriju. Čak sam nedavno naišao na problem nakon ažuriranja na prosinačku zakrpu za Android 13 na svom Google Pixelu 7 Pro, za koji sam kasnije u logcatu pronašao da ga uzrokuju Material You i Google Pixel pokretač.

Dosadno, Android 12 uklonio je izbor prilagođenog fonta i prilagođene ikone u korist dinamične tematike Material You. Sustav temiranja prvi je put predstavljen s aplikacijom Pixel Themes, a temeljio se na Androidovom okviru temiranja temeljenom na preklapanju. Iako je tematski sustav Material You za Android 12 prilagodljiviji, ne sadrži prilagođene stilove koje je Google predstavio u Androidu 10. U komentar na Google Issue Trackeru Googleov zaposlenik dao je sljedeće razloge za uklanjanje:

“Značajke prilagođenog stila (font, oblik ikone, paket ikona i boja naglaska) u R zamijenjene su novom značajkom dinamičkog temiranja koju uvodimo u S. Novu značajku dinamičkog temiranja smatramo modernijom i inteligentnijom. Jednostavno i divno iskustvo u kojem se nadamo da mogu uživati ​​svi korisnici.”

Čini se malo vjerojatnim da će Google u budućnosti ponovno uvesti fontove i izbor prilagođenih ikona. Mnogi su korisnici izrazili svoje razočaranje Googleovim promjenama Material You, a s obzirom na to koliko može biti pokvaren, potpuno razumijem zašto. Nadamo se da će Google poboljšati svoju implementaciju ili to drugi proizvođači originalne opreme ne upadaju u iste zamke u njihovim implementacijama koje ima Google.

Promjene u Androidu 13

Google je poboljšao Material You za puštanje Android 13, a jedno od prvih poboljšanja bilo je dodavanje pet dodatnih stilova boja. Ovi novi stilovi boja nazivaju se TONAL_SPOT, VIBRANT, EXPRESSIVE, SPRITZ, RAINBOW i FRUIT_SALAD. Napravili smo snimke zaslona i prikazali ih u nastavku.

  • TONAL_SPOT: Zadane boje materijala
  • VIBRANTNO: Stvara tonskiju paletu s malo varirajućim nijansama i šarenijim sekundarnim i pozadinskim bojama
  • EKSPRESIVNO: Stvara paletu s višestrukim istaknutim nijansama koje su šarenije od VIBRANTNE
  • SPRITZ: Generira nižu paletu boja

Android 13 također je uveo mogućnost programerima da također imaju tematske ikone aplikacija, tako da mogu preuzeti temu sustava. Razvojni programeri to mogu podržati pružanjem prilagodljive ikone i monokromatske ikone aplikacije u svojim aplikacijama. Pokretač ipak mora podržavati tematske ikone, kao što je Google Pixel pokretač.


Hvala starijem članu XDA kdrag0n, programer i ProtonAOSP-a i rekreacija tematskog sustava Material You, za njihovu pomoć u ovom članku!