Темата на Material You's monet е големият акцент на Android 12 и ето как работи

Материалът на Google You не е толкова сложен за разбиране, въпреки че няма много информация на едно място. Вижте го тук!

бързи връзки

  • Как работи тематичният механизъм на Monet
  • Какво се случи с наслагванията на ресурси по време на изпълнение (RRO)?
  • Material You все още се подобрява
  • Промени в Android 13

Най-голямата промяна в Android 12 е Материални Вие, най-новата версия на езика за материален дизайн на Google. Материал Вие, както Google описва, „се стреми да създава дизайни, които са персонални за всеки стил, достъпни за всяка нужда, живи и адаптивни за всеки екран.” При разработването на Android 12 Google създаде нова тематична машина с кодово име „monet“, която генерира богата палитра от пастелни цветове получени от тапета на потребителя. След това тези цветове се прилагат към различни части на системата и стойностите им се предоставят чрез an API, който приложенията на потребителя могат да извикат, като по този начин позволяват на приложенията да решат дали също искат да преоцветят своите потребителски интерфейс. Google инвестира ол-ин в Material You и компанията актуализира повечето си приложения, за да включи динамични цветове.

За интензивен курс по историята на Material Design, той стартира за първи път с Android 5 Lollipop, с присъщ фокус върху потребителското изживяване. Като Google го поставя, „Material е адаптивна система от насоки, компоненти и инструменти, които поддържат най-добрите практики на дизайн на потребителския интерфейс." Той включва плоски, пастелни цветови палитри, дълбочина, меко осветление и реалистичност физика. Android 9 Pie видя появата на Material Design 2, въпреки че не беше толкова голям визуален ремонт, колкото беше първата итерация на Material Design. Android 12 видя стартирането на Материален дизайн 3, което е по-съществен ремонт.

Въпреки това, премахнете механизма за цветни теми и Material You всъщност не е такъв че различен. Всъщност личният елемент, обозначен с „Ти“, повече или по-малко напълно изчезва.

Как работи тематичният механизъм на Monet

Механизмът на темата "monet" е мястото, където се случва магията, когато става въпрос за Material You и това е алгоритъмът, който решава какви цветове да бъдат избрани от тапета. „Monet“ беше добавен към AOSP в Android 12L. Персонализираните ROM разработчици също могат да внедрят това внедряване на „моне“ с отворен код. Разработчиците на приложения от трети страни са безплатни за добавяне на поддръжка за динамични цветове точно сега, дори ако в момента ще работи само на ограничен брой устройства.

Първият въпрос, който сигурен съм, че повечето хора имат за Material You, е как успява да избере цветове, които работят заедно и контрастират добре заедно всеки път. Опитах безброй тапети с намерението да наруша алгоритъма за избор на цвят, но нито един от тях не успя да го направи. Той все още избира цветове, които работят заедно всеки път, което е меко казано впечатляващо постижение. За да разберете как работи алгоритъмът за избор на цвят на Android 12, едно от двете великденски яйца идва под формата на джаджа, която можете да добавите към вашия работен плот. Приспособлението показва всички цветове, избрани от monet, и можете да го докоснете, за да го изведете на цял екран. Когато е на цял екран, можете да докоснете цвят, за да го споделите. Когато го споделите, резултатът изглежда така:

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

Когато потребител промени своя тапет на устройство с Android 12, изображението се анализира, за да се избере цвят и алгоритмично изберете първични, вторични, третични и грешки цветове, като използвате първоначално начално число цвят. Избрани са и два неутрални цвята, които придават цялостния нюанс на Material You. В същото време той прилага теорията на цветовете и правилата за достъпност. От тези цветове алгоритъмът създава тонални палитри, вариращи от 0% яркост (ЧЕРНО) до 100% (БЯЛО). Динамичната тематика или персонализираната тематика използва стойности в тези тонални палитри, за да зададе атрибутите на темата за този цветови диапазон. Той извлича до 128 цвята от тапета към цветовото пространство CIELAB като посредник, след което тези цветове се картографиран към CAM16. CAM16 ° Сцвят авъншен вид модел се използва за сортиране и филтриране на цветовете, за да се определи действителният цвят на семената, след което се генерират палети, използвайки този цвят на семената. След това тези цветове се картографират обратно към RGB за задаване на цветове в цялата система.

CIELAB понякога се нарича още "L*a*b*". L* за възприеманата яркост/лекота и a* и b* за четирите уникални цвята на човешкото зрение -- червено, зелено, синьо и жълто. Светлината се използва за изчисляване на контрастно съотношение, гарантиращо четливост. Веднъж приложени, вие получавате всички ваши красиви цветове за цялата система, които могат да бъдат внедрени в системния потребителски интерфейс, приложения и др.

