Android O Developer Preview има мистериозна настройка за тема на дисплея. XDA заключи, че тази тематична рамка е базирана на RRO на Sony.
В случай, че все още не знаете, Google пусна втория Android O Developer Preview (Android O DP2) по време на вчерашното I/O събитие. Вече го направихме се потопихме дълбоко във всичко ново, което открихме досега, но имаше едно нещо за DP2, което ме притесняваше. Всеки, който получи бета актуализацията или ръчно флашна новите изображения бързо бяха посрещнати с a коренно различен потребителски интерфейс в бързи настройки. Защо, за бога, Google реши да промени темата? След още малко тестове и ровене стигнах до заключението. По някаква причина Google реши да направи своя "Обърната" тема темата по подразбиране; може би докато компанията беше в средата на тестване на персонализирано тематично решение, базирано на Наслагване на ресурси за изпълнение на Sony (RRO), те не успяха да накарат темата за Pixel по подразбиране да работи навреме за Android O Beta версия.
Системна тема по подразбиране в Android O Developer Preview 2
Разкритието, че тематичната рамка на Android O е базирана на RRO на Sony, може да изглежда очевидно за някои, като се има предвид, че Google внедрена поддръжка за RRO в Android 6.0 Marshmallow, въпреки че изискваше да имате руутнато устройство. Въпреки това, тъй като изходният код за Android O не е публикуван, би било чиста спекулация да се предположи, че тази системна тема в Android O всъщност е RRO. Ето защо нашата първоначално покритие на тази мистериозна обстановка, както и отразяването, направено от други уебсайтове, не направи тази връзка. Но има няколко доказателства, които свързват тази функция с тематичната рамка, която смятаме, че трябва категорично да покаже това Темата на устройството на Android O е базирана на RRO. С поддръжка на RRO на борда, това може най-накрая предоставим тематичното решение за нерутирани потребители, което всички чакахме.
Какво представлява наслагването на ресурси по време на изпълнение (RRO)?
RRO е тематична рамка, създадена от разработчиците на Sony, която захранва Темите за Xperia на Sony. Красотата на RRO е, че ви позволява да замените ресурсите на приложението, без да се налага да променяте изходния код на приложението. Това се случва чрез използването на наслагване, което съдържа свои собствени ресурсни низове, които се използват за замяна на ресурсите на насложеното приложение, докато приложението се зарежда.
За тези от вас, които виждат „RRO“ и си мислят „Слоеве“, вие сте доста близо. Layers е леко модифицирана версия на RRO на Sony, но на базово ниво работи много подобно. RRO/Layers „инсталира“ APK файлове на тема в /system/vendor/overlay. При зареждане мениджърът на пакети чете тези APK файлове, проверява ги и след това ги използва idmap за да го свържете в таблицата на системните ресурси. Можете да прочетете по-подробен ЧЗВ от SykoPompos, разработчикът на (вече отхвърлен) Мениджър на слоеве ап.
Екранни снимки на отхвърленото приложение за управление на слоеве
Препоръчителна литература: Кратка история на тематизирането: от OEM теми до RRO слоеве
Разбира се, малцина от персонализираната ROM общност на Android все още използват тематичен двигател, базиран на RRO. Повечето са преминали към друга тематична машина, като напр Субстрат, което е еволюция на слоевете, сега базирано на услугата Overlay Manager (OMS). (CyanogenMod Theme Engine (CMTE) обаче беше друга популярна тематична рамка бъдещето му все още е във въздуха.) Въпреки това, дори ако не използвате персонализиран ROM с OMS ангажименти, the Приложение за двигател на тема Substratum все още поддържа възможността за използване на теми "Substratum Legacy", които са просто теми за RRO/слоеве. И поради това потребителите започнаха да разбират, че темите за устройства на Android O и RRO са едно и също.
Google най-накрая въвежда тематизиране чрез RRO
Над на раздел за коментари на an AndroidPolice статия, XDA признат разработчик Макср1998 публикува екранна снимка, в която се твърди, че темите на Substratum Legacy се показват в инструмента за избор на теми на Google.
Отляво можете да видите списък с насложени APK файлове, инсталирани от Maxr1998 на Android O Developer Preview 1. Вдясно можете да видите двата избора на тема в Android O Developer Preview 2. По-рано в Android O DP1, двете опции бяха „Пиксел“ и „Обърнат“, като „Пиксел“ беше зададен по подразбиране, докато „Обърнат“ наподобява изгледа и усещането в сивата скала, които са по подразбиране в O DP2.
Но погледнете внимателно името на темата по подразбиране в O DP2. Нарича се "android.auto_generated_rro." Наистина много странно име, но включването на "RRO" в името ме накара първо да повярвам, че това наистина е RRO на Sony.
Тогава си помислих, ако това наистина е RRO, къде другаде мога да потърся, за да го потвърдя? Тези мисли ме накараха да проверя /system/vendor/overlay и както се очакваше, наистина има два APK файла, разположени вътре: framework-res__auto_generated_rro.apk и PixelThemeOverlay.apk.
И двете съответстват на имената на темите в настройките на дисплея. Любопитно е, че когато изберете темата Pixel в настройките на дисплея, тя не работи. Не съм експерт в разработването на RRO теми, така че не мога да кажа защо темата Pixel не работи, въпреки че чрез извършване на разглобяване на APK и на двете приложения става ясно, че те наистина се наслагват приложения.
PixelThemeOverlay.apk Разглобяване на APK
[табове][заглавие на раздела ="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][заглавие на раздела = "strings.xml"]
<resources>
<stringname="pixel_overlay_pixel">Pixelstring>
resources>
[/tab][заглавие на раздела ="colors.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>
[/раздел]
[/tabs]
Ако обезмаслите над документацията на RRO предоставена от Sony, ясно е, че това трябва да е RRO тема. Във файла AndroidManifest линията за наслагване показва, че това наслагване е насочено към файла framework-res.apk („android“) и има приоритет „1“, което е най-високият приоритет, който може да му бъде даден.
От друга страна, във файла framework-res__auto_generated_rro.apk има подобен изглеждащ AndroidManifest.xml файл, но има много други налични низове, които не са свързани с тематизирането. Но това е лесно обяснимо с факта, че тази RRO тема е основно съкратена версия на framework-res.apk на Google Pixel, което реших, че е вярно, тъй като \res\values\bools.xml има реда
което знам от публикация в нашия форум, че е линия, която потребителите трябва да зададете за да активирайте поддръжката на кръгла икона в цялата система.
Заключение
Моят тестер все още не е успял да постигне root достъп в O DP2, за да опита да стартира Substratum Legacy/RRO тема, но предвид моите собствени открития и тези на Maxr1998, е безопасно да се каже, че Google може най-накрая да се готви да представи RRO темата на масите.
Разбира се, няма гаранция, че тази функция няма да бъде премахната в някоя от по-късните версии на Android O. Възможно е Google да реши, че RRO не работи по начина, по който искат, и да се откаже от функцията. Въпреки това, като се има предвид обширната история на RRO както в ръцете на Sony, така и на нашата собствена общност за разработка, много от нас вече са запознати с величието, което е наслагването на ресурси за изпълнение на Sony. И тъй като вече има много налични теми, съвместими с RRO, ако Google някога реши да ни позволи да инсталираме персонализирани теми, те ще отворят шлюза към вече широк пазар от налични теми, на които потребителите да се наслаждават.
Кредити за представяне на изображения: SonyDevWorld