Kaip substratas suteikė daugiau pasirinkimo nelanksčiam TouchWiz

„Sungstratum“ iš komandos [projekt.] per „Substratum“ pristato visas RRO-OMS temines gėrybes į „Samsung Nougat“ įrenginius! Skaitykite toliau, kad sužinotumėte daugiau!

„Android“ temų kūrimas nuėjo ilgą kelią – nuo ​​nepatogių pakeitimų iki „Substratum“ ir dabar, Saulės sluoksnis. Prieš daugelį metų žodį „tema“ „Android“ diskusijose dažnai pakeisdavo žodis „pasirinkėjas“, linktelėjimas „T-Mobile“ temų parinkiklis, rastas „CyanogenMod“, padėjo pagrindus, dėl kurių „Android“ tapo temos rojus. Galimybė keisti OS išvaizdą suteikė vartotojams kitą tinkinimo dimensiją, leidžiančią jiems atlikti pakeitimus, dėl kurių jų įrenginiai tampa daug labiau individualizuoti.

Geras darbas tęsėsi dviem skirtingomis kryptimis. Temos parinkiklis išsivystė į CyanogenMod temų variklį, tačiau nepaisant daugelio metų pastangų, įdėtų kuriant temas, CMTE paseno. kai atsirado kitos alternatyvos.


RRO ir sluoksniai

Vienos iš alternatyvų pagrindas buvo padėtas, kai „Sony“ kodas įnešė į naują sistemą Vykdymo laiko išteklių perdanga (RRO)

buvo priimtas į AOSP. Ši sistema suteikia galimybę pakeisti programos išteklius vykdymo metu (taigi ir pavadinimas). Pačios „perdangos“ buvo ir palaikomos „Android“ nuo Gingerbread (ir galbūt ir anksčiau), visų pirma naudojamas ištekliams sukeisti, kad programos veiktų konkrečiai prietaisas. „Sony“ požiūris į RRO buvo susijęs su turto valdytojo modifikavimu, kad priimtų APK, kurie naudojo išteklius, susietus su kitais atitinkamais įrenginyje esančiais ištekliais. Tada šie nauji APK ištekliai buvo padengti baziniais ištekliais tik vykdymo metu, todėl sistema veiktų taip, lyg šie nauji ištekliai visada būtų buvę jos dalis.

RRO sistema buvo sujungta su AOSP prieš paskelbiant „Lollipop 5.0“, tačiau keliose pradinėse 5.0 versijose sistemos dalys buvo sugadintos dėl kitų pakeitimų. „Android 6.0 Marshmallow“ kūrėjų peržiūros buvo pirmosios, kurios buvo įtrauktos į funkcinę, nors ir ribotą RRO sistemą, atverdamas tinkinimo duris tiesiog „Android“ atsargų lygiu. Taigi, nebent originalios įrangos gamintojas sąmoningai bandė nukrypti nuo „Android“ teminių parinkčių, tam tikri būtų galima išlaikyti nuoseklumo lygį nustatant, kaip „temos“ būtų įgyvendinamos Android.

Kol AOSP žaidė su RRO ir ieškojo geriausio būdo visa tai integruoti, kūrėjų komanda paskambino BitSyko dirbo kartu siekdami kolektyvinių pastangų, vadinamų "Sluoksniai". Sluoksniai išplėtė pradinę RRO funkciją „Android 5.1 Lollipop“, kad būtų galima sudėtingiau perjungti išteklius ir daugiau elementų valdyti temas, nei įmanoma naudojant atsarginį RRO. Kadangi sluoksniai buvo sukurti naudojant RRO, ROM kūrėjams reikėjo pridėti papildomo kodo, kad įgalintų sluoksnių funkcionalumą savo ROM, nes ne visos sluoksnių temos veiktų su atsarginiu RRO Marshmallow.

Tuo tarpu „Sony“ savo pastangomis siekė „Android“ temos. Jis pradėjo dirbti OMS (perdangos tvarkyklės paslauga), klientas, skirtas tvarkyti perdangas, kurios leistų teikėjams dinamiškai valdyti prioritetus ir įjungti bei išjungti perdangas. OMS sujungiama su AOSP ir pateks į „Android O“.. XDA pripažintas kūrėjas nicholaschum per savo šaltinius galėjo patvirtinti, kad „Android O“ turės „dinamines perdangas“, kurios, kaip manoma, yra nuoroda į OMS.

