El rendimiento en Wear OS es una consideración fundamental para las apps, ya que muchos dispositivos Wear OS cuentan con recursos limitados de CPU y GPU en comparación con dispositivos móviles más grandes. Con la introducción de animaciones más enriquecidas y efectos dinámicos en Material 3 Expressive, debes validar y mejorar el rendimiento de los flujos de trabajo clave de tu app.
Usa la guía de rendimiento de Jetpack Compose para configurar y desarrollar tu app con el objetivo de obtener un rendimiento óptimo con Jetpack Compose. En este documento, se destacan algunas de las técnicas que se describen en esa guía.
Crea y sigue estrategias de medición del rendimiento para validar que estas técnicas funcionen como se espera en tu app.
Técnicas esenciales para mejorar el rendimiento
Comienza con los tipos de herramientas de rendimiento más eficaces: los perfiles de referencia (incluidos los perfiles de inicio) y el optimizador de código R8.
Actualiza tu dependencia de Compose a la versión 1.8 o posterior, que introdujo varias funciones nuevas significativas y mejoró la estabilidad general de la biblioteca. Consulta las instrucciones en Cómo declarar dependencias para obtener información sobre cómo realizar la actualización. Para obtener más información, lee nuestro blog sobre la versión 1.8 y la charla de I/O Novedades de Compose.
Perfiles de Baseline
Para mejorar el rendimiento de tu app, usa los perfiles de Baseline. Agrupa las clases y los métodos que representan los flujos de trabajo clave de tu app, que el sistema puede precompilar con un perfil de Baseline. De esta manera, se pueden reducir los tiempos de inicio y los fotogramas con bloqueos, además de ofrecer mejoras de rendimiento adicionales.
Cada biblioteca de Jetpack Compose incluye sus propias reglas de perfil. Cuando tu app depende de una biblioteca, las reglas del perfil de la biblioteca se combinan y distribuyen automáticamente con el APK de tu app para la compilación previa.
Verifica tus perfiles de Baseline con las siguientes técnicas:
- Usa pruebas de macrocomparativas.
- Usa comandos de ADB específicos para validar el estado de configuración del perfil de tu app. Los pasos para ambas técnicas se explican en la guía de medición y validación del rendimiento.
Perfiles de inicio
Como subconjunto de los perfiles de Baseline, los perfiles de inicio optimizan aún más las clases y los métodos que contienen para reducir la latencia de inicio de la app.
Agregar un perfil de inicio aumentará el tamaño del APK de tu app, por lo que, antes de agregar uno a tu versión de producción, asegúrate de evaluar la compensación entre el tamaño del APK y la latencia de inicio.
Para comenzar, consulta Cómo crear un perfil de inicio.
R8
Usa el compilador R8 para reducir y optimizar las apps. R8 quita el código y los recursos que no se usan, vuelve a escribir el código para optimizar el rendimiento del entorno de ejecución y mucho más.
En las guías de Descripción general para mejorar el rendimiento, lee las consideraciones para R8, incluidos los pasos clave para quitar recursos sin usar.
Medición y validación del rendimiento
Para obtener información sobre las estrategias generales de medición del rendimiento en Android, consulta Descripción general de la medición del rendimiento de apps. En esta sección, se describen algunas de las técnicas que se analizan en esa documentación.
Elige una variante de compilación para las mediciones
Si bien el modo de depuración es útil para detectar muchos problemas, implica un costo de rendimiento significativo, no usa perfiles de Baseline y puede dificultar la detección de problemas de código que podrían afectar el rendimiento.
Para comprender con precisión el rendimiento de tu app, ejecútala en el modo de lanzamiento.
Saca conclusiones finales sobre el rendimiento solo a partir de las pruebas realizadas con apps que se ejecutan con opciones de compilación de lanzamiento y en dispositivos reales.
Sin embargo, cuando realices pruebas comparativas, usa la variante de compilación de comparativas, que tiene algunas diferencias clave con respecto a la depuración de versiones. Consulta la guía de configuración de Macrobenchmark para obtener más detalles.
Valida los perfiles de Baseline de tu app
Para comenzar, inspecciona el estado de tu perfil:
adb shell dumpsys package dexopt | grep -A 1 $PACKAGE_NAME
Si el estado no es status=speed-profile, todavía no se aplicaron las reglas de perfil para optimizar la app.
Las reglas se aplican con un trabajo en segundo plano que se ejecuta cuando el dispositivo está cargado y en estado inactivo. Para activar esto de forma manual, ejecuta el siguiente comando después de que se inicie la app y haya transcurrido suficiente tiempo para que el instalador de perfiles inicie el perfil en segundo plano. Por lo general, este proceso tarda alrededor de 40 segundos.
adb shell cmd package bg-dexopt-job
Luego, vuelve a ejecutar el comando anterior para verificar que el estado sea speed-profile.
Para situaciones en las que se realiza la optimización en la instalación, consulta Transfiere el perfil de Baseline.
API de UI Automator
La API de UI Automator automatiza las interacciones de manera programática. Usa esta API para comparar partes discretas de la IU cuando inspecciones los recorridos del usuario en busca de posibles optimizaciones.
Pruebas de Macrobenchmark
Las macrocomparativas prueban casos de uso más grandes de tu app, en especial el inicio de la app y las manipulaciones complejas de la IU. Para comenzar, consulta la guía de implementación.
Para ver un ejemplo de cómo usar macrocomparativas para validar el rendimiento de los perfiles de Baseline, consulta las muestras de rendimiento en GitHub.
Biblioteca de JankStats
Usa la biblioteca de JankStats para realizar un seguimiento y analizar los problemas de rendimiento de las aplicaciones.
Para ver un ejemplo, consulta el ejemplo de JankStats en GitHub.
Registro del sistema
Con los nuevos tipos de animación que presenta Material 3 Expressive, usa la función Registro del sistema en Android Studio para inspeccionar y diagnosticar la latencia en los recorridos del usuario que podrían ser problemáticos. Con esta información, verifica el contenido de tus perfiles de Baseline y, luego, identifica posibles ineficiencias en la lógica de tu código.
Herramientas adicionales
Además de las herramientas de mejora del rendimiento, puedes usar otras herramientas para mejorar tu productividad y flujo de trabajo.
Herramientas de productividad de Android Studio
Android Studio proporciona varias herramientas que pueden reducir la cantidad de tiempo que dedicas a identificar mejoras de rendimiento.
Por ejemplo, con herramientas como Ediciones en vivo y vistas previas de elementos componibles, puedes identificar elementos de la IU lentos, junto con las áreas asociadas en el código de tu app, para mejorar el rendimiento.
Ejecuta todas las pruebas de rendimiento finales en un conjunto de dispositivos Wear OS físicos que representen con precisión tu base de usuarios objetivo.
Esto es especialmente importante cuando migras a Material 3 Expressive, que introduce funciones como fuentes flexibles y transformación de formas en tu app.
Si estás migrando desde vistas, consulta nuestra guía de migración y nuestras prácticas recomendadas para el rendimiento de Jetpack Compose para verificar que las IU de tu app tengan un buen rendimiento cuando uses Jetpack Compose.
Otros recursos
Para mantenerte al tanto de las novedades sobre el rendimiento de Android, consulta las noticias y los videos más recientes en la guía de rendimiento de la app.