System motywów Material You w Androidzie 12 został odtworzony przez programistę

kdrag0n, twórca ProtonAOSP ROM, wydał własną wersję „monet”, nowego systemu motywów opartego na tapetach dla Androida 12.

System motywów tapet Material You o nazwie kodowej „monet” w końcu został udostępniony Androida 12 Beta 2. System motywów tworzy palety kolorów w oparciu o dominujący schemat kolorów tapety i stosuje je do kafelków Szybkich ustawień, ekranu blokady, ustawień, wyskakujących okienek i aplikacji. Jednak w obecnej realizacji jest to tylko motywy będące częścią interfejsu użytkownika systemu I wybierz aplikacje systemowe. Większość aplikacji innych firm nie obsługuje tego dynamicznego motywu, ponieważ Google nie opublikował jeszcze dokumentacji dotyczącej Material You. Chociaż nie wiemy, kiedy Google opublikuje zasoby i biblioteki w Material You, Danny Lin (kdrag0n), twórca ProtonAOSP ROM, przedstawił własny silnik motywów oparty na „monet”.

Silnik motywów kdrag0n działa podobnie jak „monet” i udostępnia dynamiczny motyw dostępny wyłącznie dla Pixela na wszystkich urządzeniach z Androidem 12 i niektórymi starszymi wersjami Androida. kdrag0n był programistą, który jako pierwszy uruchomił „monet” we wczesnych wersjach deweloperskich Androida 12. Od tego czasu dokonał inżynierii wstecznej implementacji Google, a nawet udzielał informacji zwrotnych członkom zespołu Google ds. SystemUI, zwłaszcza

Jamesa O’Leary’ego (który wydaje się być częścią zespołu, który opracował „monet” w Google).

Według kdrag0n jego implementacja nie korzysta z żadnego kodu ani interfejsów API z Google ani Androida 12, więc użycie jego modelu nie jest zależne od urządzeń z Androidem 12. Silnik motywów kdrag0n podąża za celami kolorystycznymi Material You. Te cele są wtedy „ponownie pokolorowany poprzez dostosowanie barwy i odcienia w percepcyjnej przestrzeni kolorów Oklab @bjornornorn. Powstałe kolory są mapowane do sRGB przy użyciu przecięcia gamy w przestrzeni Oklaba.” Użytkownicy mogą także zmieniać kolorystykę i ustawiać priorytetowość barwności w stosunku do dokładnych odcieni.

Silnik motywów kdrag0n jest oprogramowaniem typu open source na licencji MIT, dzięki czemu programiści niestandardowych ROM-ów (a nawet producenci OEM) mogą go wdrożyć, jeśli sobie tego życzą. W rzeczywistości własność dewelopera ProtonAOSP ROM będzie jednym z pierwszych, który go wdroży po opublikowaniu kodu źródłowego Androida 12. Jeśli jesteś programistą niestandardowej pamięci ROM, możesz wybierać te zobowiązania i połącz je z plikiem build.

Deweloper pracuje także nad bibliotekami Jetpack Compose i Flutter, dzięki którym nawet aplikacje zbudowane na Androida 11 będą obsługiwały dynamiczne kolory. Aplikacje kierowane na starsze wersje Androida mogą zarejestruj słuchacza aby otrzymać powiadomienie o zmianie koloru tapety — kod kdrag0n służy bardziej do generowania motywów w oparciu o nowy kolor tapety.

Jako przykład działania swojego modelu dla aplikacji przeznaczonych na Androida 11, programista udostępnił nam film demonstrujący aplikację zmieniającą motyw co klatkę przy 90 klatkach na sekundę. Należy pamiętać, że to demo jest tylko przykładem tego, co można zrobić i nie zaleca się jego odtwarzania dokładnie tak, jak pokazano.

Ten może mieć duży wpływ na wydajność i baterię, chociaż Pixel 4 dewelopera może renderować zmiany motywu przy 90 klatkach na sekundę, zapewniając prostsze widoki. Zdaniem twórcy Jetpack Compose nie został zoptymalizowany pod kątem wydajności, a biblioteka Flutter może być lepsza. W każdym razie wygenerowanie motywu przez jego silnik zajmuje tylko 0,05 ms, ale mimo to zmiana motywu interfejsu użytkownika w każdej klatce obciąża wydajność.


Mishaal Rahman przyczynił się do powstania tego artykułu.