OMS sukėlė konfliktus su sluoksniais, nes tradiciškai tokias funkcijas valdė tema. Siekdama išspręsti OMS iškeltas problemas ir išplėsti sluoksnių funkcionalumą, BitSyko vėl susivienijo (ir persivadino į [projektas.]) sukurti Substratas. „Substratum“ yra klientas su OMS funkcijomis kuri bando suderinti sluoksnių funkcionalumą su OMS, taip pat pasiskolina kitus elementus iš kitų ankstesnių teminių sprendimų. Perdangos nebebuvo perdengtos viena ant kitos, kad būtų sudarytos atskirų elementų temos, kaip dabar, visi reikalingi elementai buvo įterpti į vieną perdangą. Funkcijos, pvz., kompiliavimas įrenginyje, leido pritaikyti temas neperkraunant tarp pakeitimų, todėl gerokai galutiniams vartotojams lengviau išbandyti temas ir eksperimentuoti. Substratas buvo aktyviai plėtojamas nuo pat jo įkūrimo, išvardijant visas jo savybes ir papildomos funkcijos nepatektų į šio straipsnio taikymo sritį, todėl pereisime prie tikrosios temos gabalas.


Substratas į Sungstratum

Kaip paaiškinta ankstesniame skyriuje, „Substratum“ buvo pradėtas kaip būdas išplėsti atsargų OMS ir atsargų RRO funkcijas (per sluoksnius). Substratas buvo skirtas naudoti kartu su AOSP pagrindu veikiančiais ROM, nes dauguma kitų originalios įrangos gamintojų būtų padarę prieštaringų pakeitimų tai neleistų „Substratum“ egzistuoti kartu su jų modifikacijomis redaguotame UX apvalkale, pvz., „Samsung“ pavyzdys.

„Samsung“ pati taip pat kūrė teminį sprendimą, skirtą naudoti visuose savo įrenginiuose „Nuga“. Skirtingai nei „Sony“, „Samsung“ neparodė susidomėjimo grąžinti teminį kodą AOSP. Tačiau kadangi „Samsung“ sprendimas buvo gana paprastas, AOSP tikrai daug neprarado. „Samsung“ teminis sprendimas, įtrauktas į „Touchwiz“, iš tikrųjų pasirodė „Samsung Galaxy S6“, tačiau, kaip minėta, jis buvo gana ribotas, ką jis galėjo bandyti pasiekti. Prieš tai buvo riboti eksperimentai, prasidėję su Galaxy Alpha, nors dauguma sistemos vartotojo sąsajos elementų nepateko į jo taikymo sritį. Temos gali pakeisti fono paveikslėlius ir piktogramas, taip pat kai kurias „Samsung“ programas, pvz., rinkiklį, kontaktus, pranešimus ir pranešimų sritį.

Kaip paaiškėjo, „Samsung“ teminis variklis tęsiasi RRO kaip rasta AOSP. „Samsung“ taip pat atkūrė savo vidinę OMS versiją išplėtus RRO, todėl jų RRO ir OMS diegimas skiriasi nuo AOSP. Tačiau stebėtina, kad tai nėra labai didelis kiekis – neįprastas elgesys, kai atsižvelgiama į Touchwiz išskirtinumą ir sudėtingumą. Temos, naudojantys naujesnius „Samsung“ flagmanus, pranešė, kad gali įdiegti RRO perdangas ir suteikti jas trečiųjų šalių programoms.

Tai buvo užuomina, kurios komandai [projekt.] reikėjo ištirti, kaip oficialiai palaikyti „Samsung“ įrenginius „Substratum“. Komanda konvertavo nedidelį kodo kiekį iš savo programos RRO / Legacy skyriaus, bet vietoj to prašydami root ir prašydami perkrauti, jie paleido konkrečius ketinimus, kad būtų įdiegtos perdangos. Tada komanda stengėsi užtikrinti, kad programos, paveiktos per temas, būtų priverstinai uždarytos fone, kad būtų užtikrintas visiškas išteklių atnaujinimas kitą kartą paleidžiant.

Mes paklausėme XDA pripažinto kūrėjo nicholaschum kad suteiktų mums šiek tiek įžvalgų apie iššūkius, su kuriais susidūrė komanda, dirbdama prieš Samsung uždarojo kodo RRO-OMS diegimą:

Iššūkiai, su kuriais susidūrėme, buvo gana neaiškūs ir nežinomi daugeliui, kurie neturi daug žinių suprasti tematikos sistemas, nesvarbu, ar tai atvirojo, ar uždarojo kodo – viskas turi savo bandomąją versiją ir klaidos fazė. Šiuo atveju, dirbdamas su „Samsung“, susidūriau su daugybe problemų, tačiau pagrindinė iš jų yra sistemos ketinimai baigus diegti, pavyzdžiui, naudojant transliacijos imtuvus „android.intent.action. PACKAGE_ADDED“ – temų paslauga atmeta viską, kas nėra sistemos parašo su konkrečia „Samsung“ dalimi. gavus temos paslaugos leidimą, todėl sunkiausia dalis yra išeitis, kurią turėjome rasti aplinkui.

