Monet motiv Material You je velkým vrcholem Androidu 12 a takto to funguje

Porozumění Material You od Google není tak složité, i když zde není mnoho informací na jednom místě. Podívejte se na to zde!

Rychlé odkazy

  • Jak funguje modul motivů monet
  • Co se stalo s překrytím běhových prostředků (RRO)?
  • Materiál Stále se zlepšujete
  • Změny v systému Android 13

Zdaleka největší změna v Android 12 je Materiál vás, nejnovější verzi jazyka Material design společnosti Google. Material You, jak popisuje Google, „se snaží vytvářet návrhy, které jsou osobní pro každý styl, dostupné pro každou potřebu, živé a přizpůsobivé pro každou obrazovku.“ Při vývoji Androidu 12 vytvořil Google nový modul témat s kódovým názvem „monet“, který generuje bohatou paletu pastelových barev. odvozené z tapety uživatele. Tyto barvy jsou poté aplikovány na různé části systému a jejich hodnoty jsou zpřístupněny prostřednictvím an API, které mohou volat uživatelské aplikace, a nechat tak aplikace rozhodnout, zda chtějí také přebarvit své UI. Google jde do Material You naplno a společnost aktualizovala většinu svých aplikací tak, aby obsahovaly dynamické barvy.

Jako rychlokurz o historii Material Designu byl poprvé uveden s Androidem 5 Lollipop s inherentním zaměřením na uživatelskou zkušenost. Tak jako Google to uvádí„Material je adaptabilní systém pokynů, komponent a nástrojů, které podporují osvědčené postupy design uživatelského rozhraní." Vyznačoval se plochými, pastelovými barevnými paletami, hloubkou, měkkým osvětlením a realistickým fyzika. Android 9 Pie viděl příchod Material Design 2, i když to nebylo zdaleka tak velké vizuální přepracování jako první iterace Material Design. Android 12 byl uveden na trh Materiálové provedení 3, což je výraznější generální oprava.

Odeberte však engine pro motivování barev a Material You ve skutečnosti není že odlišný. Ve skutečnosti osobní prvek označovaný „Ty“ víceméně úplně zmizí.

Jak funguje modul motivů monet

Když přijde na Material You, kouzlo se odehrává v modulu motivu „monet“ a je to algoritmus, který rozhoduje o tom, jaké barvy se z tapety vyberou. „Monet“ byl přidán do AOSP v systému Android 12L. Vlastní vývojáři ROM to mohou také implementovat open-source implementace „monet“. Vývojáři aplikací třetích stran jsou zdarma přidat podporu pro dynamické barvy právě teď, i když v současné době bude fungovat pouze na omezeném počtu zařízení.

První otázka, kterou má většina lidí ohledně Material You, je, jak dokáže vybrat barvy, které spolu ladí a pokaždé spolu dobře kontrastují. Vyzkoušel jsem nespočet tapet se záměrem prolomit algoritmus výběru barev, ale žádné z nich se to nepodařilo. Stále vybírá barvy, které pokaždé spolupracují, což je přinejmenším působivý výkon. Chcete-li získat představu o tom, jak funguje algoritmus pro výběr barev systému Android 12, jeden ze dvou velikonočních vajíček přichází ve formě widgetu, který si můžete přidat na plochu. Widget zobrazuje všechny barvy vybrané monetem a klepnutím na něj přejdete na celou obrazovku. Když je na celé obrazovce, můžete klepnout na barvu a sdílet ji. Když jej sdílíte, výstup vypadá takto:

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

Když uživatel změní tapetu na zařízení Android 12, obrázek se analyzuje a vybere se barva a algoritmicky vyberte primární, sekundární, terciární a chybové barvy pomocí počátečního zdroje barva. Jsou také zvoleny dvě neutrální barvy, které dodávají Material You celkový nádech. Zároveň uplatňuje teorii barev a pravidla přístupnosti. Z těchto barev algoritmus vytváří tónové palety v rozsahu od 0 % jasu (ČERNÁ) po 100 % (BÍLÁ). Dynamický motiv nebo vlastní motiv používá hodnoty v těchto tónových paletách k nastavení atributů motivu pro daný rozsah barev. Extrahuje až 128 barev z tapety do barevného prostoru CIELAB jako prostředníka, poté jsou tyto barvy mapováno na CAM16. CAM16 Color Avzhled model se používá k třídění a filtrování barev k určení skutečné barvy semena a poté jsou pomocí této barvy semena generovány palety. Poté jsou tyto barvy mapovány zpět do RGB pro nastavení barev v celém systému.

CIELAB je někdy také označován jako "L*a*b*". L* pro vnímaný jas/světlost a a* a b* pro čtyři jedinečné barvy lidského vidění – červenou, zelenou, modrou a žlutou. Světlost se používá pro výpočet kontrastního poměru, který zaručuje čitelnost. Po použití získáte všechny své pěkné barvy pro celý systém, které lze implementovat do uživatelského rozhraní systému, aplikací a dalších.

Co se stalo s překrytím běhových prostředků (RRO)?

