Jak podłoże zapewniło większy wybór nieelastycznemu TouchWizowi

Sungstratum z zespołu [projekt.] przenosi wszystkie gadżety tematyczne RRO-OMS na urządzenia Samsung Nougat za pośrednictwem Substratum! Czytaj dalej, aby dowiedzieć się więcej!

Motywy na Androida przeszły długą drogę, od hackerskich edycji po Substratum, a teraz Sunstratum. Wiele lat temu słowo „motyw” w dyskusjach na temat Androida było często zastępowane słowem „wybierający”, co było ukłonem w stronę narzędzie do wybierania motywów T-Mobile znalezione w CyanogenMod, które położyło podwaliny pod uczynienie Androida motywem raj. Możliwość modyfikowania wyglądu systemu operacyjnego zapewniła użytkownikom kolejny wymiar personalizacji, pozwalając im na wprowadzanie zmian, które czynią ich urządzenia znacznie bardziej spersonalizowanymi.

Dobra praca kontynuowana była w dwóch różnych kierunkach. Theme Chooser przekształcił się w silnik motywów CyanogenMod, ale pomimo lat wysiłków włożonych w zasoby tematyczne, CMTE stał się przestarzały kiedy pojawiły się inne alternatywy.


RRO i warstwy

Podwaliny pod jedną z alternatyw położono, gdy kod Sony wniósł wkład w postaci nowego frameworku o nazwie

Nakładka zasobów środowiska wykonawczego (RRO) został przyjęty do AOSP. Framework ten zapewnia możliwość zastępowania zasobów aplikacji w czasie wykonywania (stąd nazwa). Same „nakładki” były obecne i obsługiwane w systemie Android już od wersji Gingerbread (i być może również wcześniej), używany głównie do wymiany zasobów, aby aplikacje działały na tym konkretnym urządzenie. Podejście Sony do RRO polegało na zmodyfikowaniu menedżera zasobów w taki sposób, aby akceptował aplikacje, które korzystały z zasobów odwzorowanych na inne odpowiednie zasoby istniejące na urządzeniu. Te nowe zasoby z pliku apk zostały następnie nałożone na zasoby podstawowe tylko w czasie wykonywania, umożliwiając systemowi pracę tak, jakby te nowe zasoby zawsze były jego częścią.

Framework RRO został włączony do AOSP, zanim Lollipop 5.0 został upubliczniony, ale w kilku pierwszych kompilacjach 5.0 części frameworka uległy uszkodzeniu z powodu innych zmian. Wersje deweloperskie Androida 6.0 Marshmallow jako pierwsze dodały funkcjonalną, choć ograniczoną platformę RRO, otwierając możliwości dostosowywania bezpośrednio na poziomie standardowego Androida. Tak więc, jeśli producent OEM celowo nie próbował odejść od standardowych opcji motywu Androida, z pewnością można zachować poziom spójności w podejściu do sposobu wdrażania „tematów”. Android.

Podczas gdy firma AOSP bawiła się RRO i szukała najlepszego sposobu na włączenie tego wszystkiego, zadzwonił zespół programistów BitSyko pracowali razem nad wspólnym przedsięwzięciem zatytułowanym „Warstwy". Warstwy rozszerzyły standardową funkcjonalność RRO w systemie Android 5.1 Lollipop, aby umożliwić bardziej złożone przełączanie zasobów i większą kontrolę elementów motywów niż jest to możliwe w przypadku standardowego RRO. Ponieważ warstwy bazowały na RRO, twórcy ROM-ów musieli dodać dodatkowy kod, aby włączyć funkcjonalność warstw w swoich ROM-ach, ponieważ nie wszystkie motywy warstw będą działać na standardowym RRO w Marshmallow.

W międzyczasie Sony kontynuowało własne wysiłki w kierunku motywów dla Androida. Zaczęło się nad tym pracować OMS (usługa menedżera nakładek), klient do zarządzania nakładkami, który umożliwi dostawcom dynamiczną kontrolę priorytetów oraz włączanie i wyłączanie nakładek. OMS jest łączony z AOSP i trafi do Androida O. Uznany programista XDA nicholaschum był w stanie potwierdzić na podstawie swoich źródeł, że Android O będzie wyposażony w „dynamiczne nakładki”, co uważa się za nawiązanie do OMS.

