Habilitar las capas de depuración de GPU en Android: para qué sirven y cómo utilizarlas

Android incluye un menú oculto llamado Opciones de desarrollador. Eso sí: no conviene modificar opciones al azar. Muchas de ellas no están pensadas para el usuario medio y pueden provocar cierres inesperados, retrasos en notificaciones, más consumo o incluso peor rendimiento.

Las opciones de depuración gráfica están pensadas para desarrolladores. Para un usuario normal, no mejoran el móvil. Su objetivo principal es analizar el rendimiento de una aplicación, localizar problemas de renderizado y comprobar cómo utiliza la GPU, no acelerar automáticamente el teléfono.

Qué significa habilitar las capas de depuración GPU

Vamos a comenzar utilizando dos herramientas que nos ofrece Android las cuales te permiten analizar el rendimiento de tu aplicación: HWUI y Superposición de GPU.

HWUI te permite visualizar el tiempo de renderizado de cada fotograma, lo que te ayuda a identificar cuellos de botella en el proceso de renderizado.

Superposición de GPU muestra una representación visual de la actividad de la GPU, podemos identificar áreas donde la GPU está trabajando más duro.

La superposición se produce cuando tu app dibuja el mismo píxel más de una vez dentro del mismo fotograma.

En otras palabras, estas funciones permiten observar qué ocurre mientras Android dibuja la interfaz: cuánto tarda cada fotograma, qué partes de la pantalla se redibujan y dónde existen elementos superpuestos. Esta información resulta útil para optimizar vistas, composables y animaciones.

Depuración GPU y barras de renderizado Android

Para qué sirven las capas de depuración GPU

Esta opción nos permitirá visualizar el tiempo de renderizado de un frame, con ello podremos identificar posibles dificultades de renderizado en la UI, como saltos de frames o bloqueos.

Estas barras representan cuánto tiempo tarda cada cuadro en renderizarse y además cada color tiene un significado. Entre más cortas sean éstas barras, más suave será la animación.

Podemos interpretar que cuando las barras de color son de gran tamaño nos indican que puede existir un problema y el color nos indica donde puede estar dicho problema (revisando el ciclo de vida de la vista o el composable), una vez que identificamos donde y qué problema existe comenzamos a trabajar para mitigarlo según corresponda.

La superposición de GPU permite complementar este análisis. Al activarla, el sistema muestra mediante colores cuántas veces se ha dibujado una misma zona durante el fotograma. Las áreas con más capas superpuestas pueden señalar una jerarquía visual demasiado compleja, fondos innecesarios, transparencias acumuladas u otros elementos que obligan a la GPU a trabajar más.

Preparar el dispositivo antes de medir

Para obtener mediciones precisas que representen la experiencia real de los usuarios finales, es muy importante realizar las pruebas en una aplicación lo más similar posible a la versión final que se distribuirá. Por lo tanto, para las mediciones que vamos a realizar, se requiere generar un bundle en “release”.

IMPORTANTE: Te recomiendo que si tu dispositivo tiene una frecuencia de actualización variable de frames la fijes en un número para realizar las pruebas. Entre más alta tasa de refresco fija, será más fácil de identificar problemas de renderizado.

Puedes repetir las pruebas para 60Hz (tasa de refresco promedio) y a una tasa más alta para vez que sucede.

Una frecuencia fija facilita la comparación entre mediciones, porque evita que el dispositivo cambie automáticamente la frecuencia de actualización durante la prueba.

Cómo activar las Opciones de desarrollador

Para utilizar estas herramientas, primero debes habilitar el “modo desarrollador” en tu dispositivo.

En algunos fabricantes la ruta puede variar. Una vez activado el menú, veremos una gran cantidad de opciones.

  1. Abre la aplicación de Ajustes o Configuración de tu dispositivo y desplázate hasta el final de la interfaz para pulsar sobre la opción Acerca del teléfono o Información del dispositivo.
  2. Busca la sección denominada Información de software hasta encontrar el apartado específico llamado Número de compilación.
  3. Presiona de forma continua y rápida 7 veces consecutivas sobre la etiqueta Número de compilación.
  4. Introduce tu código de seguridad PIN, patrón geométrico o huella dactilar cuando el sistema lo solicite.

Una vez pulsamos repetidamente nos aparecerá un mensaje de "¡Ahora eres un desarrollador!".

