Chcesz zintegrować funkcję dynamicznego motywu Material You ze swoją aplikacją? Ta biblioteka pozwala dodać ją nawet na urządzeniach starszych niż Android 12.
Materialny Ty to najnowsza wersja języka projektowania Google. W Material You Google kładzie nacisk na personalizację, dlatego w Androida 12, dostępny jest nowy dynamiczny system motywów, który zmienia kolor Twojego UX za pomocą kolorów wyodrębnione z tapety. Ten dynamiczny system motywów o kryptonimie „monet” został udostępniony w systemie Android 12 Beta 2, ale Google musi jeszcze udokumentować interfejsy API/implementację, udostępnić biblioteki pomocy technicznej lub otworzyć Google Play w celu publikowania aplikacji obsługujących interfejs API poziom 31 (Android 12), więc zdecydowana większość programistów nawet nie zawracała sobie głowy dostosowywaniem swoich aplikacji do obsługi dynamicznych motywów system.
To nie znaczy, że NIE deweloper bawi się jednak systemem motywów Androida 12. Twórca popularna aplikacja do automatyzacji Tasker
zademonstrował obsługę dynamicznych motywów w swojej aplikacji przy użyciu oficjalnych interfejsów API Androida 12. Z drugiej strony inny programista, kdrag0n, odtworzył cały system wykorzystując własny algorytm ekstrakcji kolorów i generowania palet. Kdrag0n udostępnił kod źródłowy swojego silnika motywów i pracuje nad bibliotekami Jetpack Compose i Flutter, aby aplikacje innych firm stworzone dla starszych wersji systemów operacyjnych mogły wdrożyć jego podejście do „pieniędzy”.Teraz uznany programista XDA Quinny899 stworzył własną bibliotekę opartą na niestandardowej implementacji „monet” kdrag0n (tj. jego nie oparty na silniku motywów Google). Programiści mogą zintegrować tę bibliotekę MonetCompat ze swoimi aplikacjami, aby dodać obsługę dynamicznego motywowania interfejsu aplikacji w oparciu o tapetę użytkownika. Ta biblioteka działa na urządzeniach z systemem Android 5.0 i nowszym (przy użyciu interfejsu Palette API w trybie zgodności) oraz Androidem 8.1 Oreo i nowszym w trybie normalnym. Biblioteka nie może wyodrębniać kolorów z animowanych tapet w wersjach wcześniejszych niż Android 8.1 ze względu na ograniczenia w interfejsach API platformy.
Jeśli chodzi o to, dlaczego programista może chcieć korzystać z tej biblioteki, Quinny899 sam wyjaśnia na stronie projektu w GitHubie. „Obecnie nie wiadomo również, czy Google udostępni własną bibliotekę kompatybilności wstecznej dla Moneta z wersją Androida 12, więc biblioteka ta może ostatecznie zostać zastąpiona oficjalną. W tym projekcie nie użyto żadnego zastrzeżonego kodu Google, dlatego też jest on objęty licencją MIT do użytku w aplikacjach stron trzecich.
Pierwszą aplikacją korzystającą z MonetCompat jest oczywiście aplikacja DarQ firmy Quinny899. DarQ to aplikacja, która pozwala przełączać ustawienie wymuszonego trybu ciemnego w systemie Android dla poszczególnych aplikacji. To pierwotnie używany dostęp root aby ustawić właściwość systemu, ale tak było zaktualizowany aby użyć skryptu powłoki ADB uruchomionego na komputerze użytkownika, rezygnując z wymagań roota. W DarQ 2.0 użytkownicy nie muszą już uruchamiać skryptu ADB na swoim komputerze, ponieważ aplikacja jest teraz zintegrowana Shizuku. Shizuku to aplikacja i usługa, która pozwala innym aplikacjom uruchamiać polecenia powłoki lub uzyskiwać dostęp do interfejsów API z uprawnieniami użytkownika powłoki ADB. Można o niej myśleć jak o aplikacji do zarządzania superużytkownikami, ale z dostępem do powłoki ADB. W systemie Android 11+ usługę Shizuku można uruchomić za pomocą wbudowanej funkcji debugowania bezprzewodowego, dzięki czemu do skonfigurowania DarQ nie jest już potrzebny komputer PC. Wraz z przejściem na Shizuku, DarQ używa teraz ProcessObserver zamiast usługi AccessibilityService, którą Deweloper twierdzi, że pozwala DarQ wykrywać otwarcie aplikacji (a tym samym stosować ustawienie wymuszania ciemności) znacznie częściej szybko.
Jeśli z jakiegoś powodu nie podoba Ci się kolor generowany przez MonetCompat dla aplikacji DarQ, możesz trzykrotnie kliknąć „DarQ 2.0”, aby włączyć Opcje programistyczne w aplikacji. Tutaj możesz wybrać „Próbnik kolorów Moneta”, aby zmienić kolor, którego ma używać aplikacja.
Dziennik zmian DarQ 2.0
- DarQ 2.0 ma zupełnie nowy wygląd, z elementami Material You i kolorami Moneta (tapetowymi).
- Skrypt ADB już zniknął, a zamiast tego Shizuku obsługuje usługę na urządzeniach innych niż root. Jeśli nie wiesz, czym jest Shizuku, pomyśl o tym jak o aplikacji Superuser dla urządzeń innych niż root. Uruchom Shizuku przez ADB na komputerze (lub nawet na telefonie z Androidem 11 i nowszym) raz na uruchomienie, a każda aplikacja korzystająca z Shizuku będzie mogła korzystać z usług ADB.
- Usługę dostępności zastąpiono ProcessObserver korzystającym z usługi Shizuku/Root. Jest to znacznie szybsze niż dostępność, więc aplikacje, które wcześniej otwierały się zbyt szybko, aby mogły być obsługiwane, mogą teraz działać.
- Ulepszenia motywu automatycznego przyciemniania o wschodzie i zachodzie słońca, aby działały lepiej na różnych urządzeniach.
- Ulepszenia modułu Xposed dla aplikacji, które próbują blokować użycie siły ciemności, uniemożliwiając im to.
Czytaj więcej
Wątek na forum DarQ XDA ||| Biblioteka MonetCompat w serwisie GitHub