Usa Android vitals para mejorar el rendimiento, la estabilidad y el tamaño de tu app

  • Pruebas
  • Desarrollo
  • Análisis

El rendimiento y la estabilidad están directamente vinculados con las calificaciones positivas en Google Play. Si solucionas los problemas y evitas que tu app se comporte de manera inadecuada, puedes proporcionar una mejor experiencia del usuario, obtener mejores calificaciones y retener a más instaladores. Además, si reduces el tamaño de la app, puedes mejorar las tasas de instalación y reducir las desinstalaciones.

Por qué funciona

Android vitals muestra las métricas de rendimiento de tu app en cuanto a estabilidad, potencia, bloqueo, tiempos de inicio y denegaciones de permisos. Estas métricas te ayudarán a identificar y solucionar los comportamientos inadecuados de la app que afectan directamente la experiencia del usuario. También verás cuando un cambio repentino en las métricas esenciales indique anomalías que debas investigar, así como comparativas que te ayudarán a contrastar el rendimiento de tu app con el de otras similares o un conjunto de apps que elijas. Las apps con métricas más elevadas son más fáciles de promocionar y, por lo tanto, su posicionamiento en las búsquedas de Google Play Store es más favorable. También tienen mayores probabilidades de considerarse aptas para formar parte de las colecciones de apps "Nuevas y actualizadas" y "Selecciones del editor", así como de ser nominadas a los Google Play Awards.

Métricas clave

  • Estabilidad | Tasa de ANR: Porcentaje de usuarios que experimentaron al menos un evento de ANR (la aplicación no responde) durante una sesión diaria. Por lo general, los errores de ANR se generan a causa de interbloqueos o lentitud del subproceso de IU y los procesos en segundo plano (receptores de emisión).
  • Estabilidad | Tasa de fallas: Porcentaje de usuarios que experimentaron al menos un evento de falla durante una sesión diaria. Por lo general, las fallas se generan a causa de excepciones no controladas, agotamiento de los recursos, aserciones con errores o algún otro estado inesperado.
  • Tiempo de procesamiento | 16 ms (60 FPS): Porcentaje de sesiones diarias en las que los usuarios experimentaron más de un 50% de los fotogramas con un tiempo de procesamiento superior a 16 ms. Las interacciones de los usuarios con la app deberían ejecutarse a 60 fotogramas por segundo sin pérdida ni retraso de fotogramas.
  • Tiempo de procesamiento | 700 ms: Porcentaje de usuarios que experimentaron más de 1 entre 1,000 fotogramas con un tiempo de procesamiento superior a 700 ms durante un día. Como se indicó anteriormente, los tiempos de procesamiento prolongados degradan la experiencia del usuario y hacen que tu app pierda fluidez. Si el tiempo de procesamiento de los fotogramas es igual o mayor a 700 ms, es probable que el usuario piense que se congeló la app.
  • Batería | Bloqueos de activación parciales: Porcentaje de usuarios que experimentaron al menos un bloqueo de activación de más de una hora durante un día determinado. Los bloqueos de activación parciales sostenidos no permiten que los dispositivos inactivos entren en modo de suspensión y ahorren batería.
  • Batería | Activaciones: Porcentaje de usuarios que experimentaron más de 60 activaciones por hora desde la última carga completa del dispositivo. Las activaciones frecuentes generadas a causa de alarmas que realizan operaciones programadas fuera del tiempo de actividad de la app no permiten que los dispositivos inactivos entren en modo de suspensión.
  • Tiempo de inicio: Porcentaje de sesiones durante las que los usuarios experimentaron un tiempo de inicio lento en frío, tibio o caliente. Los tiempos de inicio lentos pueden deberse a una variedad de problemas, pero generalmente indican la ejecución de cargas de trabajo intensas o lógica compleja cuando se inicializa la app.
  • Denegaciones de permisos: Porcentaje de sesiones diarias de permisos durante las que los usuarios denegaron permisos o seleccionaron No volver a preguntar. Las denegaciones de permiso pueden indicar que las personas no tienen claro por qué se solicita un permiso o consideran que la solicitud es innecesaria o injustificada.
  • Tamaño de la app: Haz un seguimiento del tamaño que tendrá tu app en la descarga y en los dispositivos, y compara estas métricas con las de apps similares. Además, observa las métricas de usuarios activos y desinstalaciones con relación a dispositivos con poco almacenamiento. Recibe sugerencias de optimización sobre cómo reducir el tamaño de la app según un análisis de tus lanzamientos.