Una vez realizado ésto nos aparecerá la opción de “Modo desarrollador / opciones para desarrolladores”.

Para ingresar al nuevo panel, simplemente regresa a la pantalla principal de Ajustes e ingresa a la sección de Sistema, donde se habrá materializado el nuevo menú exclusivo al final de la lista de opciones.

En dispositivos de Xiaomi, Redmi y POCO con MIUI o HyperOS, debes presionar las 7 veces reglamentarias sobre la casilla que indica Versión de MIUI o Versión de OS, la cual se ubica en el primer nivel del menú de configuración del dispositivo.

Activar HWUI para ver el tiempo de renderizado

Una vez activado el modo desarrollador, buscaremos el HWUI y seleccionaremos la opción "En pantalla como barras".

Una vez activada ésta opción, veremos un gráfico como el siguiente:

Las barras representan el tiempo que tarda Android en completar el procesamiento de cada fotograma. Las barras más cortas indican un dibujo más rápido y fluido, mientras que las barras grandes pueden revelar un cuello de botella.

Cómo interpretar las barras

Prestemos atención a las barras verdes. Se forman al deslizar hacia arriba y abajo de manera constante.

Podríamos interpretar que nuestro árbol de UI es muy complejo y deberíamos buscar la forma de simplificarlo.

Entonces una solución que podríamos buscar es, intentar que nuestras vistas/composables sean más sencillas y volver a medir para ver si de ésta forma se solucionó el problema.

Si nos encontramos ante un caso como el siguiente, las barras verdes de gran tamaño estarían sugiriendo que el problema puede venir porque nuestro árbol de UI es complejo.

Los problemas más comunes se solucionan quitando fondos innecesarios, simplificando las vistas y reduciendo las transparencias.

Qué indica un segmento verde grande

Un segmento verde grande puede indicar que el árbol de la interfaz es complejo y que Android necesita demasiado tiempo para realizar la medición o el diseño de sus elementos.

Lo vamos combinar con la siguiente herramienta para identificar en qué punto hay superposición y es aquí donde deberemos trabajar para simplificar nuestro árbol de UI.

Es decir, intentar simplificar lo máximo posible nuestra vista o composable.

Activar la depuración de superposición de GPU

Utilizando la herramienta que nos provee el modo desarrollador podemos buscar "Depurar superposición de GPU" y seleccionar la opción de "Mostrar áreas superpuestas".

Al activarlo vamos ver algo como lo siguiente:

Podremos notar que existe un esquema de colores, en el cual cada uno significa algo.

La pantalla puede comenzar con una superposición y tener elementos que se superponen 4 veces o más. Esto se correlaciona con lo que vimos utilizando el HWUI; ahora deberíamos simplificar nuestra vista para intentar minimizar la superposición de la vista o los composables.

Mapa de colores de superposición GPU Android

Qué buscar en la pantalla

  • Áreas con una sola capa, que representan una composición más sencilla.
  • Áreas con varias capas superpuestas, que pueden exigir más trabajo de composición.
  • Elementos transparentes colocados unos sobre otros.
  • Fondos que se dibujan aunque queden completamente cubiertos.
  • Vistas o composables innecesariamente complejos.

La finalidad no es eliminar absolutamente todas las capas, sino localizar las zonas en las que la superposición es excesiva y comprobar si puede reducirse sin alterar el diseño.

Cómo combinar HWUI y la superposición de GPU

HWUI permite detectar cuándo un fotograma tarda demasiado en renderizarse. La superposición de GPU ayuda a encontrar una posible causa visual de ese coste.

Siguiendo con el ejemplo propuesto arriba en donde las barras son verdes y de gran tamaño, lo cual nos estaría sugiriendo que el problema puede venir porque nuestro árbol de UI es complejo. Lo vamos combinar con la siguiente herramienta para identificar en qué punto hay superposición y es aquí donde deberemos trabajar para simplificar nuestro árbol de UI.

Podemos interpretar que cuando las barras de color son de gran tamaño nos indican que puede existir un problema y el color nos indica dónde puede estar dicho problema.

Una vez que identificamos dónde y qué problema existe comenzamos a trabajar para mitigarlo según corresponda.

Después de cada modificación, conviene repetir exactamente la misma interacción y volver a observar las barras y las zonas superpuestas. De esta forma se puede comprobar si la optimización ha reducido realmente el trabajo de renderizado.

Medidas que pueden reducir la sobrecarga gráfica

