Un desarrollador ha recreado el sistema temático Material You de Android 12

click fraud protection

kdrag0n, el desarrollador de la ROM ProtonAOSP, ha lanzado su propia versión de "monet", el nuevo sistema de temas basado en fondos de pantalla de Android 12.

El sistema de temas basado en fondos de pantalla de Material You, con nombre en código "monet", finalmente entró en funcionamiento Android 12 Beta 2. El sistema de temas crea paletas de colores basadas en el esquema de color dominante de su fondo de pantalla y las aplica a los mosaicos de Configuración rápida, la pantalla de bloqueo, la Configuración, las ventanas emergentes y las aplicaciones. Sin embargo, en su implementación actual, sólo temas que forman parte de la interfaz de usuario del sistema y seleccionar aplicaciones del sistema. La mayoría de las aplicaciones de terceros no admiten esta temática dinámica ya que Google aún no ha publicado la documentación sobre Material You. Si bien no sabemos cuándo publicará Google recursos y bibliotecas en Material You, Danny Lin (kdrag0n), el desarrollador de la ROM ProtonAOSP, ha presentado su propio motor de temas basado en "monet".

El motor temático de kdrag0n funciona igual que "monet" y abre el tema dinámico exclusivo de Pixel a todos los dispositivos que ejecutan Android 12 y algunas versiones anteriores de Android. kdrag0n fue el desarrollador que hizo funcionar por primera vez "monet" en las primeras versiones preliminares para desarrolladores de Android 12. Desde entonces, ha realizado ingeniería inversa en la implementación de Google e incluso ha estado brindando comentarios a los miembros del equipo SystemUI de Google, en particular James O'Leary (que parece ser parte del equipo que desarrolló "monet" en Google).

Según kdrag0n, su implementación no utiliza ningún código ni API de Google o Android 12, por lo que no depende de dispositivos que ejecuten Android 12 para utilizar su modelo. El motor de temas de kdrag0n sigue los objetivos de color de Material You. Estos objetivos son entonces “recoloreado ajustando el colorido y el tono en el espacio de color perceptual Oklab de @bjornornorn. Los colores resultantes se asignan a sRGB utilizando la intersección de gama en el espacio Oklab”. Los usuarios también pueden cambiar el colorido y darle prioridad al colorido sobre los tonos precisos.

El motor de temas de kdrag0n es de código abierto bajo la licencia MIT, lo que permite a los desarrolladores de ROM personalizados (e incluso a los OEM) implementarlo si así lo desean. De hecho, el propio desarrollador ProtónAOSP La ROM será una de las primeras en implementarlo cuando se publique el código fuente de Android 12. Si eres un desarrollador de ROM personalizada, puedes elegir estos compromisos y fusionarlos en tu compilación.

El desarrollador también está trabajando en las bibliotecas Jetpack Compose y Flutter, que permitirán que incluso las aplicaciones creadas para Android 11 admitan colores dinámicos. Las aplicaciones dirigidas a versiones anteriores de Android pueden registrar un oyente para recibir notificaciones cuando los colores del fondo de pantalla cambian: el código de kdrag0n está destinado más a generar temas basados ​​en el nuevo color del fondo de pantalla.

Como ejemplo de su modelo funcionando para aplicaciones orientadas a Android 11, el desarrollador compartió un video con nosotros que muestra una aplicación que cambia su tema en cada cuadro a 90 fps. Tenga en cuenta que esta demostración es sólo un ejemplo de lo que se puede hacer y no se recomienda recrearla exactamente como se muestra.

Este puede tener un gran impacto en el rendimiento y la batería, aunque el Pixel 4 del desarrollador puede representar cambios de tema a 90 fps para vistas más simples. Según el desarrollador, Jetpack Compose no se ha optimizado mucho para el rendimiento y la biblioteca Flutter podría ser mejor. En cualquier caso, su motor solo necesita 0,05 ms para generar un tema, pero cambiar el tema de la interfaz de usuario en cada cuadro afecta el rendimiento de todos modos.


Mishaal Rahman contribuyó a este artículo.