OMS powodował konflikty z Warstwami, gdyż tradycyjnie takie funkcje były pod kontrolą motywu. Aby uporać się z problemami powodowanymi przez OMS, a także rozszerzyć funkcjonalność warstw, BitSyko ponownie połączyło siły (i zmieniło nazwę na [projekt.]) stworzyć Podłoże. Substratum to klient z funkcjonalnością OMS który próbuje pogodzić funkcjonalność warstw z OMS, a także zapożycza inne elementy z innych wcześniejszych rozwiązań tematycznych. Nakładki nie nakładały się już na siebie w celu tematyzacji poszczególnych elementów, ponieważ teraz wszystkie potrzebne elementy zostały wstrzyknięte w jedną nakładkę. Funkcje takie jak kompilacja na urządzeniu umożliwiły zastosowanie motywów bez konieczności ponownego uruchamiania między zmianami, dzięki czemu udało się znacznie użytkownikom końcowym łatwiej jest wypróbowywać motywy i eksperymentować. Substratum jest aktywnie rozwijane od samego początku i zawiera listę wszystkich jego funkcji i dodatkowa funkcjonalność byłaby poza zakresem tego artykułu, więc przejdziemy do prawdziwego tematu sztuka.


Podłoże w Sungstratum

Jak wyjaśniono w poprzedniej sekcji, Substratum zaczęło się jako sposób na rozszerzenie standardowej funkcjonalności OMS, a także standardowej funkcjonalności RRO (poprzez warstwy). Substratum miało być używane razem z ROMami opartymi na AOSP, ponieważ większość innych producentów OEM wprowadziłaby sprzeczne zmiany co nie pozwoliłoby Substratum współistnieć z ich modyfikacjami na edytowanej skórce UX, takiej jak Samsung dla przykład.

Sam Samsung również pracował nad rozwiązaniem tematycznym do użytku na swoich własnych urządzeniach w systemie Nougat. W przeciwieństwie do Sony, Samsung nie wykazał zainteresowania przekazaniem kodu motywu do AOSP. Ale ponieważ rozwiązanie Samsunga było dość proste, AOSP tak naprawdę nie stracił wiele. Rozwiązanie tematyczne Samsunga wbudowane w Touchwiz faktycznie pojawiło się na Samsungu Galaxy S6, ale jak wspomniano, jego możliwości osiągnięcia były dość ograniczone. Wcześniej eksperymenty z Galaxy Alpha rozpoczęły się w ograniczonym zakresie, choć większość elementów interfejsu użytkownika systemu znajdowała się poza jego zakresem. Motywy mogą zmieniać tapety i ikony, a także kilka standardowych aplikacji Samsung, takich jak na przykład dialer, kontakty, wiadomości i obszar powiadomień.

Jak się okazuje, silnik tematyczny Samsunga rozciąga się RRO znalezione w AOSP. Samsung odtworzył także własną, wewnętrzną wersję OMS po rozszerzeniu RRO, więc ich implementacje zarówno RRO, jak i OMS różnią się od AOSP. Ale, co zaskakujące, w niezbyt dużej ilości – zachowanie anomalne, biorąc pod uwagę wyjątkowość i złożoność Touchwiz. Twórcy korzystający z nowszych flagowców Samsunga zgłosili, że mogą instalować nakładki RRO i motywować aplikacje innych firm.

To była wskazówka, że ​​zespół [projekt.] musiał przyjrzeć się oficjalnej obsłudze urządzeń Samsung na platformie Substratum. Zespół przekonwertował niewielką ilość kodu z sekcji RRO/Legacy swojej aplikacji, ale zamiast tego żądając rootowania i prosząc o ponowne uruchomienie, uruchomili określone intencje, aby nakładki zostały zainstalowane. Następnie zespół pracował nad tym, aby aplikacje, na które wpływają te motywy, zostały wymuszone zamknięcie w tle, aby zapewnić pełne odświeżenie zasobów przy następnym uruchomieniu.

Zapytaliśmy uznanego programistę XDA nicholaschum aby zapewnić nam wgląd w wyzwania, przed którymi stanął zespół pracujący nad implementacją RRO-OMS o zamkniętym kodzie źródłowym firmy Samsung:

Wyzwania, przed którymi stanęliśmy, były raczej niejasne i nieznane dla wielu osób, które nie miały zbyt dużej wiedzy zrozumienie systemów tematycznych, niezależnie od tego, czy są to źródła otwarte, czy zamknięte – wszystko ma swoją własną wersję próbną i faza błędu. W tym przypadku, pracując z Samsungiem, natknąłem się na wiele problemów, ale głównym z nich było to, że intencje systemowe nie były uruchamiane w przypadku nakładek po zakończeniu instalacji - na przykład podczas korzystania z odbiorników telewizyjnych „Android.intent.action. PACKAGE_ADDED” — usługa motywów odrzuca wszystko, co nie jest częścią sygnatury systemu z konkretnym Samsungiem usługi tematycznej na otrzymanie tego, więc najtrudniejszą częścią było obejście problemu, na które musieliśmy znaleźć sposób wokół.