Los problemas más comunes se solucionan quitando fondos innecesarios, simplificando las vistas y reduciendo las transparencias.

  • Intentar que las vistas sean más sencillas.
  • Reducir la complejidad del árbol de UI.
  • Quitar fondos innecesarios.
  • Reducir las transparencias.
  • Repetir las mediciones después de cada cambio.

Con las superposiciones de hardware activadas cada aplicación dispone de su propia porción de memoria, si la desactivamos provocaremos que el móvil vaya significativamente más lento.

Esta opción fuerza al sistema a usar más composición por GPU. No mejora rendimiento ni batería.

Opciones relacionadas con la aceleración gráfica

Forzar aceleración GPU

Por defecto Android imprime en pantalla los dibujos y objetos 2D, la interfaz del sistema y la de las aplicaciones utilizando el software del teléfono; que tira a su vez de la CPU.

Hay una manera de acelerar ese proceso utilizando la GPU de tu multiprocesador: de esta manera verás un incremento de velocidad en móviles con prestaciones bajas.

Con esta opción obligamos a renderizar elementos 2D en todas las aplicaciones, a pesar que por defecto no lo hagan.

Es un arma de doble filo, ya que en algunos puntos mejora el rendimiento y la calidad de lo que se muestra pero en otros momentos da problemas.

En móviles modernos, la mejora puede ser pequeña.

Forzar MSAA 4x

Forzar el multisample anti-aliasing mejora el renderizado de juegos e imágenes en OpenGL ES 2.0 y todo se verá con mejores gráficos.

Por contra, el rendimiento bajará en proporción.

Forzar MSAA 4x no debe confundirse con una herramienta de medición. Es un ajuste que modifica el modo en que se suavizan los bordes y puede aumentar el trabajo de la GPU.

Mejor 0,5x que desactivarlas totalmente.

Escalas de animación

Android intercala ciertas animaciones cuando realizas un cambio entre aplicaciones, vuelves a los escritorios o abres una app.

Tu móvil no irá efectivamente más rápido, pero sí apreciarás la diferencia ya que no se hará el remolón intercalando animaciones cada vez que aprietes un botón.

Desde la llegada de Material Design a Android las animaciones juegan un papel muy importante.

Son un elemento clave para dar sensación de fluidez o mostrar transiciones llamativas y efectistas.

Aquí podemos configurar la velocidad a la que se abren las ventanas y menús, desde desactivar para que no haya animación o 10x para que el efecto se note y veamos esa cortinilla o efecto de ampliación.

Un efecto similar, pero a la hora de cambiar de pantalla. Si ponemos una velocidad más pequeña el cambio será inmediato, si elegimos un tiempo de animación más amplio cuando cambiemos notaremos más la animación e incluso podremos apreciar como las ventanas aparecen poco a poco.

En este apartado establecemos la velocidad en la que carga los distintos elementos de un menú. Si elegimos un tiempo menor, todo aparecerá al instante. Si elegimos un tiempo más elevado, las animaciones se alargarán y todo se mostrará paso a paso.

Mejor 0,5x que desactivarlas totalmente.

Otras opciones de desarrollador que pueden influir en el rendimiento

Límite de procesos en segundo plano

Android mantiene muchas aplicaciones en memoria para que se abran más rápido cuando volvemos a ellas.

El problema aparece en móviles con poca RAM, procesadores antiguos o demasiadas aplicaciones instaladas.

Algunas aplicaciones pueden tardar más en reabrirse o dejar de actualizar datos en segundo plano.

El propio sistema Android ya se encarga de ir cerrando y gestionando las aplicaciones en segundo plano.

Cuando cambiamos entre una y otra aplicación, estas se quedan en segundo plano esperando a ser abiertas de nuevo.

Si activamos esta opción, el sistema será mucho más agresivo y considerará cerradas las aplicaciones al salir.

Aquí podréis determinar cuántos procesos se gestionarán. Tenemos desde el límite habitual que es el recomendado, pasando por quitar todo proceso hasta tener cuatro apps a la vez.

Las aplicaciones se recargarán más a menudo.

Este ajuste no lo usaría en móviles modernos con suficiente RAM.

No necesitas aplicaciones que se encarguen de eliminar las apps en segundo plano ya que el propio Android hace la función perfectamente.

Datos móviles siempre activos

