Kuidas substraat muutis paindumatule TouchWizile rohkem valikuvõimalusi

Meeskonna [projekt.] Sungstratum toob kõik RRO-OMS-i teemamaiustused Samsung Nougati seadmetesse Substratumi kaudu! Loe edasi, et rohkem teada saada!

Androidi teemade kujundamine on jõudnud kaugele, alates häkkivatest muudatustest kuni substraadini ja nüüd Sungstratum. Aastaid tagasi asendati Androidi aruteludes sõna "teema" sageli sõnaga "valija" CyanogenModist leitud T-Mobile'i teemavalija, mis pani aluse, mis muutis Androidi teemaks paradiis. Võimalus muuta OS-i välimust andis kasutajatele kohandamise teise mõõtme, võimaldades neil teha muudatusi, mis muudavad nende seadmed palju isikupärasemaks.

Hea töö jätkus kahes erinevas suunas. Teemavalija arenes välja teemamootoriks CyanogenMod, kuid vaatamata aastatepikkusele teemamisressursside kallale tehtud jõupingutustele vananes CMTE kui tekkisid muud alternatiivid.


RRO ja kihid

Ühele alternatiivile pandi alus siis, kui Sony koodipanus uue raamistiku näol helistas Käitusaja ressursi ülekate (RRO) võeti vastu AOSP-sse. See raamistik annab võimaluse asendada rakenduse ressursse käitusajal (sellest ka nimi). "Ülekatted" iseenesest on Androidis olemas ja toetatud juba alates Gingerbreadist (ja võib-olla ka varem), mida kasutatakse peamiselt ressursside vahetamiseks, et rakendused selle konkreetse jaoks töötaksid seade. Sony lähenemine RRO-le hõlmas varahalduri muutmist nii, et see aktsepteeriks APK-sid, mis kasutasid ressursse, mis on kaardistatud muude seadmes olemasolevate ressurssidega. Need uued APK-st pärinevad ressursid kaeti seejärel põhiressursside peale ainult käitusajal, võimaldades süsteemil töötada nii, nagu oleksid need uued ressursid alati selle osa olnud.

RRO raamistik liideti AOSP-ga enne Lollipop 5.0 avalikustamist, kuid esimestel 5.0 järgutel olid raamistiku osad muude muudatuste tõttu katki. Android 6.0 Marshmallow arendaja eelvaated olid esimesed, mis lisati funktsionaalsesse, kuigi piiratud RRO raamistikku, mis avab kohandatavuse uksed otse Androidi laotasemel. Seega, välja arvatud juhul, kui originaalseadmete valmistaja üritas tahtlikult Androidi teemavalikutest kõrvale kalduda, on teatud järjepidevuse tase võiks säilitada lähenemisviisis, kuidas teemasid rakendataks Android.

Sel ajal kui AOSP mängis RRO-ga ja otsis parimat viisi selle kõige kaasamiseks, kutsus arendajate meeskond BitSyko tegid koostööd ühisel jõupingutusel nimega "Kihid". Kihid laiendasid Android 5.1 Lollipopi varu RRO-funktsiooni, et võimaldada keerukamat ressursside vahetamist ja võimaldada teemade jaoks rohkem elemente, kui on võimalik varu-RRO-ga. Kuna Layers ehitati RRO-le ülespoole, pidid ROM-i tootjad lisama lisakoodi, et võimaldada kihtide funktsionaalsust oma ROM-ides, kuna kõik kihtide teemad ei töötaks Marshmallow varu RRO-ga.

Vahepeal liikus Sony oma jõupingutustega Androidi teemade poole. See hakkas tööle OMS (ülekattehalduri teenus), ülekatete haldamise klient, mis võimaldab pakkujatel prioriteete dünaamiliselt juhtida ning ülekatteid lubada ja keelata. OMS liidetakse AOSP-ga ja see jõuab Android O-sse. XDA tunnustatud arendaja nicholaschum suutis oma allikate kaudu kinnitada, et Android O kasutab "dünaamilisi ülekatteid", mis arvatakse olevat viide OMS-ile.

