Механізм тем Monet від Material You є головною родзинкою Android 12, і ось як він працює

Матеріали Google You не такі вже й складні для розуміння, хоча в одному місці не так багато інформації. Подивіться тут!

Швидкі посилання

  • Як працює механізм тем Monet
  • Що сталося з накладаннями ресурсів виконання (RRO)?
  • Material You все ще вдосконалюється
  • Зміни в Android 13

Безперечно, найбільша зміна в Android 12 є Матеріал Ви, остання версія мови матеріального дизайну Google. Матеріал Ви, як описує Google, "прагне створити дизайн, який буде індивідуальним для кожного стилю, доступним для будь-якої потреби, живим і адаптованим до кожного екрана.При розробці Android 12 Google створив новий движок тем під кодовою назвою «monet», який генерує багату палітру пастельних кольорів. отримані з шпалер користувача. Потім ці кольори застосовуються до різних частин системи, а їхні значення стають доступними через an API, який можуть викликати програми користувача, таким чином дозволяючи програмам вирішувати, чи хочуть вони також змінити колір своїх інтерфейс користувача. Google йде ва-банк на Material You, і компанія оновила більшість своїх програм, включивши динамічні кольори.

Для екстреного курсу з історії матеріального дизайну, він вперше був запущений з 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. Розробники спеціального ПЗУ також можуть реалізувати це реалізація «моне» з відкритим кодом. Сторонні розробники програм безкоштовні щоб додати підтримку динамічних кольорів прямо зараз, навіть якщо зараз він працюватиме лише на обмеженій кількості пристроїв.

Перше запитання, яке я впевнений, що більшість людей має щодо Material You, це те, як йому вдається вибирати кольори, які працюють разом і добре контрастують разом щоразу. Я спробував незліченну кількість шпалер з наміром зламати алгоритм вибору кольору, але жодному з них це не вдалося. Він все ще вибирає кольори, які щоразу працюють разом, що, м’яко кажучи, є вражаючим досягненням. Щоб зрозуміти, як працює алгоритм вибору кольорів Android 12, одне з двох пасхалок постачається у формі віджета, який можна додати на робочий стіл. Віджет показує всі кольори, вибрані Моне, і ви можете торкнутися його, щоб розгорнути його на весь екран. У повноекранному режимі ви можете торкнутися кольору, щоб поділитися ним. Коли ви надаєте доступ до нього, результат виглядає так:

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

Коли користувач змінює шпалери на пристрої Android 12, зображення аналізується, щоб вибрати колір і алгоритмічно вибирайте первинний, вторинний, третинний і помилковий кольори за допомогою початкового початкового числа колір. Також вибрано два нейтральні кольори, які надають Material You його загальний відтінок. У той же час він застосовує теорію кольорів і правила доступності. З цих кольорів алгоритм створює тональні палітри в діапазоні від 0% яскравості (ЧОРНИЙ) до 100% (БІЛИЙ). Динамічна тематика або спеціальна тематика використовує значення в цих тональних палітрах, щоб установити атрибути теми для цього діапазону кольорів. Він витягує до 128 кольорів із шпалер у колірний простір CIELAB як посередник, а потім ці кольори зіставлено з CAM16. CAM16 вколір aзовнішній вигляд модель використовується для сортування та фільтрації кольорів для визначення фактичного початкового кольору, а потім з використанням цього початкового кольору генеруються палітри. Після цього ці кольори повертаються до RGB для налаштування кольорів у всій системі.

CIELAB іноді також називають "L*a*b*". L* для сприйманої яскравості/легкості, а* і b* для чотирьох унікальних кольорів людського зору — червоного, зеленого, синього та жовтого. Яскравість використовується для розрахунку коефіцієнта контрастності, що гарантує читабельність. Після застосування ви отримуєте всі чудові загальносистемні кольори, які можна застосувати в інтерфейсі користувача системи, програмах тощо.

Що сталося з накладаннями ресурсів виконання (RRO)?

РРО нікуди не поділися, і Material You працює через Fabricated Overlays API. У минулому ми говорили про як можна використати Fabricated Overlays для повернення безкорінної тематики. Виготовлені накладки є новим доповненням до Android 12, і вони працюють дещо інакше, ніж RRO. По-перше, РРО працювати через накладений файл .apk, встановлений на пристрої, тоді як створене накладання просто повідомляє програмі, які кольори потрібно використовувати.

Виготовлені накладки також є дещо більш обмеженими, ніж RRO. До Android 11 RRO могли перевизначати практично будь-який ресурс: логічні значення, цілі числа, розміри, атрибути, макети та навіть raw файли даних. 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 kdrag0n, розробник як ProtonAOSP, так і відтворення системи оформлення Material You, за допомогу в цій статті!