Se considera que una app tiene un rendimiento bajo si responde lentamente, muestra animaciones entrecortadas, se bloquea o consume demasiada batería. Para solucionar los problemas de rendimiento, es necesario identificar las áreas en las que tu app hace un uso ineficiente de los recursos, como la CPU, la memoria, los gráficos, la red y la batería del dispositivo.
Usa las herramientas y técnicas de creación de perfiles y generación de comparativas que se describen en esta sección a fin de encontrar y corregir estos problemas. Si deseas conocer técnicas para medir el rendimiento y ejemplos de cómo usarlas a fin de resolver problemas específicos, consulta Cómo medir el rendimiento.
Android Studio ofrece varias herramientas de generación de perfiles para ayudarte a encontrar y visualizar los posibles problemas:
- El Generador de perfiles de CPU ayuda a hacer un seguimiento de los problemas de rendimiento en el entorno de ejecución.
- El Generador de perfiles de memoria ayuda a realizar el seguimiento de las asignaciones de memoria.
- El Generador de perfiles de red supervisa el uso del tráfico de red.
- El Generador de perfiles de energía realiza un seguimiento del uso de la energía, lo que puede contribuir al agotamiento de la batería.
Para obtener más información sobre estas herramientas, consulta la página Generadores de perfiles de Android Studio.
Las bibliotecas de Jetpack Benchmark permiten que tu aplicación mida varias operaciones importantes:
- Macrocomparativas: Mide casos de uso importantes de rendimiento, incluidos el inicio y el rediseño de aplicaciones que se activa mediante acciones como animaciones de IU o desplazamiento.
- Microcomparativas: Mide el costo de la CPU de funciones específicas.
Para obtener más información sobre estas bibliotecas, consulta la página Cómo realizar comparativas de tu app.
Aplicaciones perfilables
Profileable
es una configuración del manifiesto que se introdujo en Android Q. Indica si el usuario del dispositivo puede generar perfiles de esta aplicación con herramientas como Android Studio, Simpleperf y Perfetto.
Antes de profileable
, la mayoría de los desarrolladores solo podían crear perfiles de apps depurables en Android, lo que agregaba costos de rendimiento significativos como efecto secundario. Esos costos de rendimiento podían invalidar los resultados de la generación de perfiles, en especial si estaban relacionados con el tiempo. En la Tabla 1, se resumen las diferencias entre las apps depurables y las perfilables.
Función | Depurable | Perfilable |
---|---|---|
Generador de perfiles de memoria | Completo |
Sí: No:
|
Generador de perfiles de CPU | Completo |
Sí:
No:
|
Generador de perfiles de red | Sí | No |
Generador de perfiles de energía | Sí | No |
Supervisión de eventos | Sí | No |
Se introdujo Profileable
para que los desarrolladores puedan optar por permitir que sus apps expongan información a las herramientas de generación de perfiles, a la vez que incurren en costos de rendimiento muy bajos. En esencia, un APK perfilable es un APK de lanzamiento con una línea de <profileable android:shell="true"/>
agregada dentro de la sección <application>
del archivo de manifiesto.
Cómo compilar y ejecutar automáticamente una app perfilable
Puedes configurar, compilar y ejecutar una app perfilable con un solo clic. Esta función requiere un dispositivo de prueba físico o virtual que tenga Google Play y ejecute el nivel de API 29 o uno posterior. Para usar la función, haz clic en la flecha junto al ícono de Profile app y elige entre dos opciones:

La opción Profile 'app' with low overhead inicia los Generadores de perfiles de CPU y memoria. En el Generador de perfiles de memoria, solo está habilitada la opción Record Native Allocations.
La opción Profile 'app' with complete data inicia los Generadores de perfiles de CPU, memoria y energía.
Cómo compilar y ejecutar manualmente una app perfilable
Para compilar una aplicación perfilable de forma manual, primero debes compilar una aplicación de lanzamiento y, luego, actualizar su archivo de manifiesto, que convierte la aplicación de lanzamiento en una aplicación perfilable. Después de configurar la aplicación perfilable, inicia el generador de perfiles y selecciona un proceso perfilable para analizar.
Cómo compilar una app de lanzamiento
Si deseas compilar una aplicación de lanzamiento para generar perfiles, haz lo siguiente:
-
Para firmar tu aplicación con la clave de depuración, agrega las siguientes líneas al archivo
build.gradle
de la aplicación. Si ya tienes una variante de compilación de lanzamiento que funciona, puedes omitir este paso.buildTypes { release { signingConfig signingConfigs.debug } }
-
En Android Studio, selecciona Build > Select Build Variant... y elige la variante de lanzamiento.
Cómo cambiar de lanzamiento a perfilable
-
Para convertir la aplicación de lanzamiento anterior en una perfilable, abre el archivo
AndroidManifest.xml
y agrega lo siguiente dentro de<application>
: Para obtener más detalles, consulta Cómo compilar tu app para el lanzamiento.<profileable android:shell="true"/>
-
Según la versión del SDK, es posible que debas agregar las siguientes líneas al archivo
build.gradle
de la aplicación.aaptOptions { additionalParameters =["--warn-manifest-validation"] }
Cómo generar perfiles de una app perfilable
Para crear un perfil de una app perfilable, haz lo siguiente:
-
Inicia la app desde el dispositivo o emulador de desarrollo.
-
En Android Studio, inicia el generador de perfiles seleccionando View > Tool Windows > Profiler.
-
Después de iniciar la aplicación, haz clic en el botón
del generador de perfiles para ver el menú desplegable. Selecciona tu dispositivo y, luego, elige la entrada de la aplicación en Other profileable processes.
-
El generador de perfiles debe adjuntarse a la aplicación. Solo están disponibles la CPU y el Generador de perfiles de memoria, con capacidades limitadas para este último.