Sungstratum od tímu [projekt.] prináša všetky tematické vychytávky RRO-OMS do zariadení Samsung Nougat prostredníctvom Substratum! Čítajte ďalej a dozviete sa viac!
Tematika Androidu prešla dlhú cestu, od náročných úprav až po Substratum a teraz, Sungstratum. Pred rokmi bolo slovo „téma“ v diskusiách o Androide často nahradené slovom „vyberať“, čo bolo T-Mobile Theme Chooser nájdený v CyanogenMod, ktorý položil základy, vďaka ktorým sa Android stal témou raj. Schopnosť upraviť vzhľad operačného systému poskytla používateľom ďalší rozmer prispôsobenia, čo im umožnilo vykonávať zmeny, vďaka ktorým budú ich zariadenia oveľa personalizovanejšie.
Dobrá práca pokračovala v dvoch rôznych smeroch. Theme Chooser sa vyvinul do CyanogenMod Theme Engine, ale napriek dlhoročnému úsiliu vynaloženému na tematické zdroje sa CMTE stalo zastaraným. keď sa objavili iné alternatívy.
RRO a vrstvy
Základ jednej z alternatív bol položený, keď kódový príspevok Sony v podobe nového frameworku tzv Runtime Resource Overlay (RRO)
bol prijatý do AOSP. Tento rámec poskytuje možnosť nahradiť prostriedky aplikácie počas behu (odtiaľ názov). Samotné „prekrytia“ sú v systéme Android prítomné a podporované už od Gingerbread (a možno aj skôr), používané predovšetkým na výmenu zdrojov, aby aplikácie fungovali na tomto konkrétnom zariadenie. Prístup spoločnosti Sony k RRO zahŕňal úpravu správcu aktív tak, aby akceptoval súbory APK, ktoré využívali zdroje mapované na iné zodpovedajúce zdroje existujúce v zariadení. Tieto nové zdroje z apk boli potom prekryté nad základnými zdrojmi iba za behu, čo umožnilo systému pracovať tak, ako keby tieto nové zdroje boli vždy jeho súčasťou.Rámec RRO bol zlúčený do AOSP predtým, ako bol Lollipop 5.0 zverejnený, ale niekoľko prvých verzií 5.0 malo časti rámca rozbité kvôli iným zmenám. Vývojárske ukážky Android 6.0 Marshmallow boli prvé, ktoré pridali funkčný, aj keď obmedzený rámec RRO, čím sa otvárajú dvere prispôsobiteľnosti priamo na úrovni systému Android. Takže pokiaľ sa výrobca OEM úmyselne nepokúsil odchýliť sa od možností motívov pre Android, je to isté úroveň konzistentnosti by sa mohla zachovať v prístupe k tomu, ako by sa „témy“ implementovali Android.
Zatiaľ čo sa AOSP pohrával s RRO a hľadal najlepší spôsob, ako to všetko začleniť, tím vývojárov tzv. BitSyko spolupracovali na spoločnom úsilí s názvom „Vrstvy". Vrstvy sa rozšírili o funkcionalitu akcie RRO v systéme Android 5.1 Lollipop, aby umožnili komplexnejšie prepínanie zdrojov a umožnili väčšiu kontrolu prvkov pre témy, než je možné v prípade stock RRO. Pretože vrstvy boli postavené na RRO, výrobcovia ROM potrebovali pridať ďalší kód, aby umožnili funkčnosť vrstiev vo svojich ROM, pretože nie všetky témy vrstiev by fungovali na sklade RRO v Marshmallow.
Medzitým spoločnosť Sony postupovala s vlastným úsilím smerom k téme Androidu. Začalo sa na tom pracovať OMS (služba správcu prekrytia), klient na správu prekrytí, ktorý by poskytovateľom umožnil dynamicky riadiť priority a povoliť a zakázať prekrytia. OMS sa zlučuje do AOSP a dostane sa do systému Android O. XDA uznávaný vývojár Mikuláša dokázal prostredníctvom svojich zdrojov potvrdiť, že Android O bude mať „dynamické prekrytia“, o ktorých sa predpokladá, že ide o odkaz na OMS.
OMS spôsoboval konflikty s vrstvami, ako tradične boli tieto funkcie pod kontrolou témy. Aby sa mohli vysporiadať s problémami, ktoré priniesla spoločnosť OMS, ako aj rozšíriť funkčnosť vrstiev, BitSyko sa opäť spojilo (a premenovalo sa na [projekt.]) vytvoriť Substrát. Substratum je klient s funkcionalitou OMS ktorý sa snaží zosúladiť funkčnosť vrstiev s OMS a tiež si požičiava ďalšie prvky z iných minulých tematických riešení. Prekrytia sa už neprekrývali, aby sa jednotlivé prvky tematizovali, pretože teraz boli všetky potrebné prvky vstreknuté do jedného prekrytia. Funkcie, ako je kompilácia na zariadení, umožnili použitie tém bez potreby reštartu medzi zmenami, čo to znamená výrazne pre koncových používateľov jednoduchšie skúšať témy a experimentovať. Substrát sa od svojho vzniku aktívne vyvíja a uvádza všetky jeho vlastnosti a pridaná funkcia by bola mimo rozsah tohto článku, takže prejdeme k skutočnej téme tohto článku kus.
Substrát na Sungstratum
Ako bolo vysvetlené v predchádzajúcej časti, Substratum začalo ako spôsob rozšírenia funkcionality OMS akcií, ako aj funkcie RRO akcií (prostredníctvom vrstiev). Substrát bol určený na použitie spolu s ROM založenými na AOSP, pretože väčšina ostatných OEM by vykonala protichodné zmeny čo by neumožnilo Substratum koexistovať s ich modifikáciami na upravenom vzhľade UX, ako napríklad od spoločnosti Samsung príklad.
Samotný Samsung tiež pracoval na tematickom riešení pre použitie vo svojich vlastných zariadeniach na Nougate. Na rozdiel od Sony spoločnosť Samsung neprejavila záujem o vrátenie tematického kódu do AOSP. Ale keďže riešenie Samsungu bolo dosť základné, AOSP v skutočnosti veľa nestratil. Tematické riešenie Samsungu zapečené do Touchwiz sa skutočne objavilo na Samsung Galaxy S6, ale ako už bolo spomenuté, bolo dosť obmedzené v tom, čo by sa mohlo pokúsiť dosiahnuť. Predtým existovalo obmedzené experimentovanie, ktoré začalo s Galaxy Alpha, hoci väčšina prvkov používateľského rozhrania systému bola mimo jeho rozsahu. Motívy môžu zmeniť tapety a ikony, ako aj niekoľko akciových aplikácií Samsung, ako je napríklad vytáčanie, kontakty, správy a oblasť oznámení.
Ako sa ukázalo, motívový engine Samsungu predlžuje RRO, ako sa nachádza v AOSP. Spoločnosť Samsung tiež po rozšírení RRO znovu vytvorila svoju vlastnú internú verziu OMS, takže ich implementácie RRO aj OMS sa líšia od AOSP. Ale prekvapivo v nie príliš veľkom množstve -- anomálne správanie, keď vezmeme do úvahy osobitosť a zložitosť Touchwiz. Themers, ktorí používajú novšie vlajkové lode Samsung, oznámili, že môžu nainštalovať prekrytia RRO a mať k nim tematické aplikácie tretích strán.
Toto bol podnet, ktorý tím [projekt.] potreboval preskúmať oficiálnu podporu zariadení Samsung na Substratum. Tím previedol malé množstvo kódu zo svojej sekcie RRO/Legacy svojej aplikácie, ale namiesto toho požadujúc root a žiadajúc o reštart, spustili špecifické zámery, aby boli nainštalované prekrytia. Tím potom pracoval na tom, aby zabezpečil, že aplikácie ovplyvnené prostredníctvom tém budú vynútene zatvorené na pozadí, aby sa zabezpečilo úplné obnovenie aktív pri ďalšom spustení.
Spýtali sme sa XDA Recognized Developer Mikuláša aby sme nám poskytli prehľad o výzvach, ktorým tím čelil pri práci proti uzavretej implementácii RRO-OMS od spoločnosti Samsung:
Výzvy, ktorým sme čelili, boli pre mnohých, ktorí nemajú veľa vedomostí, dosť nejasné a neznáme pochopenie tematických systémov, či už otvorených alebo uzavretých zdrojov - všetko má svoju vlastnú skúšku a chybová fáza. V tomto prípade som pri práci so spoločnosťou Samsung narazil na veľa problémov, ale hlavným z nich je, že systémové zámery nie sú spustené pre prekrytia po dokončení inštalácie – ako je použitie vysielacích prijímačov s „android.intent.action. PACKAGE_ADDED” – Theme Service popiera čokoľvek, čo nie je súčasťou systémového podpisu s konkrétnym Samsungom oprávnenie na tematickú službu, takže najťažšou časťou sú riešenia, ktoré sme museli nájsť okolo.
Spôsob, akým používame Substratum spolu s Theme Engine od spoločnosti Samsung, je pomocou rovnakého systému ako oni. Používajú vysoko upravenú verziu systému Sony Resource Runtime Overlay, skrátene RRO alebo medzi používateľmi Substratum známu ako dedičstvo. Čo sa však líši, je to, že motívy Samsung majú ďalšie povolenie, ktoré tieto prekrytia skryje z Nastavenia, takže ich nemôžete odinštalovať jeden po druhom ručne. Používame rovnaký systém, ale využívame implementáciu AOSP/Sony, a preto Samsung Themes dokáže plne tematický rámec, zatiaľ čo Prekrytia substrátu sa nemôžu dotknúť cieľa mediátora, ktorý neexistuje „fwk“ – ako všetci vieme, rámec je len balík „android“ názov.
Zdalo sa čudné, že [projekt.] bol schopný pracovať spolu s implementáciou RRO spoločnosti Samsung s relatívnou ľahkosťou. Každý, kto niekedy pracoval na zariadeniach Samsung, môže potvrdiť, aké ťažké veci Samsung často robí. Spýtali sme sa na akýkoľvek konkrétny blok, s ktorým sa tím stretol počas svojho prístavu:
Skutočne existuje určitý druh bezpečnostného mechanizmu, ktorý ovplyvnil niekoľko používateľov - kde sa prekryvné vrstvy pri spustení vrátia späť. Je to spôsobené tým, ako Samsung spúšťa svoje zariadenie. Keďže väčšinou používame 7.0 na TouchWiz/Samsung Experience, používame novú metódu „Optimalizácia aplikácií“ (môžete to vidieť, keď aktualizujete svoj telefón, zobrazí upozornenie s ikonou Android Nougat, že prebieha inovácia na pozadí), takže tento spôsob optimalizácie aplikácií tiež uvoľní cieľové balíčkov, čo v konečnom dôsledku naruší proces idmappingu pri zavádzaní (kvôli tomu, že cieľový balík neexistuje), a preto sa u niekoľkých ľudí vyskytne uvoľnenie prekrytia po reštartovať.
Môžete tiež vidieť, ako sa to deje s niekoľkými témami Samsung, najmä s témou @envy~ Dark/Black – on zmení predvolenú farbu navigačného panela v ponuke Displej -> Navigačný panel na čiernu, kde je skutočná predvolená farba biely. Po nastavení na čiernu budete môcť otvoriť klávesnicu a navigačná lišta zostane čierna. Toto sa náhodne vráti aj pri reštarte na mnohých zariadeniach.
Keď sa tématika opäť dostáva do popredia, aké sú plány Substratum na vedľajších vetvách, ako je Sungstratum?
Po ceste vpred zlúčime malú malú aplikáciu do nášho doplnku pre našich súčasných používateľov, aby tak urobili byť schopný zastaviť službu Samsung Theme Service, ak sú všetky motívy nainštalované na ich zariadeniach nainštalované z XDA. Takže ľudia, ktorí budú používať témy vo formáte Samsung z XDA, budete môcť pomocou doplnku zabrániť Služba Samsung ju po každom reštarte vráti späť na skladovú tému (pretože nebola nainštalovaná z obchodu Samsung oficiálne). Vyžaduje si to bezplatný vývojársky kľúč Samsung, ktorý je možné získať z ich stránok, ale bude vopred pribalený k stiahnutiu doplnku sungstratum.
S nedávnymi a pripravovanými zmenami v AOSP a Android O sa zdá, že kedysi začínajúci operačný systém Google bude mať na používateľa ešte viac prispôsobenia. Niektorí výrobcovia OEM dokonca plánujú zbaviť sa svojich vlastných používateľských rozhraní a doplnkov UX v prospech AOSP a iní ako Samsung sa vznášajú dostatočne blízko so svojimi vlastnými tematickými riešeniami. Predpokladáme budúcnosť, v ktorej budú témy hrať hlavnú úlohu v používateľskej skúsenosti ešte väčšieho počtu ľudí – OS kde máte skutočnú kontrolu nad tým, ako vaše zariadenie vyzerá, kde ste si prispôsobili estetiku používateľského rozhrania vy. A takú budúcnosť by sme nedokázali dosiahnuť bez kolektívnej sily tejto úžasnej komunity a projektov ako Substratum.
Pozrite si Substratum Integration pre Samsung Nougat na našom Substratum fórach!Substrát na GitHub