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 Xamarin Android creada con Visual Studio, sin necesidad de una Visual Studio Enterprise licencia. 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 siguientes capturas de pantalla de ejemplo, se usa Android Profiler para compilar la aplicación XamagonXuzzle de Xamarin.Forms y generar los perfiles:

  1. 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.

    Deshabilitación del uso de Shared Runtime

  2. 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.

  3. 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:

    Ubicación del archivo APK firmado de depuración

  4. Inicie Android Studio y seleccione Profile or debug APK (Generar perfiles del APK o depurarlo):

    Inicio del profiler desde la pantalla Android Studio inicio

  5. 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:

    Selección del APK en el cuadro de diálogo Seleccionar archivo APK

  6. Android Studio cargará el APK y desensamblará classes.dex:

    Configuración del APK

  7. 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):

    Ubicación del elemento de menú Abrir Configuración módulo

  8. Vaya a Project Configuración módulos,seleccione el nodo -Signed de la aplicación y, a continuación, haga clic en Sin SDK :

    Navegar a la configuración del SDK

  9. En el menú desplegable SDK de módulo, seleccione el nivel de Android SDK que se usó para compilar la aplicación (en este ejemplo, se usó el nivel de API 26 para compilar XamagonXuzzle):

    Establecimiento del nivel Project SDK

    Haga clic en Aplicar y Aceptar para guardar esta configuración.

  10. Inicie el generador de perfiles desde el icono de la barra de herramientas:

    Ubicación del icono de la barra de herramientas del profiler

  11. 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:

    Selección del destino de implementación

  12. 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).

    El profiler instala el APK

  13. 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):

    Ventana del profiler después del inicio

  14. Después de identificar el dispositivo y los procesos depurables, Android Profiler comienza la generación de perfiles de la aplicación:

    Profiler se muestra para la aplicación en ejecución

  15. 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 CPU cuando se pulsa el botón RANDOMIZE

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:

  • CPU Profiler: explica cómo inspeccionar el uso de CPU y la actividad de subprocesos de la aplicación en tiempo real.

  • Memory Profiler: 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 su análisis.

  • Network Profiler: muestra la actividad de red en tiempo real de los datos enviados y recibidos por la aplicación.