De Android O Developer Preview heeft een mysterieuze weergavethema-instelling. XDA heeft geconcludeerd dat dit themaframework gebaseerd is op Sony's RRO.
Voor het geval je het nog niet weet: Google heeft tijdens het I/O-evenement van gisteren de tweede Android O Developer Preview (Android O DP2) uitgebracht. Dat hebben we al gedaan hebben een diepe duik genomen in al het nieuwe dat we tot nu toe hebben gevonden, maar er was één ding aan DP2 dat me dwars zat. Iedereen die de bèta-update ontvangen of handmatig geflashed de nieuwe afbeeldingen werden snel ontvangen met een radicaal andere gebruikersinterface bij snelle instellingen. Waarom heeft Google in vredesnaam besloten het thema te veranderen? Na nog wat testen en graven ben ik tot een conclusie gekomen. Om welke reden dan ook heeft Google besloten dit te maken "Omgekeerd" thema het standaardthema; misschien terwijl het bedrijf er middenin zat het testen van een aangepaste thema-oplossing op basis van Sony's Runtime Resource-overlay (RRO) slaagden ze er niet in om het standaard Pixel-thema op tijd werkend te krijgen voor de Android O Beta-release.
Standaardsysteemthema in Android O Developer Preview 2
De onthulling dat het themaframework van Android O gebaseerd is op Sony's RRO lijkt voor sommigen misschien voor de hand liggend, gezien Google ondersteuning voor RRO geïmplementeerd in Android 6.0 Marshmallow, hoewel je daarvoor een geroot apparaat nodig had. Omdat de broncode voor Android O echter nog niet is vrijgegeven, zou het pure speculatie zijn geweest om te suggereren dat dit systeemthema in Android O in feite RRO is. Daarom onze initiële dekking van deze mysterieuze setting, evenals de berichtgeving door andere websites, heeft dit verband niet gelegd. Maar er zijn verschillende bewijzen die dit kenmerk koppelen aan het thematische raamwerk waarvan wij denken dat dit overtuigend moet aantonen Het apparaatthema van Android O is gebaseerd op RRO. Met RRO-ondersteuning aan boord kan dit mogelijk zijn eindelijk de thema-oplossing bieden voor niet-geroote gebruikers waar we allemaal op hebben gewacht.
Wat is Runtime Resource Overlay (RRO)?
RRO is een themaframework gemaakt door de ontwikkelaars van Sony en ondersteunt Sony's Xperia-thema's. Het mooie van RRO is dat je applicatiebronnen kunt vervangen zonder dat je de broncode van de applicatie hoeft te wijzigen. Dit gebeurt door het gebruik van een overlay, die zijn eigen bronreeksen bevat die worden gebruikt om de bronnen van de overlay te vervangen terwijl de toepassing wordt geladen.
Voor degenen onder jullie die "RRO" zien en denken "Lagen", je bent behoorlijk dichtbij. Layers is een licht gewijzigde versie van Sony's RRO, maar op het basisniveau werkt het vrijwel hetzelfde. RRO/Layers "installeert" thema-APK's in /system/vendor/overlay. Bij het opstarten leest de pakketbeheerder deze APK's, verifieert ze en gebruikt ze vervolgens IDmap om het te koppelen aan de systeembronnentabel. Een uitgebreidere FAQ kunt u lezen op Syko Pompos, de ontwikkelaar van de (nu verouderde) Lagenbeheerder app.
Schermafbeeldingen van de verouderde Layers Manager-app
Aanbevolen lectuur: Een korte geschiedenis van thema's: van OEM-thema's tot RRO-lagen
Natuurlijk gebruiken maar weinigen in de aangepaste ROM-gemeenschap van Android nog steeds een thema-engine op basis van RRO. De meeste zijn overgestapt op een andere thema-engine, zoals Substraat, een evolutie van Layers die nu is gebaseerd op de Overlay Manager Service (OMS). (CyanogenMod Theme Engine (CMTE) was echter een ander populair themaframework de toekomst hangt nog steeds in de lucht.) Maar zelfs als u geen aangepast ROM gebruikt met de OMS-commits, zal de Substratum-thema-engine-app ondersteunt nog steeds de mogelijkheid om "Substratum Legacy"-thema's te gebruiken, die slechts RRO/Layers-thema's zijn. En hierdoor begonnen gebruikers erachter te komen dat de apparaatthema's en RRO van Android O één en dezelfde zijn.
Google introduceert eindelijk thema's via RRO
Op de opmerkingensectie van een AndroidPolitie artikel, XDA erkende ontwikkelaar Maxr1998 heeft een screenshot geplaatst waarin wordt beweerd dat Substratum Legacy-thema's verschijnen in de apparaatthemakiezer van Google.
Aan de linkerkant ziet u een lijst met overlay-APK's die door Maxr1998 zijn geïnstalleerd op Android O Developer Preview 1. Aan de rechterkant ziet u de twee themakeuzes in Android O Developer Preview 2. Voorheen in Android O DP1, waren de twee opties "Pixel" en "Omgekeerd" waarbij "Pixel" als standaard was ingesteld, terwijl "Omgekeerd" lijkt op de grijswaardenlook en -feel die de standaard is in O DP2.
Maar kijk goed naar de naam van het standaardthema in O DP2. Het heet "android.auto_generated_rro." Een heel vreemde naam inderdaad, maar de toevoeging van "RRO" in de naam zorgde ervoor dat ik in eerste instantie geloofde dat dit inderdaad de RRO van Sony is.
Ik dacht toen: als dit inderdaad RRO is, waar kan ik dan anders kijken om dit te bevestigen? Deze gedachten brachten mij ertoe om /system/vendor/overlay te controleren, en zoals verwacht zijn er inderdaad twee APK-bestanden in: framework-res__auto_generated_rro.apk en PixelThemeOverlay.apk.
Beide komen overeen met de namen van de thema's in de weergave-instellingen. Vreemd genoeg werkt het niet als je het Pixel-thema selecteert in de weergave-instellingen. Ik ben geen expert in het ontwikkelen van RRO-thema's, dus ik kan niet zeggen waarom het Pixel-thema niet werkt. hoewel het door het uitvoeren van een APK-demontage van beide applicaties duidelijk is dat deze inderdaad overlay zijn apps.
PixelThemeOverlay.apk APK Teardown
[tabs][tabtitel = "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][tabtitel = "strings.xml"]
<resources>
<stringname="pixel_overlay_pixel">Pixelstring>
resources>
[/tab][tabtitel = "kleuren.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>
[/tabblad]
[/tabbladen]
Als je scheert over de documentatie van RRO geleverd door Sony, is het duidelijk dat dit een RRO-thema zou moeten zijn. In het AndroidManifest-bestand geeft de overlay-lijn aan dat deze overlay zich richt op het framework-res.apk-bestand ("android") en dat het de prioriteit "1" heeft, wat de hoogste prioriteit is die eraan kan worden gegeven.
Aan de andere kant bevindt zich binnen het framework-res__auto_generated_rro.apk-bestand een soortgelijk ogend AndroidManifest.xml-bestand, maar er zijn veel andere tekenreeksen aanwezig die geen verband houden met het thema. Maar dit is gemakkelijk te verklaren door het feit dat dit RRO-thema in feite een uitgeklede versie is van de framework-res.apk van de Google Pixel, waarvan ik dacht dat het waar is, aangezien \res\values\bools.xml de regel heeft
waarvan ik weet uit een bericht op ons forum dat het een regel is die gebruikers gebruiken hoeft in te stellen om te Schakel Round Icon-ondersteuning voor het hele systeem in.
Conclusie
Mijn tester heeft nog geen root-toegang kunnen verkrijgen in O DP2 om te proberen een Substratum Legacy/RRO-thema uit te voeren, maar gezien mijn eigen bevindingen en die van Maxr1998 is het veilig om dat te zeggen Google bereidt zich misschien eindelijk voor om RRO-thema's naar de massa te brengen.
Er is natuurlijk geen garantie dat deze functie niet zal worden verwijderd in een van de latere Android O-builds. Het is mogelijk dat Google besluit dat RRO niet werkt zoals zij willen en de functie achterwege laat. Gezien de uitgebreide geschiedenis van RRO, zowel in de handen van Sony als van onze eigen ontwikkelingsgemeenschap, zijn velen van ons echter al bekend met de grootsheid van Sony's Runtime Resource Overlay. En aangezien er al een heleboel RRO-compatibele thema's beschikbaar zijn, als Google ooit besluit ons toe te staan deze te installeren aangepaste thema's, ze zullen de sluizen openen naar een toch al brede markt van beschikbare thema's waar gebruikers van kunnen genieten.
Functieafbeeldingscredits: SonyDevWorld