OMS põhjustas kihtidega konflikte, kuna traditsiooniliselt olid sellised funktsioonid teemaja kontrolli all. OMS-i tõstatatud probleemide lahendamiseks ja kihtide funktsionaalsuse laiendamiseks lõi BitSyko uuesti meeskonna (ja nimetas end ümber [projekt.]) looma Substraat. Substratum on OMS-funktsiooniga klient mis püüab kihtide funktsionaalsust ühildada OMS-iga ja laenab ka muid elemente muudest varasematest teemalahendustest. Ülekatteid ei kattunud enam üksikute elementide teemaks, kuna nüüd sisestati kõik vajalikud elemendid ühte ülekattesse. Sellised funktsioonid nagu seadmes kompileerimine võimaldasid teemasid rakendada ilma, et oleks vaja muudatuste vahel taaskäivitada, muutes selle oluliselt lõppkasutajatel on lihtsam teemasid proovida ja katsetada. Aluspinda on selle loomisest saadik aktiivselt arendatud ning selles on loetletud kõik selle funktsioonid ja Lisafunktsioonid ei kuulu selle artikli reguleerimisalasse, seega liigume edasi selle tegeliku teema juurde tükk.


Substraat päikesekihiks

Nagu eelmises jaotises selgitatud, alustas Substratum nii aktsia-OMS-i kui ka varu RRO-funktsioonide laiendamise viisina (kihtide kaudu). Substratum oli mõeldud kasutamiseks koos AOSP-põhiste ROM-idega, kuna enamik teisi originaalseadmete tootjaid oleks teinud vastuolulisi muudatusi mis ei võimaldaks Substratumil koos nende muudatustega eksisteerida redigeeritud UX-i nahal, näiteks Samsungi näide.

Samsung töötas ise ka teemalahenduse kallal, mida saaks kasutada Nougatis oma seadmetes. Erinevalt Sonyst ei näidanud Samsung mingit huvi teemakoodi AOSP-le tagasi andmise vastu. Kuid kuna Samsungi lahendus oli üsna lihtne, ei kaotanud AOSP tegelikult palju. Touchwizi sisse küpsetatud Samsungi teemalahendus ilmus Samsung Galaxy S6-le, kuid nagu mainitud, oli selle saavutamine üsna piiratud. Enne seda oli Galaxy Alphaga alanud eksperimenteerimine piiratud, kuigi enamik süsteemi kasutajaliidese elemente jäi selle kohaldamisalast välja. Teemad võivad muuta taustapilte ja ikoone ning ka mõnda Samsungi aktsiarakendust, nagu näiteks helistaja, kontaktid, sõnumid ja teavitusala.

Nagu selgub, Samsungi teemamootor ulatub RRO nagu leitud AOSP-st. Samsung lõi pärast RRO laiendamist uuesti ka oma sisemise OMS-i versiooni, nii et nii RRO kui ka OMS-i rakendused erinevad AOSP-st. Kuid üllatavalt mitte väga suurel hulgal – ebanormaalne käitumine, kui võtta arvesse Touchwizi eripära ja keerukust. Samsungi uuemaid lipulaevu kasutavad teemamehed teatasid, et nad saavad installida RRO-ülekatteid ja lasta neil teemastada kolmanda osapoole rakendusi.

See oli vihje, mida meeskond [projekt.] pidi uurima Samsungi seadmete ametlikku toetamist Substraumis. Meeskond teisendas väikese koguse koodi oma rakenduse jaotisest RRO/Legacy, kuid selle asemel paludes root ja paludes taaskäivitada, käivitasid nad konkreetsed kavatsused, et ülekatted oleks installitud. Seejärel töötas meeskond selle nimel, et teemade kaudu mõjutatud rakendused suletaks taustal, et tagada varade täielik värskendamine järgmisel käivitamisel.

Küsisime XDA tunnustatud arendajalt nicholaschum et anda meile ülevaade väljakutsetest, millega meeskond silmitsi seisis, töötades vastu Samsungi suletud lähtekoodiga RRO-OMS-i juurutamisele:

Väljakutsed, millega silmitsi seisime, olid paljudele, kellel pole palju teadmisi, üsna ebaselged ja tundmatud teemasüsteemide mõistmine, olgu see siis avatud või suletud lähtekoodiga – kõigel on oma prooviversioon ja vea faas. Sel juhul komistasin Samsungiga töötades paljude probleemide otsa, kuid peamine neist oli süsteemi kavatsuste puudumine vallandatakse ülekatete jaoks pärast installimise lõpetamist – nt ringhäälinguvastuvõtjate kasutamine „android.intent.action. PACKAGE_ADDED” – teemateenus eitab kõike, mis ei kuulu konkreetse Samsungi süsteemisignatuuri teemateenuse loa saamisest, nii et kõige raskem osa on lahendused, millele pidime lahenduse leidma ümber.

