Хотите интегрировать функцию динамического оформления тем Material You в свое приложение? Эта библиотека позволяет добавлять ее даже на устройства старше Android 12.
Материальный ты это последняя версия языка дизайна Google. В Material You Google делает упор на персонализацию, поэтому в Андроид 12, появилась новая система динамических тем, которая перекрашивает ваш UX с помощью цветов. извлечено из ваших обоев. Эта динамическая система тем под кодовым названием «monet». вышел в свет в Android 12 Beta 2, но Google еще не документировал API/реализации, не предоставил библиотеки поддержки и не открыл Google Play для публикации приложений, ориентированных на API. уровень 31 (Android 12), поэтому подавляющее большинство разработчиков даже не удосужились адаптировать свои приложения для поддержки динамических тем. система.
Это не значит, что нет Однако разработчик экспериментирует с системой тем Android 12. Разработчик популярное приложение для автоматизации Tasker продемонстрировал поддержку динамических тем в своем приложении с использованием официальных API Android 12. С другой стороны, другой разработчик, kdrag0n,
воссоздал систему полностью используя свой собственный алгоритм извлечения цвета и генерации палитры. Kdrag0n поделился исходным кодом своего движка тем и работает над библиотекой Jetpack Compose и Flutter, чтобы сторонние приложения, созданные для старых версий ОС, могли реализовать его подход к «monet».Теперь признанный разработчик XDA Куинни899 создал собственную библиотеку, основанную на собственной реализации «monet» от kdrag0n (т. его нет на основе движка тем Google). Разработчики могут интегрировать эту библиотеку MonetCompat в свои приложения, чтобы добавить поддержку динамического оформления пользовательского интерфейса своего приложения на основе обоев пользователя. Эта библиотека работает на устройствах под управлением Android 5.0 и выше (с использованием Palette API в режиме совместимости) и Android 8.1 Oreo и выше в обычном режиме. Библиотека не может извлекать цвета из живых обоев в версиях до Android 8.1 из-за ограничений API платформы.
Что касается того, почему разработчик может захотеть использовать эту библиотеку, сам Quinny899 объясняет на странице проекта на GitHub. «В настоящее время также неизвестно, предоставит ли Google собственную библиотеку обратной совместимости для Monet с выпуском Android 12, поэтому со временем эта библиотека может быть заменена официальной. В этом проекте не используется собственный код Google, поэтому он лицензируется лицензией MIT для использования в сторонних приложениях».
Первым приложением, использующим MonetCompat, является, конечно же, собственное приложение DarQ от Quinny899. DarQ — это приложение, которое позволяет переключать настройку принудительного темного режима Android для каждого приложения. Это изначально использовал root-доступ чтобы установить системное свойство, но было обновлено использовать сценарий оболочки ADB, запускаемый на ПК пользователя, отбросив требование root. В DarQ 2.0 пользователям больше не нужно запускать сценарий ADB со своего ПК, поскольку приложение теперь интегрируется Шизуку. Shizuku — это приложение и служба, которые позволяют другим приложениям запускать команды оболочки или получать доступ к API с правами пользователя оболочки ADB — думайте об этом как о приложении для управления суперпользователем, но для доступа к оболочке ADB. В Android 11+ сервис Shizuku можно запустить с помощью встроенной функции беспроводной отладки, поэтому для настройки DarQ вам больше не понадобится компьютер. С переходом на Сидзуку DarQ также теперь использует ProcessObserver вместо AccessibilityService, который Разработчик говорит, что позволяет DarQ определять, когда приложение открылось (и, таким образом, применять настройку принудительного затемнения) и многое другое быстро.
Если по какой-либо причине вам не нравится цвет, созданный MonetCompat для приложения DarQ, вы можете трижды нажать «DarQ 2.0», чтобы включить параметры разработчика в приложении. Здесь вы можете выбрать «Палитру цветов Моне», чтобы изменить цвет, который вы хотите использовать в приложении.
Журнал изменений DarQ 2.0
- DarQ 2.0 имеет совершенно новый дизайн с элементами Material You и цветами Monet (на основе обоев).
- Сценарий ADB теперь удален, и вместо него сервисом на устройствах без полномочий root управляет Shizuku. Если вы не знаете, что такое Shizuku, думайте об этом как о приложении Superuser для устройств без полномочий root. Запускайте Shizuku через ADB на компьютере (или даже на телефоне с Android 11 и выше) один раз при загрузке, и любое приложение, использующее Shizuku, сможет использовать службы ADB.
- Служба доступности была заменена ProcessObserver, использующим службу Shizuku/Root. Это намного быстрее, чем «Специальные возможности», поэтому приложения, которые раньше открывались слишком быстро, чтобы поддерживаться, теперь могут работать.
- Улучшения в автоматической темной теме на рассвете/закате для лучшей работы на разных устройствах.
- Улучшения в модуле Xposed для приложений, которые пытаются заблокировать использование принудительной тьмы, не позволяя им этого делать.
читать далее
Тема форума DarQ XDA ||| Библиотека MonetCompat на GitHub