A Material You monetémás motorja az Android 12 csúcspontja, és így működik

A Google anyaga nem olyan bonyolult megérteni, bár nincs sok információ egy helyen. Nézd meg itt!

Gyors linkek

  • Hogyan működik a monetáris téma motorja
  • Mi történt a Runtime Resource Overlay-kkel (RRO)?
  • Anyag Még mindig fejlődsz
  • Változások az Android 13-ban

Eddig a legnagyobb változás Android 12 van Anyag Te, a Google Material design nyelvének legújabb verziója. Anyag You, ahogy a Google leírja:minden stílushoz személyre szabott, minden igényre elérhető, élő és minden képernyőhöz alkalmazkodó dizájn létrehozására törekszik.Az Android 12 fejlesztése során a Google egy új témamotort hozott létre „monet” kódnéven, amely gazdag pasztell színpalettát generál. a felhasználó háttérképéből származik. Ezeket a színeket ezután a rendszer különböző részein alkalmazzák, és értékeik elérhetővé válnak egy API, amelyet a felhasználó alkalmazásai hívhatnak, így az alkalmazások dönthetik el, hogy átszínezik-e saját magukat UI. A Google mindent megtesz a Material You-val kapcsolatban, és a vállalat a legtöbb alkalmazásait frissítette, hogy dinamikus színeket tartalmazzon.

Az anyagdizájn történetét bemutató gyorstanfolyamként először Android 5 Lollipop operációs rendszerrel indították el, alapvetően a felhasználói élményre összpontosítva. Mint A Google úgy fogalmaz"Az anyag irányelvek, összetevők és eszközök adaptálható rendszere, amely támogatja a legjobb gyakorlatokat felhasználói felület kialakítása." Lapos, pasztell színpalettákkal, mélységgel, lágy világítással és valósághűséggel rendelkezett fizika. Az Android 9 Pie-nél megjelent a Material Design 2, bár közel sem volt akkora vizuális átalakítás, mint az első Material Design iteráció. Megjelent az Android 12 Anyagtervezés 3, ami jelentősebb átalakítás.

Azonban vegyük el a színtéma-motort, és a Material You valójában nem az hogy különböző. Valójában a „Te” által jelölt személyes elem többé-kevésbé teljesen eltűnik.

Hogyan működik a monetáris téma motorja

A „monet” témamotor az, ahol a varázslat megtörténik, amikor a Material You-ról van szó, és az algoritmus dönti el, hogy milyen színeket válasszunk ki egy háttérképből. A „Monet” hozzáadásra került az AOSP-hez Android 12L-ben. Az egyedi ROM-fejlesztők ezt is megvalósíthatják a „monet” nyílt forráskódú megvalósítása. A harmadik féltől származó alkalmazásfejlesztők ingyenesek a dinamikus színek támogatásához még akkor is, ha jelenleg csak korlátozott számú eszközön fog működni.

Biztos vagyok benne, hogy a legtöbb embernek az első kérdése a Material You-val kapcsolatban az, hogy hogyan tud minden egyes alkalommal olyan színeket kiválasztani, amelyek együtt működnek és jól kontrasztosak. Számtalan háttérképet kipróbáltam azzal a szándékkal, hogy megtörjem a színválasztó algoritmust, de egyiknek sem sikerült. Még mindig olyan színeket választ, amelyek minden alkalommal együtt működnek, ami enyhén szólva lenyűgöző teljesítmény. Ahhoz, hogy betekintést nyerjen az Android 12 színválasztó algoritmusának működésébe, a két easter egg egyike egy widget formájában érkezik, amelyet hozzáadhat az asztalához. A widget megjeleníti a monet szerint kiválasztott összes színt, és megérintheti a teljes képernyős megjelenítést. Amikor teljes képernyőn van, koppintson egy színre a megosztáshoz. Ha megosztja, a kimenet a következőképpen néz ki:

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

Amikor egy felhasználó megváltoztatja a háttérképét egy Android 12-es eszközön, a rendszer elemzi a képet a szín kiválasztásához és algoritmikusan válassza ki az elsődleges, másodlagos, harmadlagos és hibaszíneket egy kezdeti mag használatával szín. Két semleges színt is választottak, amelyek a Material You általános árnyalatát adják. Ugyanakkor alkalmazza a színelméletet és az akadálymentesítési szabályokat. Ezekből a színekből az algoritmus 0%-tól (FEKETE) 100%-ig (FEHÉR) terjedő tónuspalettákat hoz létre. A dinamikus vagy egyéni témázás a színpaletták értékeit használja az adott színtartományhoz tartozó témaattribútumok beállításához. Akár 128 színt von ki a tapétából a CIELAB színtérbe közvetítőként, majd ezek a színek CAM16-ra leképezve. A CAM16 color amegjelenése model A színek rendezésére és szűrésére használják, hogy meghatározzák a tényleges magszínt, majd paletták jönnek létre a magszín használatával. Ezután ezeket a színeket a rendszer visszaképezi RGB-be a színek beállításához a rendszerben.

A CIELAB-ot néha „L*a*b*-ként” is említik. L* az érzékelt fényerő/világosság, a* és b* pedig az emberi látás négy egyedi színe – piros, zöld, kék és sárga. A világosságot a kontrasztarány kiszámítására használják, garantálva az olvashatóságot. Alkalmazása után megkapja az összes szép, rendszerszintű színt, amelyet beépíthet a rendszer felhasználói felületébe, az alkalmazásokba és egyebekbe.

Mi történt a Runtime Resource Overlay-kkel (RRO)?