„Substratum“ kartu su „Samsung Theme Engine“ naudojame tą pačią sistemą kaip ir jie. Jie naudoja labai modifikuotą „Sony“ išteklių vykdymo perdangos sistemos versiją, sutrumpintą kaip RRO arba žinomą kaip palikimą tarp „Substratum“ naudotojų. Tačiau skiriasi tuo, kad „Samsung“ temos turi papildomą leidimą, kuris paslepia šias perdangas iš „Nustatymų“, todėl negalite jų pašalinti po vieną rankiniu būdu. Mes naudojame tą pačią sistemą, tačiau naudojame AOSP / Sony diegimą, todėl „Samsung Themes“ gali visiškai sukurti temų sistemą, o Substrato perdangos negali liesti tarpininko taikinio, kurio nėra „fwk“ – kaip visi žinome, sistema yra tik „android“ paketas vardas.

Atrodė keista, kad [projekt.] gana lengvai galėjo dirbti kartu su Samsung RRO diegimu. Kiekvienas, kada nors dirbęs su „Samsung“ įrenginiais, gali patvirtinti, kaip „Samsung“ dažnai daro viską. Teiravomės dėl bet kokio konkretaus bloko, su kuriuo komanda susidūrė per savo prievadą:

Iš tikrųjų yra tam tikras saugos mechanizmas, kuris paveikė kelis vartotojus – kai perdangos grįžta paleidžiant. Taip yra dėl to, kaip „Samsung“ paleidžia savo įrenginį. Kadangi „TouchWiz“ / „Samsung Experience“ dažniausiai naudojamės 7.0 versijos, naudojame naują „Programų optimizavimo“ metodą (tai pamatysite atnaujinę telefoną, bus rodomas pranešimas su „Android Nougat“ piktograma, sakydamas, kad ji atnaujinama fone), todėl šis programų optimizavimo būdas taip pat iškrauna tikslą paketus, galiausiai sutrikdydamas idmapping procesą paleidžiant (dėl to, kad tikslinis paketas neegzistuoja), todėl kai kurie žmonės patiria perdangos iškrovimą po paleisti iš naujo.

Taip pat galite pamatyti, kaip tai vyksta su keliomis „Samsung“ temomis, ypač @envy~ „Dark/Black“ tema. numatytąją naršymo juostos spalvą ekrane -> Naršymo juostoje paverčia juoda, kur yra tikroji numatytoji spalva baltas. Nustačius juodą, galėsite atidaryti klaviatūrą, o naršymo juosta lieka juoda. Tai bus atkurta atsitiktinai paleidus iš naujo, taip pat daugelyje įrenginių.

Kokie yra Substratum planai, kai temos atgauna savo svarbą tokiose šoninėse šakose kaip Sungstratum?

Toliau mes sujungsime nedidelę programėlę į savo priedą, skirtą dabartiniams vartotojams, kad jie tai padarytų galės sustabdyti „Samsung Theme Service“, jei visos jų įrenginiuose įdiegtos temos yra įdiegtos iš XDA. Taigi žmonės, kurie naudos „Samsung“ tema suformatuotas XDA temas, galėsite naudoti priedą, kad išvengtumėte „Samsung“ paslauga negrąžina jos į atsargų temą po kiekvieno paleidimo iš naujo (nes ji nebuvo įdiegta iš „Samsung“ parduotuvės oficialiai). Tam reikės nemokamo „Samsung“ kūrėjo rakto, kurį galima gauti iš jų svetainės, tačiau jis bus iš anksto susietas su „sungstratum“ priedo atsisiuntimu.


Atsižvelgiant į naujausius ir būsimus AOSP ir „Android O“ pakeitimus, atrodo, kad kadaise besikurianti „Google“ OS naudotojas turės dar daugiau suasmeninimo. Kai kurie originalios įrangos gamintojai netgi planuoja atsikratyti savo tinkintų vartotojo sąsajų ir UX priedų AOSP naudai, o kiti, tokie kaip „Samsung“, yra pakankamai arti savo teminių sprendimų. Mes įsivaizduojame ateitį, kurioje temos vaidins pagrindinį vaidmenį dar daugiau žmonių – OS kur jūs tikrai kontroliuojate, kaip atrodo jūsų įrenginys, kur vartotojo sąsajos estetika yra jūsų pritaikyta tu. Ir mes negalėtume pasiekti tokios ateities be šios nuostabios bendruomenės kolektyvinės galios ir tokių projektų kaip „Substratum“.


Peržiūrėkite „Samsung Nougat“ substrato integraciją mūsų „Substratum“ forumuose!„GitHub“ substratas