Система тем Material You в Android 12 была воссоздана разработчиком

kdrag0n, разработчик ProtonAOSP ROM, выпустил собственную версию «monet», новой системы тем на основе обоев Android 12.

Система тем на основе обоев Material You под кодовым названием «monet» наконец-то заработала. Андроид 12 Бета 2. Система тем создает цветовые палитры на основе доминирующей цветовой схемы обоев и применяет их к плиткам быстрых настроек, экрану блокировки, настройкам, всплывающим окнам и приложениям. Однако в текущей реализации это только темы — часть системного пользовательского интерфейса и выбрать системные приложения. Большинство сторонних приложений не поддерживают эту динамическую тему, поскольку Google еще не опубликовал документацию по Material You. Хотя мы не знаем, когда Google опубликует ресурсы и библиотеки на Material You, Дэнни Лин (kdrag0n), разработчик ProtonAOSP ROM, представил свой собственный движок тем, основанный на «monet».

движок тем kdrag0n работает так же, как «monet», и открывает эксклюзивные динамические темы Pixel для всех устройств под управлением Android 12 и некоторых более старых версий Android. kdrag0n был разработчиком, который первым задействовал «monet» в ранних предварительных сборках Android 12 для разработчиков. С тех пор он занимался реверс-инжинирингом реализации Google и даже давал отзывы членам команды Google SystemUI, в частности

Джеймс О'Лири (который, кажется, является частью команды, которая разработала «monet» в Google).

По словам kdrag0n, его реализация не использует какой-либо код или API-интерфейсы Google или Android 12, поэтому использование его модели не зависит от устройств под управлением Android 12. Движок тем kdrag0n следует за целями цвета Material You. Эти цели затем «перекрашено путем настройки красочности и оттенка в перцепционном цветовом пространстве Oklab @bjornornorn. Полученные цвета преобразуются в sRGB с использованием пересечения гаммы в пространстве Oklab». Пользователи также могут изменить красочность и сделать так, чтобы она отдавалась приоритету над точными оттенками.

Движок тем kdrag0n имеет открытый исходный код под лицензией MIT, что позволяет разработчикам пользовательских ПЗУ (и даже OEM-производителям) реализовывать его, если они того пожелают. Фактически, собственная разработка разработчика ПротонАОСП ROM будет одним из первых, кто внедрит это, когда будет опубликован исходный код Android 12. Если вы разработчик собственных ПЗУ, вы можете выбрать эти коммиты и объедините их в свою сборку.

Разработчик также работает над библиотеками Jetpack Compose и Flutter, которые позволят даже приложениям, созданным для Android 11, поддерживать динамические цвета. Приложения, предназначенные для более старых версий Android, могут зарегистрировать слушателя получать уведомления об изменении цвета обоев — код kdrag0n больше предназначен для создания тем на основе нового цвета обоев.

В качестве примера своей модели, работающей над приложениями, ориентированными на Android 11, разработчик поделился с нами видео, демонстрирующим приложение, меняющее свою тему каждый кадр со скоростью 90 кадров в секунду. Обратите внимание, что эта демонстрация является лишь примером того, что можно сделать, и ее не рекомендуется воссоздавать точно так, как показано.

Это может сильно сказаться на производительности и заряде батареи, хотя Pixel 4 от разработчика может отображать изменения темы со скоростью 90 кадров в секунду для более простого просмотра. По словам разработчика, Jetpack Compose не слишком оптимизирован по производительности, и библиотека Flutter может быть лучше. В любом случае, его движку требуется всего 0,05 мс для создания темы, но изменение темы пользовательского интерфейса в каждом кадре, тем не менее, снижает производительность.


Мишаал Рахман способствовал написанию этой статьи.