Generar perfiles de aplicaciones Android
Antes de implementar la aplicación en una tienda de aplicaciones, es importante que identifique y corrija los cuellos de botella de rendimiento, los problemas de uso excesivo de memoria y el uso ineficaz de los recursos de red. Para este propósito hay disponibles dos herramientas de generador de perfiles:
- Generador de perfiles de Xamarin
- Android Profiler en Android Studio
En esta guía se presenta el generador de perfiles de Xamarin y se proporciona información detallada sobre cómo empezar a usar Android Profiler.
Generador de perfiles de Xamarin
Xamarin Profiler es una aplicación independiente integrada con Visual Studio y Visual Studio para Mac para generar perfiles de aplicaciones Xamarin desde el IDE. Para obtener más información sobre el uso de Xamarin Profiler, vea Xamarin Profiler.
Nota:
Debe ser un suscriptor de Visual Studio Enterprise para desbloquear la característica Xamarin Profiler en Visual Studio Enterprise en Windows o Visual Studio para Mac.
Android Studio Profiler
Android Studio 3.0 y posterior incluye la herramienta Android Profiler. Puede usar Android Profiler para medir el rendimiento de una aplicación Android de Xamarin compilada con Visual Studio: sin necesidad de disponer de una licencia de Visual Studio Enterprise. Aun así, a diferencia de Xamarin Profiler, Android Profiler no está integrado con Visual Studio y solo puede usarse para generar perfiles de un paquete de aplicaciones Android (APK) que se haya compilado con antelación e importado en Android Profiler.
Iniciar una aplicación Android de Xamarin en Android Profiler
En los pasos siguientes se explica cómo iniciar una aplicación Android de Xamarin en la herramienta Android Profiler de Android Studio. En las capturas de pantalla de ejemplo siguientes, se usa Android Profiler para compilar la aplicación de ejemplo Xamarin Forms y generar los perfiles:
En las opciones de compilación del proyecto de Android, deshabilite Use Shared Runtime (Usar tiempo de ejecución compartido). Esto garantiza que el paquete de aplicaciones Android (APK) se compile sin una dependencia en el tiempo de ejecución de Mono en tiempo de desarrollo compartido.
Compile la aplicación para la depuración e impleméntela en un dispositivo físico o un emulador. Esto hace que se compile una versión de depuración del APK. Para el ejemplo de XamagonXuzzle, el APK resultante se denomina com.companyname.XamagonXuzzle-Signed.apk.
Abra la carpeta del proyecto y vaya a bin/Debug. En esta carpeta, busque la versión Signed.apk de la aplicación y cópiela en un lugar fácilmente accesible (como el escritorio). En la siguiente captura de pantalla, se localiza el APK com.companyname.XamagonXuzzle-Signed.apk y se copia en el escritorio:
Inicie Android Studio y seleccione Profile or debug APK (Generar perfiles del APK o depurarlo):
En el cuadro de diálogo Select APK File (Seleccionar archivo APK), desplácese hasta el APK que ha compilado y copiado anteriormente. Seleccione el APK y haga clic en Aceptar:
Android Studio cargará el APK y desensamblará classes.dex:
Una vez cargado el APK, Android Studio mostrará la siguiente pantalla de proyecto para el APK. Haga clic con el botón derecho en el nombre de la aplicación en la vista de árbol a la izquierda y seleccione Open Module Settings (Abrir configuración del módulo):
Vaya a Configuración del proyecto > Módulos, seleccione el nodo -Signed de la aplicación y haga clic en <No SDK> (Sin SDK):
En el menú desplegable Module SDK (SDK de módulo), seleccione el nivel de Android SDK que se ha usado para compilar la aplicación (en este ejemplo, se ha usado el nivel de API 26 para compilar XamagonXuzzle):
Haga clic en Aplicar y Aceptar para guardar esta configuración.
Inicie el generador de perfiles desde el icono de la barra de herramientas:
Seleccione el destino de implementación para ejecutar la aplicación o generar perfiles y haga clic en Aceptar. El destino de implementación puede ser un dispositivo físico o un dispositivo virtual que se ejecute en un emulador. En este ejemplo, se usa un dispositivo Nexus 5X:
Cuando se inicie el generador de perfiles, tardará unos segundos en conectar con el dispositivo de implementación y el proceso de aplicación. Mientras está instalando el APK, Android Profiler mostrará No connected devices (No hay dispositivos conectados) y No debuggable processes (No hay procesos depurables).
Tras unos segundos, Android Profiler completará la instalación del APK y lo iniciará. Además, mostrará el nombre del dispositivo y el nombre del proceso de aplicación del que se van a generar perfiles (en este ejemplo, LGE Nexus 5X y com.companyname.XamagonXuzzle, respectivamente):
Después de identificar el dispositivo y los procesos depurables, Android Profiler comienza la generación de perfiles de la aplicación:
Si pulsa el botón Aleatorizar en XamagonXuzzle (que hace que desplace y aleatorice los iconos), verá que el uso de la CPU aumentará durante el intervalo de aleatorización de la aplicación:
Uso de Android Profiler
En la documentación de Android Studio se incluye información detallada para usar Android Profiler. Los temas siguientes pueden ser de interés para desarrolladores de Android de Xamarin:
Generador de perfiles de CPU: explica cómo inspeccionar la actividad de subprocesos y el uso de CPU de la aplicación en tiempo real.
Generador de perfiles de memoria: muestra un gráfico en tiempo real del uso de memoria de la aplicación e incluye un botón para registrar las asignaciones de memoria para el análisis.
Generador de perfiles de red: muestra la actividad de red en tiempo real de los datos que la aplicación envía y recibe.