Prácticas recomendadas

  • Ten en cuenta y evita los comportamientos inadecuados: Durante el desarrollo de la app, piensa en cómo esta se comportará en distintos entornos. Por ejemplo, si pruebas una app en un dispositivo de gama alta y con todas las funciones, piensa en cómo se comportaría en uno de gama baja con limitaciones de batería, memoria, ancho de banda y capacidad de CPU/GPU. Usa los informes previos al lanzamiento para probar tu app en un conjunto más amplio de dispositivos antes de cada lanzamiento.
  • Consulta Android vitals luego de lanzar una nueva versión de la app: Luego de que publiques tu app, Android vitals te proporcionará métricas sobre su rendimiento en dispositivos reales que ejecutan la versión de producción. Esto te permitirá identificar los problemas y comportamientos inadecuados que afectan a los usuarios de versiones de Android y dispositivos específicos.
  • Identifica los dispositivos problemáticos: Es posible que la app solo se comporte de manera inadecuada en uno o varios dispositivos específicos. Según la gravedad del impacto sobre la experiencia del usuario y la cantidad de dispositivos y usuarios que se vean afectados, puedes elegir actualizar la orientación de la app por dispositivo y excluir aquellos con problemas hasta que exista una solución.
  • Identifica las versiones de Android problemáticas: Es posible que la app solo se comporte de manera inadecuada en versiones específicas de Android. En el caso de las versiones de Android anteriores que representen una pequeña cantidad de usuarios, puedes actualizar la app para corregir el comportamiento inadecuado o actualizar el atributo android:minSdkVersion del elemento <uses-sdk> en el manifiesto de la app a un nivel de API en el que no ocurra ese comportamiento. Con respecto a las versiones de Android más nuevas, es mejor actualizar la app para corregir el comportamiento inadecuado en vez de configurar el atributo android:maxSdkVersion del elemento <uses-sdk> para que excluya esas versiones.
  • Usa herramientas de informe de fallas para identificar las fallas y ANR, y hacer un seguimiento de ellos: Usa herramientas como Firebase Crash Reporting o Crashlytics, además del depurador de Android Studio, para identificar la mayor cantidad posible de escenarios que generen fallas y ANR, y hacer un seguimiento de ellos.
  • Usa las API de JobScheduling para evitar activaciones y bloqueos de activación: Usa las API de JobScheduling, como JobScheduler, para programar procesos y tareas en segundo plano de forma inteligente. Esto permite que la plataforma administre mejor el estado inactivo y, de este modo, extienda la duración de la batería.
  • Usa las API de FrameMetrics para identificar los tiempos de procesamiento lentos: Usa FrameMetrics para medir los tiempos de procesamiento de fotogramas con alto nivel de detalle y por interacción en los dispositivos que ejecutan la versión de producción de la app. Esto te permite identificar interacciones o eventos específicos que generen bloqueos en esos dispositivos en vez de confiar en dispositivos de prueba conectados mediante USB.
  • Sigue las prácticas recomendadas para las solicitudes de permisos: Informa a los usuarios antes de solicitarles un permiso y asegúrate de que se beneficien de inmediato cuando lo otorguen. Ayuda a los usuarios a deshacer los rechazos de permisos y asegúrate de que tengan la configuración correcta para que funcione la app.
  • Usa informes previos al lanzamiento para probar la app en dispositivos reales y así identificar y solucionar problemas antes de publicar la actualización.
  • Comienza a usar los Android App Bundles para aprovechar una forma más eficaz de compilar y lanzar las apps; este formato ofrece una reducción de tamaño sin necesidad de reestructurar el código.

Ejemplos