Sposób, w jaki używamy Substratum wraz z silnikiem motywów Samsunga, polega na wykorzystaniu tego samego systemu, co oni. Korzystają z wysoce zmodyfikowanej wersji systemu Sony Resource Runtime Overlay, w skrócie RRO lub znanego jako dziedzictwo wśród użytkowników Substratum. Różni się jednak tym, że motywy Samsunga mają dodatkowe uprawnienia, które ukrywają te nakładki w Ustawieniach, więc nie można ich odinstalować jeden po drugim ręcznie. Korzystamy z tego samego systemu, jednak korzystamy z implementacji AOSP/Sony, dlatego też Samsung Themes może w pełni motywować framework, podczas gdy Nakładki podłoża nie mogą dotykać celu mediatora, który nie istnieje „fwk” - jak wszyscy wiemy, framework to po prostu pakiet „Android” nazwa.

Wydawało się dziwne, że [projekt.] był w stanie stosunkowo łatwo współpracować z wdrożeniem RRO firmy Samsung. Każdy, kto kiedykolwiek pracował na urządzeniach Samsunga, może potwierdzić, jak często Samsung sprawia wiele trudności. Zapytaliśmy o konkretną blokadę, którą zespół napotkał podczas przenoszenia:

Rzeczywiście istnieje jakiś mechanizm bezpieczeństwa, który dotknął kilku użytkowników – w przypadku którego nakładki są przywracane po uruchomieniu. Wynika to ze sposobu, w jaki Samsung uruchamia swoje urządzenie. Ponieważ przeważnie korzystamy z wersji 7.0 w systemie TouchWiz/Samsung Experience, używamy nowej metody „Optymalizacji aplikacji” (możesz to zobaczyć podczas aktualizacji telefonu, to wyświetli powiadomienie z ikoną Androida Nougat, informujące, że aktualizuje się w tle), więc ten sposób optymalizacji aplikacji również zwalnia cel pakietów, co ostatecznie zakłóca proces mapowania id podczas rozruchu (z powodu nieistnienia pakietu docelowego), w związku z czym kilka osób doświadcza rozładowywania nakładek po ponowne uruchomienie.

Możesz to również zaobserwować w przypadku kilku motywów Samsunga, w szczególności motywu Dark/Black @envy~ – on zmienia domyślny kolor paska nawigacji w Wyświetlacz -> Pasek nawigacji na czarny, tam gdzie jest rzeczywisty kolor domyślny biały. Po ustawieniu go na kolor czarny można otworzyć klawiaturę, a pasek nawigacyjny pozostaje czarny. Zostanie to przywrócone losowo po ponownym uruchomieniu komputera również na wielu urządzeniach.

Kiedy motywy odzyskają swoje znaczenie, jakie są plany Substratum na boczne gałęzie, takie jak Sungstratum?

W przyszłości połączymy małą aplikację z naszym dodatkiem dla naszych obecnych użytkowników, aby tak było będą mogli zatrzymać usługę motywów Samsung, jeśli zostaną zainstalowane wszystkie motywy zainstalowane na ich urządzeniach XDA. Zatem osoby, które będą używać motywów w formacie Samsunga z XDA, będą mogły użyć dodatku, aby zapobiec Usługa Samsunga polegająca na przywróceniu go do motywu podstawowego po każdym ponownym uruchomieniu (ponieważ nie został zainstalowany ze sklepu Samsung oficjalnie). Będzie to wymagało bezpłatnego klucza programisty Samsung dostępnego na ich stronie, ale będzie on wstępnie dołączony do pobrania dodatku Sungstratum.


Biorąc pod uwagę niedawne i nadchodzące zmiany w AOSP i Androidzie O, wygląda na to, że raczkujący system operacyjny Google będzie jeszcze bardziej personalizowany dla użytkownika. Niektórzy producenci OEM planują nawet pozbyć się niestandardowych interfejsów użytkownika i dodatków UX na korzyść AOSP i inne, takie jak Samsung, poruszają się wystarczająco blisko z własnymi rozwiązaniami tematycznymi. Przewidujemy przyszłość, w której motywy odgrywają główną rolę w doświadczeniach użytkownika jeszcze większej liczby osób – systemu operacyjnego gdzie naprawdę masz kontrolę nad wyglądem swojego urządzenia, gdzie estetyka interfejsu użytkownika jest przez Ciebie dostosowywana Ty. Nie bylibyśmy w stanie osiągnąć takiej przyszłości bez zbiorowej mocy tej niesamowitej społeczności i projektów takich jak Substratum.


Sprawdź integrację Substratum dla Samsung Nougat na naszych forach Substratum!Podłoże na GitHubie