Cuando activamos el WiFi, los datos móviles se apagan para no gastarse ni consumir batería.

Con esta opción los datos se mantendrán activos en segundo plano y lo que ganamos es que al desaparecer el WiFi el cambio será mucho más rápido ya que ya estarán activos.

Cuando está activada, Android mantiene preparada la conexión móvil aunque estés conectado por WiFi.

Si quieres ahorrar batería, puedes desactivar los «Datos móviles siempre activos».

Por otro lado, puede que nos llevemos alguna sorpresa con los datos ya que puede que se conecte a ellos y nosotros pensábamos que estábamos bajo el WiFi.

No todo lo que aparece en Opciones de desarrollador sirve para acelerar el móvil.

Aunque suene útil para liberar memoria, no lo es para uso diario.

En versiones antiguas de Android podía tener sentido en casos concretos, pero hoy no es una mejora universal.

Depuración USB y herramientas de diagnóstico

Este modo es imprescindible para gran parte de las aplicaciones que comunican el ordenador con un Android.

También es necesario si vas a utilizar el protocolo de comunicación Adb, muy útil para configuraciones avanzadas.

La depuración USB puede bloquear el arranque de algunas aplicaciones o juegos, como ocurre con Fortnite: debes tenerla activada solo cuando la necesites.

Activar este modo es imprescindible para acceder desde el ordenador una vez instalado el Android SDK.

Si queremos intercambiar datos entre el PC y nuestro móvil o queremos configurarlo, deberemos hacerlo con esta opción activada.

Desde aquí podemos eliminar el acceso a depuración USB de todos los ordenadores autorizados previamente.

Una especie de borrar caché a la hora de tener en cuenta si ya se ha conectado a ese PC antes, ya que cuando se conectan se generan claves de seguridad.

Se recomienda deshabilitarla cuando se desconecte del PC.

Registros y búferes internos

Android guarda registros internos del sistema: errores, eventos, avisos y datos técnicos.

Reducir el tamaño del búfer puede disminuir ligeramente la carga dedicada a registros internos.

No es uno de los ajustes más importantes.

Si el móvil funciona bien, este cambio apenas se notará.

Por qué no conviene modificar opciones al azar

Android incluye un menú oculto llamado Opciones de desarrollador.

Una vez activado el menú, veremos una gran cantidad de opciones.

Nada más entrar verás que son muchas las configuraciones disponibles: nuestra recomendación es que no toques más que lo imprescindible.

Muchas de ellas no están pensadas para el usuario medio y pueden provocar cierres inesperados, retrasos en notificaciones, más consumo o incluso peor rendimiento.

Esta opción fuerza al sistema a usar más composición por GPU.

No mejora rendimiento ni batería.

En móviles modernos, la mejora puede ser pequeña.

La activación de las Opciones de desarrollador no requiere root ni modifica por sí sola el sistema operativo. Sin embargo, cada ajuste puede tener consecuencias distintas y debe probarse únicamente cuando exista una razón concreta para hacerlo.

Cómo volver a los valores anteriores

El proceso de reversión es sumamente simple.

Ingresa a las Opciones de Desarrollador y, en la parte superior derecha de la pantalla, verás un interruptor principal que indica “Activado”.

Desplázalo hacia la posición de apagado y sal del menú.

La próxima vez que navegues por los ajustes de tu sistema operativo, la consola avanzada habrá desaparecido por completo y todos los parámetros regresarán a sus valores de fábrica automáticos.

Cuándo utilizar herramientas más avanzadas

Si bien las herramientas del dispositivo son útiles para depurar vistas, para un análisis más profundo del rendimiento, necesitamos herramientas más potentes.

Aquí es donde entra en juego Android Studio, que ofrece una amplia gama de herramientas para realizar inspecciones y mediciones a nivel de procesamiento, consumo de memoria y energía.

Podemos utilizar las herramientas del dispositivo para poder realizar mediciones.

Aprenderemos a utilizar el HWUI y la Superposición de GPU.

Las herramientas de depuración gráfica sirven para localizar problemas, no para convertir automáticamente un teléfono en un dispositivo más potente.

Para medir con precisión, se debe trabajar con una versión de la aplicación lo más similar posible a la versión final, utilizar una frecuencia de actualización fija y comparar los resultados después de cada modificación.

Forzar renderización de GPU para que sirve

tags: #habilitar #capas #de #depuracion #gpu #para

Publicaciones populares: