Porozumenie Material You od Google nie je až také zložité, aj keď na jednom mieste nie je veľa informácií. Pozrite si to tu!
Rýchle odkazy
- Ako funguje modul tém monet
- Čo sa stalo s prekrytím zdrojov runtime (RRO)?
- Materiál Stále sa zlepšujete
- Zmeny v systéme Android 13
Jednoznačne najväčšia zmena v Android 12 je Material You, najnovšiu verziu jazyka Material dizajnu Google. Material You, ako opisuje Google, „sa snaží vytvárať dizajny, ktoré sú osobné pre každý štýl, dostupné pre každú potrebu, živé a prispôsobivé pre každú obrazovku.Pri vývoji Androidu 12 vytvoril Google nový tematický modul s kódovým názvom „monet“, ktorý generuje bohatú paletu pastelových farieb. odvodené od tapety používateľa. Tieto farby sa potom aplikujú na rôzne časti systému a ich hodnoty sa sprístupnia prostredníctvom an API, ktoré môžu volať aplikácie používateľa, čím umožňujú aplikáciám rozhodnúť sa, či chcú prefarbiť aj svoje UI. Google vstúpil do Material You naplno a spoločnosť aktualizovala väčšinu svojich aplikácií tak, aby zahŕňali dynamické farby.
Pre rýchly kurz o histórii Material Design bol prvýkrát uvedený na trh so systémom Android 5 Lollipop s inherentným zameraním na používateľskú skúsenosť. Ako Google uvádza„Materiál je adaptabilný systém pokynov, komponentov a nástrojov, ktoré podporujú osvedčené postupy Dizajn používateľského rozhrania." Vyznačoval sa plochými pastelovými farebnými paletami, hĺbkou, jemným osvetlením a realistickým fyzika. Android 9 Pie zaznamenal príchod Material Design 2, aj keď to nebolo ani zďaleka také veľké vizuálne prepracovanie, ako bola prvá iterácia Material Design. Android 12 bol spustený Materiálové prevedenie 3, čo je výraznejšia generálna oprava.
Odoberte však engine na tému farieb a Material You v skutočnosti nie je že rôzne. V skutočnosti osobný prvok označený ako „Ty“ viac-menej úplne zmizne.
Ako funguje modul tém monet
Keď príde na materiál Material You, kúzlo sa deje v motore motívov „monet“ a je to algoritmus, ktorý rozhoduje o tom, aké farby sa vyberú z tapety. „Monet“ bol pridaný do AOSP v systéme Android 12L. Custom ROM vývojári môžu tiež implementovať toto open source implementácia „monet“. Vývojári aplikácií tretích strán sú zadarmo pridať podporu pre dynamické farby práve teraz, aj keď v súčasnosti bude fungovať len na obmedzenom počte zariadení.
Prvá otázka, o ktorej som si istý, že väčšina ľudí má o Material You, je, ako dokáže vybrať farby, ktoré spolu fungujú a vždy spolu dobre kontrastujú. Skúsil som nespočetné množstvo tapiet s úmyslom prelomiť algoritmus výberu farieb, ale žiadnej z nich sa to nepodarilo. Stále vyberá farby, ktoré vždy spolupracujú, čo je prinajmenšom pôsobivý výkon. Ak chcete získať prehľad o tom, ako funguje algoritmus výberu farieb v systéme Android 12, jedno z dvoch veľkonočných vajíčok prichádza vo forme miniaplikácie, ktorú si môžete pridať na svoju pracovnú plochu. Miniaplikácia zobrazuje všetky farby vybrané monetom a klepnutím na ňu ju zobrazíte na celej obrazovke. Keď je na celej obrazovke, môžete ju zdieľať klepnutím na farbu. Keď ho zdieľate, výstup vyzerá takto:
A1-600 (@android:color/system_accent1_600)
currently: #626200
Keď používateľ zmení tapetu na zariadení so systémom Android 12, obrázok sa analyzuje, aby sa vybrala farba a algoritmicky vyberte primárne, sekundárne, terciárne a chybové farby pomocou počiatočného zdroja farba. Zvolené sú aj dve neutrálne farby, ktoré dodávajú Material You celkový nádych. Zároveň uplatňuje teóriu farieb a pravidlá prístupnosti. Z týchto farieb algoritmus vytvára tónové palety v rozsahu od 0 % jasu (ČIERNA) po 100 % (BIELA). Dynamická tématika alebo vlastná tématika používa hodnoty v týchto tónových paletách na nastavenie atribútov témy pre daný rozsah farieb. Extrahuje až 128 farieb z tapety do farebného priestoru CIELAB ako sprostredkovateľa, potom sú tieto farby mapované na CAM16. CAM16 color avzhľad model sa používa na triedenie a filtrovanie farieb na určenie skutočnej farby semena a potom sa pomocou tejto farby semena vygenerujú palety. Potom sa tieto farby namapujú späť na RGB na nastavenie farieb v celom systéme.
CIELAB sa niekedy označuje aj ako „L*a*b*“. L* pre vnímaný jas/svetlosť a a* a b* pre štyri jedinečné farby ľudského zraku – červenú, zelenú, modrú a žltú. Svetlosť sa používa na výpočet kontrastného pomeru, ktorý zaručuje čitateľnosť. Po použití získate všetky svoje pekné celosystémové farby, ktoré možno implementovať do používateľského rozhrania systému, aplikácií a ďalších.
Čo sa stalo s prekrytím zdrojov runtime (RRO)?
RRO sa nikam neposunuli a Material You funguje prostredníctvom rozhrania Fabricated Overlays API. V minulosti sme hovorili o ako možno použiť fabrikované prekrytia na prinavrátenie tém bez koreňov. Vyrobené prekrytia sú novým prírastkom do systému Android 12 a fungujú trochu inak ako RRO. Po prvé, RRO pracovať prostredníctvom prekryvného súboru APK nainštalovaného na zariadení, zatiaľ čo vyrobené prekrytie jednoducho povie aplikácii, aké farby má použitie.
Vyrobené prekrytia sú tiež o niečo obmedzenejšie ako RRO. Pred Androidom 11 mohli RRO prepísať takmer akýkoľvek zdroj: boolovské hodnoty, celé čísla, dimenzie, atribúty, rozloženia a dokonca aj raw dátové súbory. Android 11 urobil niekoľko zmien v tom, ako fungujú RRO, takže prepisovanie rozloženia už nie je možné. Na druhej strane, vyrobené prekrytia môžu prepísať iba hodnoty, ktoré možno reprezentovať ako celé čísla. To zahŕňa celé čísla, dimenzie, boolovské hodnoty a farby. Nemôžete ich použiť na prepísanie zdrojov nespracovaných údajov, rozložení, reťazcov alebo polí – aspoň nie ľahko.
Napriek tomu na týchto obmedzeniach skutočne nezáleží, pokiaľ ide o Material You a peniaze. Vytvorené prekrytia uľahčujú systému aplikovať farebné a rozmerové prekrytia za behu bez toho, aby ste museli čakať na kompiláciu súboru APK alebo na reštart systému, aby ste ho mohli použiť.
Materiál Stále sa zlepšujete
Dynamické farby Material You určite nie sú bez problémov a nie je až také ťažké ich zásadne prelomiť. Ak napríklad rýchlo zmeníte tapetu, môžete účinne zaviesť útok odmietnutia služby. Mishaal Rahman potvrdil že tento útok odmietnutia služby bol opravený v systéme Android 12L. Úprimne dúfam, že Material You bude v budúcich verziách vylepšený, pretože aj keď ho milujem a jeho koncept, potrebuje veľa práce. Z vlastnej osobnej skúsenosti mám pocit, že jej chybovosť je čiastočne dôvodom, prečo nebola pridaná do AOSP... to a skutočnosť, že spoločnosť Google z toho skutočne urobila časovanú exkluzívnu sériu Pixel. Nedávno som dokonca narazil na problém po aktualizácii na decembrovú opravu systému Android 13 na mojom Google Pixel 7 Pro, o ktorom som neskôr v logcat zistil, že je spôsobený Material You a Google Pixel spúšťač.
otravne, Android 12 odstránil vlastné možnosti písma a vlastných ikon v prospech dynamického motívu Material You. Systém motívov bol prvýkrát predstavený s aplikáciou Pixel Themes a bol založený na prekryvnom tematickom rámci systému Android. Aj keď je systém motívov Material You pre Android 12 viac prispôsobiteľný, neobsahuje vlastné štýly, ktoré Google zaviedol v systéme Android 10. V komentovať na Google Issue Tracker uviedol zamestnanec spoločnosti Google nasledujúce dôvody na jeho odstránenie:
„Vlastné funkcie štýlu (písmo, tvar ikony, balík ikon a farba zvýraznenia) v R sú nahradené novou dynamickou funkciou tematického zamerania, ktorú zavádzame v S. Novú funkciu dynamického tematického zamerania vnímame ako modernejšiu a inteligentnejšiu. Jednoduchý a príjemný zážitok, ktorý si, dúfame, užijú všetci používatelia.“
Zdá sa nepravdepodobné, že spoločnosť Google v budúcnosti znovu zavedie písma a výber vlastných ikon. Mnoho používateľov vyjadrilo svoje sklamanie zo zmien Material You od spoločnosti Google a vzhľadom na to, aké nefunkčné to môže byť, úplne chápem prečo. Dúfame, že spoločnosť Google zlepší jeho implementáciu alebo to ostatní OEM nepadnú do rovnakých pascí v ich implementáciách, ktoré má Google.
Zmeny v systéme Android 13
Google vylepšil v Material You na vydanie Android 13a jedným z prvých vylepšení bolo pridanie piatich ďalších farebných štýlov. Tieto nové farebné štýly sa nazývajú TONAL_SPOT, VIBRANT, EXPRESSIVE, SPRITZ, RAINBOW a FRUIT_SALAD. Urobili sme snímky obrazovky a ukázali sme ich nižšie.
- TONAL_SPOT: Predvolené farby materiálu
- VIBRANT: Vytvára viac tónovú paletu s mierne odlišnými odtieňmi a farebnejšími sekundárnymi farbami a farbami pozadia
- EXPRESIVE: Vytvára paletu s viacerými výraznými odtieňmi, ktoré sú farebnejšie ako VIBRANT
- SPRITZ: Vytvára paletu s nízkymi farbami
Android 13 tiež zaviedol možnosť pre vývojárov mať aj tematické ikony aplikácií, aby mohli prevziať tému systému. Vývojári to môžu podporiť poskytnutím adaptívnej ikony aj monochromatickej ikony aplikácie vo svojich aplikáciách. Spúšťač však stále musí podporovať tematické ikony, ako napríklad spúšťač Google Pixel.
Vďaka XDA Senior Member kdrag0n, vývojár ProtonAOSP a obnovenie tematického systému Material You, za pomoc v tomto článku!