RRO se nikam neposunuly a Material You funguje prostřednictvím rozhraní Fabricated Overlays API. V minulosti jsme o tom mluvili jak lze použít Fabricated Overlays k obnovení motivů bez kořenů. Fabricated Overlays jsou novým přírůstkem do Androidu 12 a fungují mírně odlišně od RRO. Za prvé, RRO pracovat přes překryvný soubor APK nainstalovaný v zařízení, zatímco vyrobený překryv jednoduše říká aplikaci, jaké barvy má použití.

Fabricated Overlays jsou také o něco omezenější než RRO. Před Androidem 11 mohly RRO přepíše téměř jakýkoli zdroj: booleovské hodnoty, celá čísla, dimenze, atributy, rozvržení a dokonce i raw datové soubory. Android 11 provedl určité změny ve způsobu fungování RRO, takže přepisování rozvržení již ve skutečnosti není možné. Na druhou stranu, vyrobená překrytí mohou přepsat pouze hodnoty, které lze reprezentovat jako celá čísla. To zahrnuje celá čísla, dimenze, booleany a barvy. Nemůžete je použít k přepsání zdrojů nezpracovaných dat, rozložení, řetězců nebo polí – alespoň ne snadno.

Přesto na těchto omezeních ve skutečnosti nezáleží, pokud jde o Material You a monet. Vyrobené překryvy umožňují systému snadno aplikovat překryvné barvy a rozměry za běhu, aniž by bylo nutné čekat na kompilaci souboru APK nebo na restartování systému, aby je mohl aplikovat.

Materiál Stále se zlepšujete

Dynamické barvy Material You rozhodně nejsou bez problémů a není tak těžké je zásadně rozbít. Pokud například rychle změníte tapetu, můžete účinně zavést útok odmítnutí služby. Mishaal Rahman potvrdil že tento útok typu denial of service byl opraven v Androidu 12L. Upřímně doufám, že Material You bude v budoucích verzích vylepšen, protože i když ho miluji a jeho koncept, potřebuje hodně práce. Z mé vlastní osobní zkušenosti mám pocit, že jeho chybovost je částečně důvodem, proč nebyl přidán do AOSP... to a skutečnost, že Google z toho fakticky udělal načasovanou exkluzivitu pro sérii Pixel. Dokonce jsem nedávno narazil na problém po aktualizaci na prosincovou opravu Android 13 na mém Google Pixel 7 Pro, u kterého jsem později v logcatu zjistil, že je způsobena Material You a Google Pixel spouštěč.

nepříjemně, Android 12 odstranil vlastní písmo a vlastní ikony ve prospěch dynamického motivu Material You. Systém motivů byl poprvé představen s aplikací Pixel Themes a byl založen na překryvném tematickém rámci systému Android. I když je systém motivů Material You pro Android 12 lépe přizpůsobitelný, neobsahuje vlastní styly, které Google představil v Androidu 10. V komentář na Google Issue Tracker uvedl zaměstnanec společnosti Google následující důvody pro jeho odstranění:

„Funkce vlastního stylu (font, tvar ikony, sada ikon a barva zvýraznění) v R jsou nahrazeny novou funkcí dynamického motivování, kterou zavádíme v S. Novou funkci dynamického motivování vnímáme jako modernější a inteligentnější. Jednoduchý a příjemný zážitek, který si, jak doufáme, užijí všichni uživatelé.“

Zdá se nepravděpodobné, že Google v budoucnu znovu zavede písma a vlastní výběr ikon. Mnoho uživatelů vyjádřilo své zklamání ze změn Material You společnosti Google a vzhledem k tomu, jak nefunkční to může být, naprosto chápu proč. Doufáme, že Google její implementaci vylepší ostatní OEM nespadají do stejných pastí v jejich implementacích, které má Google.

Změny v systému Android 13

Google vylepšil materiál Material You pro vydání Android 13a jedním z prvních vylepšení bylo přidání pěti dalších barevných stylů. Tyto nové styly barev se nazývají TONAL_SPOT, VIBRANT, EXPRESSIVE, SPRITZ, RAINBOW a FRUIT_SALAD. Pořídili jsme snímky obrazovky a ukázali je níže.

  • TONAL_SPOT: Výchozí barvy materiálu
  • VIBRANT: Vytváří více tónovou paletu s mírně odlišnými odstíny a barevnějšími sekundárními barvami a barvami pozadí
  • EXPRESIVE: Vytváří paletu s několika výraznými odstíny, které jsou barevnější než ŽIVÉ
  • SPRITZ: Vytváří paletu více s nízkými barvami

Android 13 také zavedl možnost pro vývojáře mít také tematické ikony aplikací, aby mohli převzít systémové téma. Vývojáři to mohou podpořit poskytnutím adaptivní ikony i monochromatické ikony aplikace ve svých aplikacích. Spouštěč však stále musí podporovat tematické ikony, jako je spouštěč Google Pixel.


Díky XDA Senior Member kdrag0n, vývojář obou ProtonAOSP a obnovení systému motivů Material You, za jejich pomoc v tomto článku!