Google võib lõpuks lubada kohandatud teemad, mis on üles ehitatud Sony RRO raamistikule

Android O arendaja eelvaatel on salapärane ekraaniteema seade. XDA on jõudnud järeldusele, et see teemaraamistik põhineb Sony RRO-l.

Kui te pole veel teadlik, on Google eilse I/O sündmuse ajal välja andnud teise Android O Developer Preview (Android O DP2). Oleme juba sukeldunud sügavalt kõigesse uude, mida oleme seni leidnud, kuid DP2 juures oli üks asi, mis mind häiris. Kõik, kes sai beetavärskenduse või vilgutas käsitsi uued pildid said kiiresti vastu a radikaalselt erinev kasutajaliides kiirseadetes. Miks otsustas Google teemat muuta? Pärast veel mõningast katsetamist ja kaevamist olen jõudnud järeldusele. Mingil põhjusel on Google otsustanud selle teha "Ümberpööratud" teema vaiketeema; võib-olla ajal, mil ettevõte oli keset alusel kohandatud teemalahenduse testimine Sony Runtime Resource Overlay (RRO), ei saanud nad Pixeli vaiketeemat õigeks ajaks Android O beetaversiooni jaoks tööle.

Süsteemi vaiketeema Android O arendaja eelvaates 2

Ilmutus, et Android O teemaraamistik põhineb Sony RRO-l, võib mõnele tunduda ilmne, arvestades, et Google

juurutas RRO tugi operatsioonisüsteemis Android 6.0 Marshmallow, kuigi selleks oli vaja juurdunud seadet. Kuna aga Android O lähtekoodi pole avaldatud, oleks olnud puhas spekulatsioon väita, et see Android O süsteemiteema on tegelikult RRO. Sellepärast meie esialgne katvus nii sellest salapärasest keskkonnast kui ka kajastusest muud veebisaidid, ei loonud seda ühendust. Kuid on mitmeid tõendeid, mis seovad selle funktsiooni teemaraamistikuga, mis meie arvates peaksid seda lõplikult näitama Android O seadme teema põhineb RRO-l. Kui pardal on RRO tugi, võib see lõpuks pakume juurdumata kasutajatele teemalahendust, mida oleme kõik oodanud.


Mis on käitusaja ressursi ülekate (RRO)?

RRO on Sony arendajate loodud teemaraamistik, mis toidab Sony Xperia teemad. RRO ilu seisneb selles, et see võimaldab teil asendada rakenduse ressursse, ilma et peaksite rakenduse lähtekoodi muutma. See juhtub ülekatte kasutamisega, mis sisaldab oma ressursi stringe, mida kasutatakse ülekattega rakenduse ressursside asendamiseks rakenduse laadimise ajal.

Nende jaoks, kes näevad "RRO-d" ja mõtlevad "Kihtidele", olete üsna lähedal. Layers on veidi muudetud versioon Sony RRO-st, kuid baastasemel töötab see väga sarnaselt. RRO/Layers "installib" teema APK-d kausta /system/vendor/overlay. Käivitamisel loeb paketihaldur neid APK-sid, kontrollib neid ja seejärel kasutab idmap linkida see süsteemiressursside tabelisse. Põhjalikumat KKK-d saate lugeda aadressilt SykoPompos, arendaja (nüüdseks aegunud) Kihtide haldur rakendus.

Ekraanipildid aegunud kihtide halduri rakendusest


Soovitatav lugemine: Lühike teemastamise ajalugu: OEM-teemadest RRO kihtideni


Muidugi kasutavad vähesed Androidi kohandatud ROM-i kogukonnas endiselt RRO-l põhinevat teemamootorit. Enamik on liikunud mõne teise teemamootori juurde, näiteks Substraat, mis on kihtide edasiarendus, mis põhineb nüüd ülekattehalduri teenusel (OMS). (CyanogenMod Theme Engine (CMTE) oli siiski veel üks populaarne teemaraamistik selle tulevik on endiselt õhus.) Kuid isegi kui te ei kasuta kohandatud ROM-i OMS-i kohustustega, on Substraumi teemamootori rakendus toetab endiselt võimalust kasutada "Substratum Legacy" teemasid, mis on lihtsalt RRO/Layersi teemad. Ja seetõttu hakkasid kasutajad aru saama, et Android O seadme teemad ja RRO on üks ja sama.


