Android Q+ puede usar la API de gráficos Vulkan para representar la interfaz de usuario

click fraud protection

Skia, el motor de gráficos de código abierto de Google, tiene un backend de API de gráficos Vulkan. Este backend se puede utilizar para representar la interfaz de usuario en Android Q o posterior.

La próxima versión principal de Android, Android 9, se lanzará el próximo mes para múltiples dispositivos. A diferencia de Android Oreo, donde las principales mejoras fueron en su mayoría internas, Android P ofrece más funciones orientadas al usuario. como la interfaz de usuario renovada, los gestos de navegación y el bienestar digital, al mismo tiempo que continuamos trabajando en el Proyecto Triplicar. Pero detrás de escena, Google ha renovado la forma en que funciona la representación de gráficos en Android. En Android Oreo, Google comenzó a probar un backend acelerado por hardware OpenGL para el motor de gráficos Skia que se completó en Android P. Sin embargo, Google no se detiene allí, ya que la compañía planea implementar la back-end de Vulkan del motor gráfico Skia que llegará a Android Q o una versión posterior.

La evidencia de esto proviene de un comentario presentado por un ingeniero de Google sobre el código abierto Chromium Gerrit. El comentario hace referencia a un informe de error sobre la próxima implementación de la API de gráficos Vulkan para el navegador Google Chrome en Android. El comentario afirma que, en algún momento en el futuro, "habrá un requisito" para tener la API Vulkan. soporte para Android WebView cuando el marco "[Android] va a comenzar a usar Vulkan para HWUI."


Representación de gráficos en Android

Para obtener conocimientos previos, Skia es un motor de gráficos 2D de código abierto que se utiliza en Google Chrome, Chrome OS, Android, Flutter y otros proyectos importantes. Skia es un motor de renderizado de gráficos utilizado en las primeras versiones de Android para renderizar Vista y Lienzo (las clases utilizadas para crear y dibujar la interfaz de usuario en la mayoría de las aplicaciones). Android 3.0 Honeycomb reemplazó parcialmente a Skia con HWUI, una biblioteca que convierte Comandos Canvas en comandos OpenGL acelerados por hardware, aunque la biblioteca de gráficos 2D Skia todavía se usaba en algunas áreas como ruta rasterización. Paralelamente, Google también creó un backend OpenGL para Skia. El resultado es que algunas llamadas de gráficos se realizarían a la biblioteca Skia mientras que otras irían al backend de OpenGL. Para limpiar la arquitectura de gráficos, Google decidió que HWUI ahora hablará con Skia, que a su vez habla con su backend OpenGL acelerado por hardware, para realizar la representación de la interfaz de usuario. El resultado es que las llamadas de gráficos para el marco de la interfaz de usuario seguirán un camino y no dos.

Algunos de ustedes recordarán una opción de desarrollador llamada "Establecer procesador de GPU" en las primeras vistas previas para desarrolladores de Android 8.0 Oreo. Esta opción de desarrollador le permitió forzar a HWUI a usar Skia y su backend OpenGL acelerado por hardware como procesador de GPU para el marco de UI. La opción de desarrollador se eliminó porque este comportamiento ahora es el predeterminado.

Opción de desarrollador "Establecer procesador de GPU" en las vistas previas de desarrollador de Android O

El siguiente paso de Google para mejorar la representación de gráficos es cambiar de un backend acelerado por hardware OpenGL a un backend acelerado por hardware Vulkan. No es en absoluto un movimiento inesperado y es una progresión lógica, pero es bueno ver que se está trabajando para mejorar la representación de gráficos en Android. Si bien la medida no solucionará todas las fuentes de retraso en Android, debería reducir los tiempos de renderizado de cuadros al reducir el procesamiento realizado por la CPU. Dado que se trata de un trabajo en progreso (está inacabado en Android P), esperamos que se lance con Android Q u otra versión futura de Android.


Una vista previa del uso de la API de gráficos Vulkan para representar la interfaz de usuario

De hecho, ahora es posible probar el backend de Vulkan para Skia en Android P. Hay un parámetro de depuración que puede configurar para forzar a Android a utilizar el canal Skia Vulkan. Simplemente reinicie después de agregar la siguiente línea a /system/build.prop:

debug.hwui.renderer=skiavk

Agregar esta línea en un dispositivo que ejecuta Android Oreo provocará un bloqueo, por lo que no lo recomendamos. Si bien su dispositivo se iniciará con esta bandera en Android P, tiene bastantes errores en este momento. La mayoría de las veces, Google Pixel Launcher no reproduce ningún fondo, los videos animados en Configuración no se cargan y hay varios fallos gráficos en la barra de estado y las notificaciones. Aparte de eso, la mayoría de las aplicaciones, incluso los vídeos de YouTube y juegos como Doodle Jump, parecen cargarse bien.

Muchas gracias al desarrollador reconocido de XDA. lucas020400 por su ayuda al escribir este artículo, por proporcionar las capturas de pantalla que muestran el código libhwui.so desensamblado y por proporcionar el indicador de depuración para probar el backend de Vulkan.


Fuente 1: Talkin’ Treble: Cómo los ingenieros de Android están ganando la guerra contra la fragmentación [ArsTechnica]

Fuente 2: Canalización de gráficos de Android: del botón al framebuffer [blog inovex]

Fuente 3: página web de Skia [Google]

Fuente 4: Comentarios de Romain Guy, Android Graphics y Kotlin @ Google [Reddit]