Sungstratum iz ekipe [projekt.] prinaša vse tematske dobrote RRO-OMS v naprave Samsung Nougat prek Substratuma! Berite naprej, če želite izvedeti več!
Tematizacija Androida je prehodila dolgo pot, od hekerskih urejanj do Substratuma in zdaj, Sungstratum. Leta nazaj je besedo »tema« v razpravah o sistemu Android pogosto nadomestila beseda »izbirnik«, prikimavanje T-Mobile Theme Chooser, ki ga najdemo v CyanogenMod, ki je postavil temelje, zaradi katerih je Android postal temer raj. Možnost spreminjanja videza operacijskega sistema je uporabnikom omogočila še eno dimenzijo prilagajanja, kar jim je omogočilo, da naredijo spremembe, zaradi katerih so njihove naprave veliko bolj prilagojene.
Dobro delo se je nadaljevalo v dveh različnih smereh. Izbirnik tem se je razvil v tematski mehanizem CyanogenMod, vendar je kljub dolgoletnim prizadevanjem v vire za temiranje CMTE postal zastarel. ko so se pojavile druge alternative.
RRO in plasti
Temelji ene od alternativ so bili postavljeni, ko je Sonyjev prispevek kode v obliki novega okvira, imenovanega
Runtime Resource Overlay (RRO) je bil sprejet v AOSP. To ogrodje omogoča zamenjavo virov aplikacije med izvajanjem (od tod tudi ime). "Prekrivanja" sama po sebi so prisotna in podprta v Androidu že od Gingerbread (in morda tudi prej), ki se uporablja predvsem za zamenjavo virov, da aplikacije delujejo na tem posebnem napravo. Sonyjev pristop k RRO je vključeval spreminjanje upravitelja sredstev za sprejemanje apkov, ki so uporabljali vire, preslikane v druge ustrezne vire, ki obstajajo v napravi. Ti novi viri iz apk-ja so bili nato prekriti z osnovnimi viri le med izvajanjem, kar je sistemu omogočilo, da deluje, kot da bi bili ti novi viri vedno del njega.Ogrodje RRO je bilo združeno z AOSP, preden je bil Lollipop 5.0 javno objavljen, vendar so imeli prvi deli ogrodja 5.0 poškodovani zaradi drugih sprememb. Predogledi za razvijalce Android 6.0 Marshmallow so bili prvi, ki so dodali funkcionalno, čeprav omejeno ogrodje RRO, kar odpira vrata prilagodljivosti na osnovni ravni Androida. Torej, razen če se je proizvajalec originalne opreme namenoma poskušal oddaljiti od standardnih možnosti tem za Android, zagotovo raven doslednosti bi lahko ohranili v pristopu, kako bi se izvajale 'teme' Android.
Medtem ko se je AOSP poigraval z RRO in iskal najboljši način za vključitev vsega, je skupina razvijalcev poklicala BitSyko sodelovali pri skupnem prizadevanju, imenovanem "Plasti". Sloji so razširili standardno funkcionalnost RRO v sistemu Android 5.1 Lollipop, da bi omogočili bolj zapleteno preklapljanje med viri in omogočili več nadzora elementov za teme, kot je mogoče s standardnim RRO. Ker so sloji gradili na RRO navzgor, so morali izdelovalci ROM-ov dodati dodatno kodo, da bi omogočili funkcionalnost slojev v svojih ROM-ih, saj vse teme slojev ne bi delovale na standardnem RRO v Marshmallowu.
Medtem je Sony korakal naprej z lastnimi prizadevanji v smeri tem Androida. Začelo se je delati naprej OMS (storitev upravitelja prekrivanja), odjemalec za upravljanje prekrivk, ki bi ponudnikom omogočal dinamičen nadzor nad prioritetami ter omogočanje in onemogočanje prekrivk. OMS se združuje z AOSP in se bo prebil v Android O. XDA priznani razvijalec nicholaschum je prek svojih virov lahko potrdil, da bo Android O imel "dinamične prekrivke", kar naj bi se nanašalo na OMS.
OMS je povzročil konflikte s sloji, saj so bile tradicionalno takšne funkcije pod nadzorom temerja. BitSyko se je ponovno združil (in se preimenoval v [projekt.]) ustvariti Substrat. Substratum je odjemalec s funkcionalnostjo OMS ki poskuša uskladiti funkcionalnost plasti z OMS in si izposodi tudi druge elemente iz drugih preteklih tematskih rešitev. Prekrivki se niso več prekrivali drug čez drugega, da bi tematizirali posamezne elemente, saj so bili zdaj vsi potrebni elementi vstavljeni v en sam prekrivek. Funkcije, kot je prevajanje v napravi, so omogočale uporabo tem brez ponovnega zagona med spremembami, zaradi česar znatno končnim uporabnikom olajša preizkušanje tem in eksperimentiranje. Substratum je bil v aktivnem razvoju od svojega začetka in navaja vse njegove značilnosti in dodana funkcionalnost bi bila izven obsega tega članka, zato bomo prešli na pravo temo tega kos.
Substrat v Sungstratum
Kot je razloženo v prejšnjem razdelku, se je Substratum začel kot način za razširitev funkcionalnosti zalog OMS kot tudi funkcionalnosti zalog RRO (prek slojev). Substratum je bil namenjen uporabi poleg ROM-ov, ki temeljijo na AOSP, saj bi večina drugih proizvajalcev originalne opreme naredila nasprotujoče si spremembe. ki Substratumu ne bi omogočil soobstoja z njihovimi spremembami na urejeni preobleki UX, kot je Samsungova za primer.
Samsung je prav tako delal na rešitvi tem za uporabo v svojih napravah na Nougatu. Za razliko od Sonyja, Samsung ni pokazal zanimanja za vrnitev tematske kode v AOSP. A ker je bila Samsungova rešitev dokaj osnovna, AOSP v resnici ni veliko izgubljal. Samsungova tematska rešitev, vključena v Touchwiz, se je resnično pojavila na Samsung Galaxy S6, vendar je bila, kot že omenjeno, precej omejena glede tega, kar je lahko poskušala doseči. Pred tem je bilo omejeno eksperimentiranje, ki se je začelo z Galaxy Alpha, čeprav je bila večina sistemskih elementov uporabniškega vmesnika zunaj njegovega obsega. Teme bi lahko spremenile ozadja in ikone, pa tudi nekaj aplikacij iz osnovnega programa Samsung, kot so na primer klicalnik, stiki, sporočila in območje za obvestila.
Kot se je izkazalo, Samsungov tematski mehanizem se razteza RRO, kot ga najdete v AOSP. Samsung je po razširitvi RRO ponovno ustvaril tudi svojo lastno interno različico OMS, zato se njihove izvedbe RRO in OMS razlikujejo od AOSP. Toda presenetljivo, ne zelo veliko - nenavadno vedenje, če upoštevamo posebnost in kompleksnost Touchwiza. Udeleženci tem, ki uporabljajo novejše vodilne modele Samsung, so poročali, da bi lahko namestili prekrivne elemente RRO in tematizirali aplikacije tretjih oseb.
To je bila iztočnica, da je ekipa [projekt.] morala preučiti uradno podporo napravam Samsung na Substratumu. Ekipa je pretvorila majhno količino kode iz razdelka RRO/Legacy svoje aplikacije, vendar namesto zahtevajo root in zahtevajo ponovni zagon, so sprožili posebne namene, tako da so nameščeni prekrivki. Ekipa si je nato prizadevala zagotoviti, da so bile aplikacije, na katere vplivajo teme, prisilno zaprte v ozadju, da bi zagotovili popolno osvežitev sredstev ob naslednjem zagonu.
Vprašali smo priznanega razvijalca XDA nicholaschum da nam zagotovi nekaj vpogledov v izzive, s katerimi se sooča ekipa, ko dela proti Samsungovi zaprtokodni implementaciji RRO-OMS:
Izzivi, s katerimi smo se srečevali, so bili za mnoge, ki nimajo veliko znanja, precej nejasni in neznani razumevanje sistemov tematiziranja, ne glede na to, ali so odprtokodni ali zaprtokodni - vse ima svoj preizkus in faza napake. V tem primeru sem pri delu s podjetjem Samsung naletel na veliko težav, a glavna je bila sistemske namere, ki niso sproži za prekrivanja po končani namestitvi - kot je uporaba oddajnih sprejemnikov z »android.intent.action. PACKAGE_ADDED« - Theme Service zavrne vse, kar ni del sistemskega podpisa z določenim Samsungom dovoljenje storitve za teme od prejema tega, zato je najtežji del rešitev, da smo morali najti način okoli.
Način, kako uporabljamo Substratum poleg Samsungovega Theme Engine, je z uporabo istega sistema kot oni. Uporabljajo zelo spremenjeno različico Sonyjevega sistema Resource Runtime Overlay, skrajšano kot RRO ali med uporabniki Substratuma znanega kot zapuščina. Razlika pa je v tem, da imajo teme Samsung dodatno dovoljenje, ki skrije te prekrivne elemente iz nastavitev, zato jih ne morete ročno odstraniti enega za drugim. Uporabljamo isti sistem, vendar uporabljamo izvedbo AOSP/Sony, zaradi česar lahko teme Samsung v celoti tematizirajo okvir, medtem ko Prekrivne podlage se ne morejo dotakniti posredniškega cilja, ki ne obstaja, "fwk" - kot vsi vemo, je okvir samo "android" paket ime.
Zdelo se je nenavadno, da je [projekt.] z relativno lahkoto deloval skupaj s Samsungovo implementacijo RRO. Vsakdo, ki je kdaj delal na napravah Samsung, lahko potrdi, kako težavne so Samsung stvari. Povprašali smo po kakršnih koli specifičnih blokih, na katere je ekipa naletela med pristanitvijo:
Res je vzpostavljen nekakšen varnostni mehanizem, ki je prizadel nekaj uporabnikov – kjer se prekrivanja ob zagonu povrnejo. To je posledica načina, kako Samsung zažene svojo napravo. Ker večinoma vsi uporabljamo 7.0 na TouchWiz/Samsung Experience, uporabljamo novo metodo »Optimiziranja aplikacij« (to lahko vidite, ko posodobite svoj telefon, prikaže obvestilo z ikono Android Nougat, ki pravi, da poteka nadgradnja v ozadju), zato ta način optimiziranja aplikacij tudi razbremeni cilj paketov, kar na koncu moti postopek preslikave id ob zagonu (zaradi neobstoja ciljnega paketa), zato nekaj ljudi doživi razkladanje prekrivanja po ponovni zagon.
To lahko opazite tudi pri nekaterih temah Samsung, zlasti temi Dark/Black @envy~ - on spremeni privzeto barvo navigacijske vrstice v Zaslon -> Navigacijska vrstica na črno, kjer je dejanska privzeta barva bela. Ko jo nastavite na črno, lahko odprete tipkovnico in navigacijska vrstica ostane črna. To se bo ob ponovnem zagonu naključno razveljavilo tudi v mnogih napravah.
Kakšni so načrti Substratuma za stranske veje, kot je Sungstratum?
Pred nami bomo združili majhno majhno aplikacijo v naš dodatek za naše trenutne uporabnike, tako da bodo lahko zaustavijo Samsung Theme Service, če so vse teme, nameščene v njihovih napravah, nameščene iz XDA. Ljudje, ki bodo uporabljali teme v formatu teme Samsung iz XDA, boste lahko uporabili dodatek za preprečevanje Samsungova storitev, ki jo po vsakem vnovičnem zagonu vrne nazaj na osnovno temo (ker ni bila nameščena iz trgovine Samsung uradno). Potreboval bo brezplačni razvijalski ključ Samsung, ki ga je mogoče pridobiti na njihovem spletnem mestu, vendar bo vnaprej v paketu s prenosom dodatka sungstratum.
Z nedavnimi in prihajajočimi spremembami v AOSP in Android O se zdi, da bo imel Googlov nekoč nastajajoči OS še več personalizacije, ki bo prenesena na uporabnika. Nekateri proizvajalci originalne opreme se celo nameravajo znebiti svojih uporabniških vmesnikov po meri in dodatkov UX v prid AOSP, drugi, kot je Samsung, pa lebdijo dovolj blizu s svojimi lastnimi tematskimi rešitvami. Predvidevamo prihodnost, v kateri bodo teme igrale pomembno vlogo pri uporabniški izkušnji še več ljudi – OS kjer resnično nadzorujete, kako izgleda vaša naprava, kjer estetiko uporabniškega vmesnika prilagodite sami ti. In takšne prihodnosti ne bi mogli doseči brez skupne moči te čudovite skupnosti in projektov, kot je Substratum.
Oglejte si integracijo Substratum za Samsung Nougat na naših forumih Substratum!Substrat na GitHubu