Google tutvustab lõpuks teemasid RRO kaudu

Üle peal kommentaaride osa an AndroidPolice artikkel, XDA tunnustatud arendaja Maxr1998 postitas ekraanipildi, milles väideti, et Substratum Legacy teemad kuvatakse Google'i seadme teemavalijas.

Vasakul näete loendit ülekattega APK-dest, mille Maxr1998 installis Android O arendaja eelvaatesse 1. Paremal näete Android O Developer Preview 2 kahte teemavalikut. Varem Android O DP1-s, kaks valikut olid "Pixel" ja "Inverted" ja "Pixel" oli vaikeseadeks, samas kui "Inverted" meenutab hallskaala välimust ja tunnet, mis on O DP2 vaikeseade.

Kuid vaadake hoolikalt O DP2 vaiketeema nime. Seda nimetatakse "android.auto_generated_rro". Väga kummaline nimi, kuid sõna "RRO" lisamine nimesse pani mind esmalt uskuma, et see on tõepoolest Sony RRO.

Seejärel mõtlesin, et kui see on tõesti RRO, siis kust mujalt saan seda kinnitada? Need mõtted viisid mind kontrollima /system/vendor/overlay ja nagu oodatud, asub seal tõepoolest kaks APK-faili: framework-res__auto_generated_rro.apk ja PixelThemeOverlay.apk.

Mõlemad vastavad kuvaseadete teemade nimedele. Kummalisel kombel ei tööta see, kui valite kuvaseadetes Pixeli teema. Ma ei ole RRO-teemade arendamise ekspert, seega ei saa ma öelda, miks Pixeli teema ei tööta, kuigi mõlema rakenduse APK-d eemaldades on selge, et need on tõepoolest ülekatted rakendusi.

PixelThemeOverlay.apk APK Teardown

[tabs][tab 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 ="värvid.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]

Kui koorite üle RRO dokumentatsiooni pakub Sony, on selge, et see peaks olema RRO-teema. AndroidManifest-failis näitab ülekatterida, et see ülekate sihib faili framework-res.apk ("android") ja selle prioriteet on "1", mis on kõrgeim prioriteet, mida sellele anda saab.

Teisest küljest on failis framework-res__auto_generated_rro.apk sarnane välimusega fail AndroidManifest.xml, kuid seal on palju muid stringe, mis pole teemaga seotud. Kuid see on kergesti seletatav asjaoluga, et see RRO-teema on põhimõtteliselt eemaldatud versioon Google Pixeli framework-res.apk, mis minu arvates on tõsi, kuna failis \res\values\bools.xml on rida true mida ma tean meie foorumi postituse põhjal olevat rida, mida kasutajad vaja seada selleks, et lubage Round Iconi tugi kogu süsteemis.


Järeldus

Minu tester ei ole veel suutnud saavutada O DP2 juurjuurdepääsu, et proovida käivitada Substratum Legacy/RRO teema, kuid arvestades minu enda ja Maxr1998 leide, võib kindlalt väita, et Google võib lõpuks valmistuda tooma RRO teemasid massidesse.

Muidugi pole garantiid, et seda funktsiooni ühes hilisemas Android O järgus ei eemaldata. Võimalik, et Google otsustab, et RRO ei tööta nii, nagu nad tahavad, ja loobub funktsioonist. Arvestades aga RRO ulatuslikku ajalugu nii Sony kui ka meie enda arenduskogukonna käes, on paljud meist juba tuttavad Sony Runtime Resource Overlay suurepärasega. Ja kuna saadaval on juba palju RRO-ga ühilduvaid teemasid, kui Google otsustab kunagi lubada meil installida kohandatud teemad, avavad need kasutajate jaoks juba niigi laiaulatuslikule saadaolevate teemade turule.


Funktsiooni pildi autorid: SonyDevWorld