Az RRO-k nem tűntek el sehova, a Material You pedig a Fabricated Overlays API-n keresztül működik. A múltban beszéltünk róla hogyan használhatók a Fabricated Overlay-k a gyökértelen tematika visszaállítására. A Fabricated Overlays az Android 12 új kiegészítése, és kissé eltér az RRO-któl. Egyrészt RRO-k az eszközre telepített átfedő APK-n keresztül dolgozhat, míg a Fabricated Overlay egyszerűen megmondja az alkalmazásnak, hogy milyen színeket használjon használat.

A gyártott lefedések egy kicsit korlátozottabbak is, mint az RRO-k. Az Android 11 előtt az RRO-k képesek voltak szinte minden erőforrást felülír: logikai értékeket, egész számokat, dimenziókat, attribútumokat, elrendezéseket és még a nyerseket is adat fájlok. Az Android 11 néhány változtatást eszközölt az RRO-k működésében, így az elrendezések felülbírálása már nem igazán kivitelezhető. A Fabricated Overlays viszont csak olyan értékeket írhat felül, amelyek egész számként ábrázolhatók. Ez magában foglalja az egész számokat, a méreteket, a logikai értékeket és a színeket. Nem használhatja őket nyersadat-erőforrások, elrendezések, karakterláncok vagy tömbök felülbírálására – legalábbis nem könnyen.

Ennek ellenére ezek a korlátozások nem igazán számítanak a Material You és a pénz esetében. Az elkészített lefedések megkönnyítik a rendszer számára a szín- és méretfedvények menet közbeni alkalmazását anélkül, hogy meg kellene várnia az APK fordítását vagy a rendszer újraindítását.

Anyag Még mindig fejlődsz

A Material You dinamikus színei minden bizonnyal nem problémamentesek, és nem is olyan nehéz ezeket alapvetően megtörni. Ha például gyorsan megváltoztatja a háttérképet, megteheti hatékonyan indíthat szolgáltatásmegtagadási támadást. Mishaal Rahman megerősítette hogy ezt a szolgáltatásmegtagadási támadást az Android 12L-ben javították. Őszintén remélem, hogy a Material You-t továbbfejlesztik a jövőbeni verziókban, mert bár szeretem és a koncepcióját is nagyon szeretem, rengeteg munkát igényel. Saját tapasztalatom alapján úgy érzem, hogy a bugikussága részben az, hogy miért nem került fel az AOSP-be... ez, és az a tény, hogy a Google gyakorlatilag a Pixel sorozat időzített exkluzívjává tette. Nemrég még egy problémába ütköztem, miután frissítettem az Android 13 decemberi javítására a Google Pixel 7 telefonomon. Pro-t, amelyet később a logcat-ban találtam, hogy a Material You és a Google Pixel okozta indító.

Bosszantóan, Az Android 12 eltávolította az egyéni betűtípusokat és egyéni ikonokat a Material You dinamikus témája mellett. A témarendszert először a Pixel Themes alkalmazással mutatták be, és az Android overlay-alapú témakezelési keretrendszerén alapult. Bár az Android 12 Material You témarendszere jobban testreszabható, nem tartalmazza azokat az egyéni stílusokat, amelyeket a Google bevezetett az Android 10-ben. Az a megjegyzés a Google Issue Trackerben egy Google-alkalmazott a következő indoklást adta annak eltávolítására:

„Az egyéni stílusfunkciókat (betűtípus, ikon alakja, ikoncsomag és kiemelő szín) az R-ben felváltja az új dinamikus témájú funkció, amelyet az S-ben vezetünk be. Az új dinamikus tematikus funkciót modernebbnek és intelligensebbnek látjuk. Egy egyszerű és kellemes élmény, amelyet remélünk, hogy minden felhasználó élvezni fog.”

Valószínűtlennek tűnik, hogy a Google a jövőben újra bevezeti a betűtípusokat és az egyéni ikonválasztásokat. Sok felhasználó csalódottságának adott hangot a Google Material You változásaival kapcsolatban, és tekintettel arra, hogy ez mennyire törött lehet, teljesen megértem, miért. Reméljük, hogy a Google javítja a megvalósítását, vagy azt más OEM-ek nem esnek ugyanabba a csapdába a Google által kínált megvalósításaikban.

Változások az Android 13-ban

A Google továbbfejlesztette a Material You szolgáltatást kiadásáért Android 13, és az egyik első fejlesztés az öt extra színstílus hozzáadása volt. Ezeknek az új színstílusoknak a neve: TONAL_SPOT, VIBRANT, EXPRESSIVE, SPRITZ, RAINBOW és FRUIT_SALAD. Képernyőképeket készítettünk és alább mutattuk meg.

  • TONAL_SPOT: Alapértelmezett anyagszínek
  • VIBRANT: Tonálisabb palettát hoz létre enyhén változó árnyalatokkal és színesebb másodlagos és háttérszínekkel
  • EXPRESSZÍV: több kiemelkedő árnyalatú palettát hoz létre, amelyek színesebbek, mint a VIBRANT
  • SPRITZ: Gyengébb színpalettát hoz létre

Az Android 13 azt is bevezette a fejlesztők számára, hogy tematikus alkalmazásikonokat is készítsenek, így átvehetik a rendszertémát. A fejlesztők ezt úgy támogathatják, hogy alkalmazkodó ikont és monokróm alkalmazásikont is biztosítanak alkalmazásaikban. Az indítónak továbbra is támogatnia kell a tematikus ikonokat, például a Google Pixel indítót.


Köszönet az XDA Senior Tagnak kdrag0n, mind a ProtonAOSP, mind a fejlesztő a Material You tematikus rendszer újraalkotása, a cikkben nyújtott segítségükért!