Substratumi kasutamine Samsungi teemamootori kõrval on sama süsteemi kasutamine, mida nad kasutavad. Nad kasutavad Sony Resource Runtime Overlay süsteemi tugevalt muudetud versiooni, lühendatult RRO või tuntud kui pärand Substratumi kasutajate seas. Erinev on aga see, et Samsungi teemadel on lisaluba, mis peidab need ülekatted seadete alt, nii et te ei saa neid ükshaaval käsitsi desinstallida. Kasutame sama süsteemi, kuid kasutame AOSP/Sony juurutust, mistõttu saavad Samsung Themesi raamistikku täielikult kujundada. Aluskihi ülekatted ei saa puudutada vahendaja sihtmärki, mida pole olemas "fwk" – nagu me kõik teame, on raamistik lihtsalt "android" pakett nimi.

Tundus kummaline, et [projekt.] sai suhteliselt hõlpsalt Samsungi RRO juurutusega kõrvuti töötada. Igaüks, kes on kunagi Samsungi seadmetega töötanud, võib kinnitada, kui keeruliseks Samsung asjad sageli teeb. Uurisime mis tahes konkreetset blokki, mida meeskond oma pordi ajal kohtas:

On tõepoolest olemas mingisugune turvamehhanism, mis mõjutas mõnda kasutajat – kus ülekatted taastatakse käivitamisel. See on tingitud sellest, kuidas Samsung oma seadme käivitab. Kuna me oleme enamasti TouchWiz/Samsung Experience'i versioonis 7.0, kasutame uut rakenduste optimeerimise meetodit (seda näete telefoni värskendamisel, kuvab Android Nougati ikooniga teatise, mis ütleb, et see uuendatakse taustal), nii et selline rakenduste optimeerimise viis laadib maha ka sihtmärgi paketid, mis lõppkokkuvõttes häirivad idmapping protsessi alglaadimisel (kuna sihtpaketti pole olemas) ja seetõttu kogevad mõned inimesed ülekatte mahalaadimist pärast taaskäivitage.

Seda võib näha ka mõne Samsungi teemaga, eriti @envy~ tumeda/musta teemaga – ta muudab navigeerimisriba vaikevärvi valikus Display -> Navigation bar mustaks, kus on tegelik vaikevärv valge. Pärast selle mustaks seadmist saate avada klaviatuuri ja navigeerimisriba jääb mustaks. See taastatakse juhuslikult ka paljudes seadmetes taaskäivitamisel.

Millised on Substratumi plaanid külgharudel nagu Sungstratum, kui temaatika on taas esile kerkinud?

Edaspidi ühendame oma praeguste kasutajate jaoks väikese väikese rakenduse oma lisandmooduliga, et nad seda teeksid saavad peatada Samsungi teemateenuse, kui kõik nende seadmetesse installitud teemad on installitud XDA. Nii et inimesed, kes hakkavad kasutama XDA Samsungi teemavormingus teemasid, saate kasutada lisandmoodulit, et vältida Samsungi teenus ei ennista seda pärast iga taaskäivitamist laoteemaks (kuna seda ei installitud Samsungi poest ametlikult). Selleks on vaja nende saidilt saada tasuta Samsungi arendajavõtit, kuid see on eelnevalt komplektis koos sungstratumi lisandmooduli allalaadimisega.


AOSP ja Android O hiljutiste ja tulevaste muudatuste tõttu näib, et Google'i kunagine OS-i saab kasutajale veelgi rohkem isikupärastada. Teatud originaalseadmete tootjad plaanivad isegi oma kohandatud kasutajaliidestest ja UX-i lisandmoodulitest vabaneda AOSP kasuks ja teised, nagu Samsung, hõljuvad oma teemalahendustega piisavalt lähedal. Näeme tulevikku, kus teemad mängivad olulist rolli veelgi rohkemate inimeste kasutuskogemuses – OS kus saate tõeliselt kontrollida, kuidas teie seade välja näeb, kus kasutajaliidese esteetika on teie poolt kohandatud sina. Ja me ei suudaks sellisesse tulevikku jõuda ilma selle suurepärase kogukonna ja selliste projektideta nagu Substratum.


Tutvuge Samsung Nougati aluskihi integreerimisega meie Substratum foorumites!Aluspind GitHubis