La Vista previa para desarrolladores de Android O tiene una configuración de tema de visualización misteriosa. XDA ha llegado a la conclusión de que este marco temático se basa en el RRO de Sony.
En caso de que aún no lo sepas, Google lanzó la segunda vista previa para desarrolladores de Android O (Android O DP2) durante el evento I/O de ayer. ya hemos Profundizamos en todo lo nuevo que hemos encontrado hasta ahora., pero había una cosa sobre DP2 que me molestaba. Todos quien recibió la actualización beta o la actualizó manualmente las nuevas imágenes fueron rápidamente recibidas con una UI radicalmente diferente en ajustes rápidos. ¿Por qué diablos Google decidió cambiar el tema? Después de algunas pruebas e investigaciones más, llegué a una conclusión. Por alguna razón, Google ha decidido hacer su Tema "invertido" el tema predeterminado; tal vez mientras la empresa estaba en medio de probando una solución de temática personalizada basada en Superposición de recursos de tiempo de ejecución de Sony
(RRO), no pudieron hacer que el tema predeterminado de Pixel funcionara a tiempo para el lanzamiento de Android O Beta.Tema del sistema predeterminado en Android O Developer Preview 2
La revelación de que el marco temático de Android O se basa en el RRO de Sony puede parecer obvia para algunos dado que Google soporte implementado para RRO en Android 6.0 Marshmallow, aunque requería que tuvieras un dispositivo rooteado. Sin embargo, dado que el código fuente de Android O no ha sido publicado, habría sido pura especulación sugerir que este tema del sistema en Android O es, de hecho, RRO. Por eso nuestro cobertura inicial de este misterioso escenario, así como la cobertura realizada por otros sitios web, no hizo esta conexión. Pero hay varias pruebas que vinculan esta característica con el marco temático que creemos deberían demostrar de manera concluyente que El tema del dispositivo de Android O se basa en RRO. Con el apoyo de RRO a bordo, esto puede finalmente proporcionamos la solución temática para usuarios no rooteados que todos estábamos esperando.
¿Qué es la superposición de recursos en tiempo de ejecución (RRO)?
RRO es un marco temático creado por los desarrolladores de Sony que impulsó Temas Xperia de Sony. La belleza de RRO es que le permite reemplazar los recursos de la aplicación sin tener que modificar el código fuente de la aplicación. Esto sucede mediante el uso de una superposición, que contiene sus propias cadenas de recursos que se utilizan para reemplazar los recursos de la aplicación superpuesta mientras se carga la aplicación.
Para aquellos de ustedes que ven "RRO" y piensan en "Capas", están bastante cerca. Layers es una versión ligeramente modificada del RRO de Sony, pero en el nivel básico funciona de manera muy similar. RRO/Layers "instala" los APK del tema en /system/vendor/overlay. En el arranque, el administrador de paquetes lee estos APK, los verifica y luego usa mapa de identificación para vincularlo a la tabla de recursos del sistema. Puede leer preguntas frecuentes más completas en SykoPompos, el desarrollador de (ahora obsoleto) Administrador de capas aplicación.
Capturas de pantalla de la aplicación Administrador de capas en desuso
Lectura recomendada: Una breve historia de la temática: desde temas OEM hasta capas RRO
Por supuesto, pocos en la comunidad de ROM personalizadas de Android todavía usan un motor de temas basado en RRO. La mayoría ha pasado a otro motor de temáticas como Sustrato, que es una evolución de Layers ahora basada en Overlay Manager Service (OMS). (Sin embargo, CyanogenMod Theme Engine (CMTE) fue otro marco temático popular. su futuro aún está en el aire.) Sin embargo, incluso si no está utilizando una ROM personalizada con las confirmaciones de OMS, el Aplicación de motor de temas de sustrato todavía admite la capacidad de usar temas "Substratum Legacy" que son solo temas RRO/Layers. Y debido a esto, los usuarios comenzaron a darse cuenta de que los temas del dispositivo Android O y RRO son lo mismo.
Google finalmente presenta la temática a través de RRO
Más allá del sección de comentarios de un AndroidPolicía artículo, Desarrollador reconocido por XDA Maxr1998 publicó una captura de pantalla que afirma que los temas de Substratum Legacy aparecen en el selector de temas del dispositivo de Google.
A la izquierda, puede ver una lista de APK superpuestos instalados por Maxr1998 en Android O Developer Preview 1. A la derecha, puedes ver las dos opciones de temas en Android O Developer Preview 2. Anteriormente en Android O DP1, las dos opciones eran "Píxel" e "Invertido" con "Píxel" configurado como predeterminado, mientras que "Invertido" se asemeja a la apariencia de escala de grises que es el predeterminado en O DP2.
Pero observe detenidamente el nombre del tema predeterminado en O DP2. Se llama "android.auto_generated_rro". Es un nombre muy extraño, pero la inclusión de "RRO" en el nombre es lo que me llevó a creer por primera vez que se trata del RRO de Sony.
Entonces pensé, si esto es realmente RRO, ¿dónde más puedo buscar para corroborarlo? Esos pensamientos me llevaron a verificar /system/vendor/overlay y, como era de esperar, hay dos archivos APK ubicados dentro: framework-res__auto_generated_rro.apk y PixelThemeOverlay.apk.
Ambos coinciden con los nombres de los temas en la configuración de pantalla. Curiosamente, cuando seleccionas el tema Pixel en la configuración de pantalla, no funciona. No soy un experto en el desarrollo de temas RRO, por lo que no puedo decir por qué el tema Pixel no funciona. aunque al realizar un desmontaje del APK de ambas aplicaciones, queda claro que en realidad están superpuestas aplicaciones.
PixelThemeOverlay.apk Desmontaje de APK
[pestañas][título de la pestaña ="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][título de la pestaña ="strings.xml"]
<resources>
<stringname="pixel_overlay_pixel">Pixelstring>
resources>
[/tab][título de la pestaña ="colores.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>
[/pestaña]
[/pestañas]
si hojeas sobre la documentación de RRO proporcionado por Sony, está claro que se supone que es un tema RRO. En el archivo AndroidManifest, la línea de superposición indica que esta superposición apunta al archivo framework-res.apk ("android") y tiene una prioridad de "1", que es la prioridad más alta que se le puede otorgar.
Por otro lado, dentro del archivo framework-res__auto_generated_rro.apk hay un archivo AndroidManifest.xml de aspecto similar, pero hay muchas otras cadenas presentes que no están relacionadas con la temática. Pero esto se explica fácilmente por el hecho de que este tema RRO es básicamente una versión simplificada de framework-res.apk de Google Pixel, lo cual pensé que es cierto ya que \res\values\bools.xml tiene la línea
que sé por una publicación en nuestro foro que es una línea que los usuarios necesidad de establecer con el fin de habilitar la compatibilidad con iconos redondos en todo el sistema.
Conclusión
Mi evaluador aún no ha podido lograr acceso de root en O DP2 para intentar ejecutar un tema Substratum Legacy/RRO, pero teniendo en cuenta mis propios hallazgos y los de Maxr1998, es seguro decir que Es posible que Google finalmente se esté preparando para llevar la temática RRO a las masas.
Por supuesto, no hay garantía de que esta característica no se elimine en una de las versiones posteriores de Android O. Es posible que Google decida que RRO no está funcionando como ellos quieren y abandone la función. Sin embargo, dada la extensa historia de RRO tanto en manos de Sony como de nuestra propia comunidad de desarrollo, muchos de nosotros ya estamos familiarizados con la grandeza que es Runtime Resource Overlay de Sony. Y dado que ya hay un montón de temas compatibles con RRO disponibles, si Google alguna vez decide permitirnos instalar temas personalizados, abrirán las compuertas a un mercado ya amplio de temas disponibles para que disfruten los usuarios.
Créditos de las imágenes destacadas: SonyDevWorld