Движок тем Material You Monet — главная особенность Android 12, и вот как он работает.

click fraud protection

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

Быстрые ссылки

  • Как работает движок тем Monet
  • Что случилось с оверлеями ресурсов времени выполнения (RRO)?
  • Материал Вы все еще совершенствуетесь
  • Изменения в Android 13

Безусловно, самое большое изменение в Андроид 12 является Материальный ты, последняя версия языка дизайна Google Material. Материал You, как описывает Google: «стремится создавать дизайны, индивидуальные для каждого стиля, доступные для любых нужд, живые и адаптивные для любого экрана.При разработке Android 12 компания Google создала новый движок тем под кодовым названием «monet», который генерирует богатую палитру пастельных тонов. получено из обоев пользователя. Эти цвета затем применяются к различным частям системы, а их значения становятся доступными через API, который могут вызывать приложения пользователя, что позволяет приложениям решать, хотят ли они также перекрасить свои Пользовательский интерфейс. Google делает ставку на Material You, и компания обновила большинство своих приложений, включив в них динамические цвета.

Для ускоренного курса по истории Material Design он впервые был запущен в Android 5 Lollipop с особым вниманием к пользовательскому опыту. Как Гугл это выкладывает«Материал — это адаптируемая система руководств, компонентов и инструментов, которые поддерживают лучшие практики дизайн пользовательского интерфейса». Он отличался плоскими, пастельными цветовыми палитрами, глубиной, мягким освещением и реалистичностью. физика. В Android 9 Pie появился Material Design 2, хотя он был далеко не таким масштабным визуальным изменением, как первая итерация Material Design. В Android 12 был выпущен Материальный дизайн 3, что является более существенным пересмотром.

Однако уберите механизм создания цветовых тем, и Material You на самом деле не будет что другой. Фактически, личный элемент, обозначаемый словом «Вы», более или менее полностью исчезает.

Как работает движок тем Monet

В движке тем «monet» происходит волшебство, когда дело касается Material You, и это алгоритм, который решает, какие цвета выбрать из обоев. «Моне» был добавлен в AOSP в Android 12L. Разработчики пользовательских ПЗУ также могут реализовать это. реализация «monet» с открытым исходным кодом. Сторонние разработчики приложений бесплатны добавить поддержку динамических цветов прямо сейчас, даже если в настоящее время он будет работать только на ограниченном количестве устройств.

Первый вопрос, который, я уверен, возникает у большинства людей о 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-файл наложения, установленный на устройстве, тогда как Fabricated Overlay просто сообщает приложению, какие цвета использовать. использовать.

Изготовленные наложения также немного более ограничены, чем RRO. До Android 11 RRO могли переопределить практически любой ресурс: логические значения, целые числа, измерения, атрибуты, макеты и даже необработанные данные. Дата файлы. В Android 11 были внесены некоторые изменения в работу RRO, из-за чего переопределение макетов больше не возможно. С другой стороны, искусственные наложения могут переопределять только значения, которые могут быть представлены в виде целых чисел. Сюда входят целые числа, размеры, логические значения и цвета. Вы не можете использовать их для переопределения ресурсов необработанных данных, макетов, строк или массивов — по крайней мере, это непросто.

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

Материал Вы все еще совершенствуетесь

Динамические цвета Material You, конечно, не лишены проблем, и сломать их фундаментально не так уж и сложно. Например, если вы быстро меняете обои, вы можете эффективно организовать атаку типа «отказ в обслуживании». Мишаал Рахман была подтверждена что эта атака типа «отказ в обслуживании» была исправлена ​​в Android 12L. Я искренне надеюсь, что Material You будет улучшен в будущих версиях, поскольку, хотя мне нравится он и его концепция, над ним нужно много работать. По моему личному опыту я считаю, что именно из-за его ошибок отчасти его не добавили в AOSP... это, а также тот факт, что Google фактически сделал это эксклюзивом для серии Pixel. Недавно я даже столкнулся с проблемой после обновления декабрьского патча Android 13 на моем Google Pixel 7. Pro, который я позже обнаружил в логарифме, как результат действия 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 для выпуска Андроид 13, и одним из первых улучшений стало добавление пяти дополнительных цветовых стилей. Эти новые цветовые стили называются TONAL_SPOT, VIBRANT, EXPRESSIVE, SPRITZ, RAINBOW и FRUIT_SALAD. Мы сделали скриншоты и показали их ниже.

  • TONAL_SPOT: цвет материала по умолчанию.
  • ЯРКИЙ: создает более тональную палитру со слегка меняющимися оттенками и более яркими второстепенными и фоновыми цветами.
  • ВЫРАЖИТЕЛЬНОСТЬ: создает палитру с несколькими яркими оттенками, более яркими, чем ЯРКИЕ.
  • SPRITZ: создает более сдержанную цветовую палитру.

Android 13 также предоставил разработчикам возможность использовать тематические значки приложений, чтобы они могли использовать системную тему. Разработчики могут поддержать это, предоставив в своих приложениях как адаптивный значок, так и монохромный значок приложения. Однако программа запуска по-прежнему должна поддерживать тематические значки, такие как программа запуска Google Pixel.


Спасибо старшему члену XDA kdrag0n, разработчик ProtonAOSP и воссоздание системы тем Material You, за помощь в этой статье!