„Android O Developer Preview“ turi paslaptingą ekrano temos nustatymą. XDA padarė išvadą, kad ši teminė sistema yra pagrįsta Sony RRO.
Jei dar nežinote, „Google“ išleido antrąją „Android O Developer Preview“ („Android O DP2“) per vakarykštį I/O renginį. Mes jau giliai pasinėrė į viską, ką iki šiol radome, bet DP2 mane trikdė vienas dalykas. Visi, kurie gavo beta versijos naujinimą arba paleido rankiniu būdu naujus vaizdus greitai sutiko a radikaliai skirtinga vartotojo sąsaja greituose nustatymuose. Kodėl „Google“ nusprendė pakeisti temą? Po dar kelių bandymų ir kasinėjimo priėjau prie išvados. Dėl kokių nors priežasčių „Google“ nusprendė tai padaryti „Apversta“ tema numatytoji tema; galbūt, kol įmonė buvo viduryje testuojant pasirinktinį temų sprendimą, pagrįstą „Sony“ vykdymo laiko išteklių perdanga (RRO), jiems nepavyko laiku priversti numatytosios „Pixel“ temos veikti „Android O Beta“ versijoje.
Numatytoji sistemos tema „Android O“ kūrėjo peržiūroje 2
Atskleidimas, kad „Android O“ temų sistema pagrįsta „Sony“ RRO, kai kuriems gali atrodyti akivaizdus, atsižvelgiant į tai, kad „Google“
įdiegtas RRO palaikymas „Android 6.0 Marshmallow“., nors tam reikėjo turėti įsišaknijusį įrenginį. Tačiau kadangi „Android O“ šaltinio kodas nebuvo išleistas, būtų buvę tik spėlionės, kad ši „Android O“ sistemos tema iš tikrųjų yra RRO. Štai kodėl mūsų pradinė aprėptis apie šią paslaptingą aplinką, taip pat apie tai, ką padarė kitos svetainės, neužmezgė šio ryšio. Tačiau yra keletas įrodymų, susiejančių šią funkciją su temų sistema, kuri, mūsų manymu, turėtų tai įtikinamai parodyti „Android O“ įrenginio tema yra pagrįsta RRO. Turint RRO palaikymą, tai gali pagaliau pateikti temų sprendimą neįsišaknintiems vartotojams, kurių mes visi laukėme.Kas yra vykdymo laiko išteklių perdanga (RRO)?
RRO yra „Sony“ kūrėjų sukurta teminė sistema, kuri maitina Sony Xperia temos. RRO grožis yra tas, kad jis leidžia pakeisti programos išteklius nekeičiant programos šaltinio kodo. Tai atsitinka naudojant perdangą, kurioje yra savo išteklių eilutės, kurios naudojamos pakeisti persidengiančios programos išteklius, kol programa įkeliama.
Tiems iš jūsų, kurie mato „RRO“ ir galvoja „Sluoksniai“, esate gana arti. Layers yra šiek tiek modifikuota Sony RRO versija, tačiau baziniame lygyje ji veikia labai panašiai. RRO/Layers „diegia“ temų APK į /system/vendor/overlay. Įkrovos metu paketų tvarkyklė nuskaito šiuos APK, juos patikrina, tada naudoja idmap susieti jį su sistemos išteklių lentele. Išsamesnį DUK galite perskaityti adresu SykoPompos, kūrėjas (dabar nebenaudojamas) Sluoksnių vadybininkas programėlė.
Nebenaudojamos sluoksnių tvarkyklės programos ekrano kopijos
Rekomenduojama literatūra: Trumpa tematikos istorija: nuo OĮG temų iki RRO sluoksnių
Žinoma, nedaugelis „Android“ tinkintos ROM bendruomenės vis dar naudoja RRO pagrindu sukurtą temos variklį. Dauguma jų perėjo prie kito teminio variklio, pvz Substratas, kuri yra sluoksnių evoliucija, dabar pagrįsta Overlay Manager paslauga (OMS). (Tačiau CyanogenMod Theme Engine (CMTE) buvo dar viena populiari temų sistema jos ateitis vis dar sklando ore.) Tačiau net jei nenaudojate pasirinktinės ROM su OMS įsipareigojimais, Substrato temos variklio programa vis dar palaiko galimybę naudoti „Substratum Legacy“ temas, kurios yra tik RRO / Layers temos. Ir dėl to vartotojai pradėjo suprasti, kad „Android O“ įrenginių temos ir RRO yra viena ir ta pati.
„Google“ pagaliau pristato temą per RRO
Ant komentarų skiltis an AndroidPolice straipsnis, XDA pripažintas kūrėjas Maxr1998 paskelbė ekrano kopiją, kurioje teigiama, kad „Substratum Legacy“ temos rodomos „Google“ įrenginio temos parinkiklyje.
Kairėje galite matyti perdengiančių APK, kuriuos Maxr1998 įdiegė „Android O Developer Preview 1“, sąrašą. Dešinėje galite matyti du „Android O Developer Preview 2“ temų pasirinkimus. Anksčiau „Android O DP1“., dvi parinktys buvo „Pixel“ ir „Inverted“, o „Pixel“ nustatytas kaip numatytasis, o „Inverted“ primena pilkos spalvos vaizdą, kuris yra numatytasis O DP2.
Tačiau atidžiai pažvelkite į numatytosios temos pavadinimą O DP2. Jis vadinamas „android.auto_generated_rro“. Iš tiesų labai keistas pavadinimas, tačiau „RRO“ įtraukimas į pavadinimą paskatino mane pirmiausia patikėti, kad tai tikrai „Sony“ RRO.
Tada pagalvojau, jei tai tikrai RRO, kur dar galėčiau tai patvirtinti? Šios mintys paskatino mane patikrinti /system/vendor/overlay, ir, kaip ir tikėtasi, iš tiesų yra du APK failai: framework-res__auto_generated_rro.apk ir PixelThemeOverlay.apk.
Abu jie atitinka temų pavadinimus ekrano nustatymuose. Įdomu tai, kad kai ekrano nustatymuose pasirenkate „Pixel“ temą, ji neveikia. Nesu RRO temų kūrimo ekspertas, todėl negaliu pasakyti, kodėl Pixel tema neveikia, nors atlikus abiejų programų APK išardymą, aišku, kad jos iš tikrųjų yra perdangos programėlės.
PixelThemeOverlay.apk APK išardymas
[skirtukai][table title ="AndroidManifest.xml"]
package="com.google.android.theme.pixel" platformBuildVersionCode="25" platformBuildVersionName="O">
<overlayandroid: priority="1"android: targetPackage="android"/>
<applicationandroid: hasCode="false"android: label="@string/pixel_overlay_pixel"/>
manifest>
[/tab][tab title ="strings.xml"]
<resources>
<stringname="pixel_overlay_pixel">Pixelstring>
resources>
[/tab][tab title ="spalvos.xml"]
<resources>
<colorname="user_icon_1">#ff5e97f6color>
<colorname="user_icon_2">#ff5c6bc0color>
<colorname="user_icon_3">#ff26a69acolor>
<colorname="user_icon_4">#ffec407acolor>
<colorname="user_icon_5">#ff33ac71color>
<colorname="user_icon_6">#ff8bc34acolor>
<colorname="user_icon_7">#ffff9800color>
<colorname="user_icon_8">#ffff7043color>
<colorname="system_error">#ffea4335color>
<colorname="primary_device_default_dark">#ff2d2d2dcolor>
<colorname="primary_device_default_settings">#ff2d2d2dcolor>
<colorname="primary_dark_device_default_dark">#ff242424color>
<colorname="primary_dark_device_default_settings">#ff242424color>
<colorname="secondary_device_default_settings">#ff3a3a3acolor>
<colorname="tertiary_device_default_settings">#ff616161color>
<colorname="quaternary_device_default_settings">#ff9e9e9ecolor>
<colorname="accent_device_default_700">#ff3367d6color>
<colorname="accent_device_default_light">#ff4285f4color>
<colorname="accent_device_default_dark">#ff5e97f6color>
<colorname="accent_device_default_50">#ffe8f0fecolor>
resources>
[/tab]
[/tabs]
Jei nugriebsite per RRO dokumentus teikia Sony, aišku, kad tai turėtų būti RRO tema. „AndroidManifest“ faile perdangos eilutė nurodo, kad ši perdanga taikoma „framework-res.apk“ („android“) ir jos prioritetas yra „1“, kuris yra aukščiausias prioritetas, kurį jai galima suteikti.
Kita vertus, faile framework-res__auto_generated_rro.apk yra panašiai atrodantis AndroidManifest.xml failas, tačiau yra daug kitų su temomis nesusijusių eilučių. Tačiau tai nesunkiai paaiškinama tuo, kad ši RRO tema iš esmės yra nulupta versija „Google Pixel“ framework-res.apk, kuris, mano manymu, yra teisingas, nes \res\values\bools.xml yra eilutė
iš mūsų forumo įrašo žinau, kad tai yra linija, kurią vartotojai naudoja reikia nustatyti tam, kad įjungti Round Icon palaikymą visoje sistemoje.
Išvada
Mano testeriui dar nepavyko pasiekti O DP2 root prieigos, kad galėtų paleisti Substratum Legacy/RRO temą, tačiau, atsižvelgiant į mano paties ir Maxr1998 išvadas, galima drąsiai teigti, kad Galbūt „Google“ pagaliau ruošiasi pristatyti RRO temą masėms.
Žinoma, nėra jokios garantijos, kad ši funkcija nebus panaikinta vienoje iš vėlesnių „Android O“ versijų. Gali būti, kad „Google“ nuspręs, kad RRO neveikia taip, kaip jie nori, ir atsisakys šios funkcijos. Tačiau, atsižvelgiant į didelę RRO istoriją, kurią valdo „Sony“ ir mūsų pačių kūrėjų bendruomenė, daugelis iš mūsų jau žinome, kokia yra „Sony Runtime Resource Overlay“ galimybė. Ir kadangi jau yra daugybė su RRO suderinamų temų, jei „Google“ kada nors nuspręs leisti mums įdiegti pasirinktines temas, jie atvers vartus į jau plačią galimų temų rinką, kuria vartotojai galės mėgautis.
Funkcijų vaizdo kreditai: SonyDevWorld