Android Oreo sisältää komentorivikäyttöliittymän tuen RRO-teemoille, mikä vihjaa käyttöjärjestelmän siirtymisestä yhä lähemmäksi järjestelmän laajuista teematukea.
Android Oreon julkaisun myötä kuluu paljon aikaa piilotettujen herkkujen etsimiseen lähdekoodista. Aiemmin Android-insinööritiimi on puhui teeman käyttöönotosta Android O: ssa. Ilmoitimme toukokuussa että Android O: n toinen Developer Preview saattoi olla vihje Googlelle, joka tukee Overlay Manager Serviceä (OMS) ja Runtime Resource Overlaya (RRO), mutta nyt tiedämme varmasti, että se oli. Android Oreo nyt, teknisesti, tukee OMS/RRO-teemoja ja tarjoaa jopa käyttöliittymän teemojen käyttöön ottamiseksi tai poistamiseksi käytöstä, jos voit käyttää komentoriviä.
Päivitys: Substratum on käyttänyt näitä komentoja dev-esikatselun kanssa ja nyt Oreon kanssa, koska ne olivat saatavilla!
Mitä ovat RRO ja OMS?
Sony on kehittänyt RRO: n sisäisesti Sony Xperia -sarjan teematoimintoja varten. Kehittäjät, jotka tunnistivat sen merkityksen, pyrkivät laajentamaan sen tukea muihin ROM-levyihin, ja sen mukana tuli RRO-teema moniin laitteisiin - ei vain Sony-laitteisiin. Se korvasi nerokkaasti resurssit sovelluksen ajon aikana, mikä oli helppokäyttöisyys, jota ei tuolloin nähty muista teemavaihtoehdoista. Tästä on kehittynyt OMS, jonka Sony on myös kehittänyt itse. Kuuluisa
Android Oreo esittelee teemakomennot
Näyttää siltä, että Google haluaa nyt täysin tukea tätä teematyyppiä AOSP: ssä, mahdollisesti siirtymässä kohti täydellistä, järjestelmätuettua teemanhallintaa. Android Gerritissä Google on tehnyt useita muutoksia viime kuukausina (ja Android Oreon kanssa), jotka ehdottavat toimenpiteitä teemamoottorin mahdollistamiseksi koko järjestelmän laajuisesti. Muutokset ovat alla ja linkit niiden vastaaviin sitoumuksiin.
- Overlay komennot
- OverlayManagerService (OMS) esiteltiin
- Uusi lupa nimeltä CHANGE_OVERLAY_PACKAGES
Kaikki nämä muutokset merkitsevät Googlen siirtymää kohti jonkinlaista järjestelmän teemasovellusta, joka sisällytetään tulevaisuudessa. Yllä lueteltu käyttöoikeus vaatii järjestelmäoikeuksia ja tarkoittaa siten, että vain järjestelmäsovellus (tai sovellus, jolla on pääkäyttäjän oikeudet) voi vedota tähän oikeuteen. Se on kuitenkin mielenkiintoista, koska se osoittaa, että Google vihdoin työskentelee kohti jotain.
Joten miksi vain teknisesti tukeeko Android Oreo teemaa? No, yksinkertainen vastaus on, että vaikka voit käyttää järjestelmämenetelmää teemojen asentamiseen, sen tekeminen osoittautuisi melko turhaksi. Tämä johtuu siitä, että vaikka voit käyttää uutta komentorivikäyttöliittymää asennettujen teemojen hallintaan, et itse voi asenna uusia teemoja ilman pääkäyttäjän oikeuksia, koska teemojen on mentävä hakemistoon, joka on rajoitettu käyttäjältä tilaa. Pääkäyttäjän oikeuksilla voit ottaa Substratum-teeman joka tapauksessa käyttöön, joten sitä ei tarvitse tehdä uudella tavalla. Google ei ole sisällyttänyt laitteen teemaan järjestelmäsovellusta, joten siihen asti ei ole mitään hyötyä yrittää tehdä se äskettäin sisällytetyllä tavalla.
Command Line Theming Interface
Me XDA: lla testasimme komentoa Google Pixelissä, jossa on Android Oreo -julkaisu. Päätimme testata joitain komentoja ja käytimme niitä ensin
cmd overlays list
nähdäksesi kaikki esiasennetut peittokuvat. Huomasimme "com.google.android.theme.pixelin" olemassaolon, poistimme sen käytöstä ja otimme sen sijaan käyttöön "android.auto_generated_rro__" suorittamalla seuraavat komennot.
Kuten tästä näkyy, vakiopeittokuva on poistettu käytöstä ja automaattisesti luotu peittokuva on käytössä. Suorittamalla komentomme asennettujen peittokuvien tarkastelemiseksi uudelleen, näemme seuraavan tulosteen.
Tämän seurauksena Google Pixelissämme on uusi teema Android-järjestelmäasetussovellus. Huomaa, että yllä oleva peittokuvaluettelo sisältää myös Substratumilla asennettuja teemoja, ja pystyimme ottamaan ne käyttöön/poistamaan käytöstä yhtä helposti.
Löysimme myös toisen komennon kaivaessamme lähdettä. Komento on seuraava
cmd overlay dump --user 0
antaa meille seuraavan tulosteen.
Lähtö
asetukset
android.auto_generated_rro__: 0 {
mPackageName...: android.auto_generated_rro__
käyttäjätunnus...: 0
mTargetPackageName.: Android
mBaseCodePath...: /vendor/overlay/framework-res__auto_generated_rro.apk
mState...: STATE_ENABLED
misEnabled...: totta
misStatic...: totta
}
com.google.android.theme.pixel: 0 {
mPackageName...: com.google.android.theme.pixel
käyttäjätunnus...: 0
mTargetPackageName.: Android
mBaseCodePath...: /vendor/overlay/Pixel/PixelThemeOverlay.apk
mState...: STATE_DISABLED
misEnabled...: false
misStatic...: false
}
Oletuspeittokuvat: com.google.android.theme.pixel
PackageInfo-välimuisti
2 pakettia
Lue lisää
Joten kuten voidaan nähdä, Google on tehnyt paljon työtä teemamoottorin kehittämiseen ja integroimiseen AOSP-lähdekoodiin. Näyttää siltä, että jos se lisättäisiin koko järjestelmän, teemat otettaisiin käyttöön järjestelmän käyttöliittymän virittimessä. Googlella on myös toimitti tietoja OEM-valmistajille, joten on mahdollista, että muut OEM-valmistajat voivat tulevaisuudessa ottaa käyttöön AOSP-versioon perustuvan teematuen Android Oreossa.
Kaiken kaikkiaan tämä on erittäin jännittävä kehitys. Teema on yksi monista osista, jotka määrittelevät Androidin täysin muokattavissa olevaksi käyttöjärjestelmäksi puhelimessasi, vaikka se tällä hetkellä vaatisi pääkäyttäjän järjestelmänlaajuisille teemoille. Tulevaisuudessa, jos se toimisi ilman pääkäyttäjän oikeuksia, se olisi merkittävä askel kohti käyttäjän vapautta. Tietenkin se voi olla lukittuna System UI -virittimeen joksikin aikaa (koska rikkinäiset teemat voivat rikkoa sovelluksia), mutta sallien Käyttäjä jopa hyödyntää alkuperäisen teeman tukea on valtava lisä mobiilikäyttöön järjestelmä.