Какво се случи с наслагванията на ресурси по време на изпълнение (RRO)?

RRO не са отишли ​​никъде и Material You работи чрез API за произведени наслагвания. В миналото сме говорили за как Fabricated Overlays може да се използва за връщане на темата без корени. Изработените наслагвания са ново допълнение към Android 12 и работят малко по-различно от RRO. От една страна, RRO работят чрез насложен APK, инсталиран на устройство, докато произведеното наслагване просто казва на приложението какви цветове да използване.

Изработените наслагвания също са малко по-ограничени от RRO. Преди Android 11 RRO можеха замени почти всеки ресурс: булеви стойности, цели числа, размери, атрибути, оформления и дори необработен файлове с данни. Android 11 направи някои промени в начина на работа на RRO, правейки заместващите оформления вече невъзможни. Изработените наслагвания, от друга страна, могат да заменят само стойности, които могат да бъдат представени като цели числа. Това включва цели числа, размери, булеви стойности и цветове. Не можете да ги използвате, за да замените ресурси с необработени данни, оформления, низове или масиви - поне не лесно.

И все пак тези ограничения нямат особено значение, когато става въпрос за Material You и Monet. Изработените наслагвания улесняват системата да прилага цветни и размерни наслагвания в движение, без да чака APK да се компилира или системата да се рестартира, за да го приложи.

Material You все още се подобрява

Динамичните цветове на Material You със сигурност не са лишени от проблеми и не е толкова трудно да се наруши фундаментално. Ако промените тапета си бързо, например, можете ефективно да започне атака за отказ на услуга. Мишал Рахман е потвърдил че тази атака за отказ на услуга е коригирана в Android 12L. Искрено се надявам Material You да бъде подобрен в бъдещите версии, тъй като макар да го харесвам и концепцията му, има нужда от много работа. От моя личен опит смятам, че грешките му отчасти са причината да не е добавен към AOSP... това и фактът, че Google ефективно го направи ексклузивен за времето за серията Pixel. Наскоро дори се сблъсках с проблем след актуализиране до декемврийската корекция на Android 13 на моя Google Pixel 7 Pro, който по-късно открих в logcat, че е причинен от Material You и Google Pixel стартер.

досадно, Android 12 премахна персонализирания избор на шрифт и персонализирани икони в полза на динамичната тематика на Material You. Системата за оформяне на теми беше въведена за първи път с приложението Pixel Themes и беше базирана на тематична рамка на Android, базирана на наслагване. Докато тематичната система Material You на Android 12 е по-адаптивна, тя не включва персонализираните стилове, въведени от Google в Android 10. В коментар в Google Issue Tracker служител на Google даде следната причина за премахването му:

„Функциите за персонализиран стил (шрифт, форма на икона, пакет с икони и цвят на акцента) в R се заменят с новата функция за динамично оформяне на теми, която въвеждаме в S. Виждаме новата динамична тематична функция като по-модерна и интелигентна. Лесно и приятно изживяване, на което се надяваме всички потребители да могат да се насладят.“

Изглежда малко вероятно Google да въведе отново шрифтове и избор на персонализирани икони в бъдеще. Много потребители изразиха разочарованието си от промените на Google Material You и като се има предвид колко счупени могат да бъдат, напълно разбирам защо. Надяваме се, че Google ще подобри внедряването му или това другите OEM производители не попадат в същите капани в техните реализации, които Google има.

Промени в Android 13

Google подобри Material You за освобождаването на Android 13, а едно от първите подобрения беше добавянето на пет допълнителни цветови стила. Тези нови цветови стилове се наричат ​​TONAL_SPOT, VIBRANT, EXPRESSIVE, SPRITZ, RAINBOW и FRUIT_SALAD. Направихме екранни снимки и ги показахме по-долу.

  • TONAL_SPOT: Цветове на материала по подразбиране
  • VIBRANT: Генерира по-тонална палитра с леко вариращи нюанси и по-цветни вторични и фонови цветове
  • ЕКСПРЕСИВЕН: Генерира палитра с множество открояващи се нюанси, които са по-цветни от ЖИВИТЕ
  • SPRITZ: Генерира по-слаба цветова палитра

Android 13 също така въведе възможността разработчиците също да имат тематични икони на приложения, така че да могат да поемат системната тема. Разработчиците могат да поддържат това, като предоставят както адаптивна икона, така и едноцветна икона на приложение в своите приложения. Стартовият панел все пак трябва да поддържа тематични икони, като например стартовия панел на Google Pixel.


Благодарение на XDA Senior Member kdrag0n, разработчик както на ProtonAOSP, така и на пресъздаване на тематичната система Material You, за помощта им в тази статия!