HAXM: la herramienta de Intel para testear apps de Android Wear y Android TV

Android* ha recorrido un largo camino, que comenzó con los teléfonos y continuó con las tabletas electrónicas, Google TV*, Android Wear*, Android TV* (reemplaza a Google TV) y Android Auto*. Para los desarrolladores, puede ser una tarea difícil crear y probar sus aplicaciones para que funcionen bien en todos estos dispositivos. Si a esto se le agregan los diferentes tamaños de dispositivos y resoluciones de pantalla, el problema de verificar y probar las aplicaciones no tarda en adquirir complejidad. Pero Intel® HAXM viene al rescate.

El Supervisor de Ejecución Acelerada por Hardware (Hardware Accelerated Execution Manager, HAXM) de Intel® es un emulador de Android asistido por hardware con poca sobrecarga, excelente rendimiento y baja latencia. Se puede encontrar más información en esta página:https://software.intel.com/en-us/android/articles/intel-hardware-accelerated-execution-manager

Con Intel HAXM, los desarrolladores pueden tener varias instancias de emulador de Android ejecutándose en su sistema de desarrollo sin tener que preocuparse demasiado por cuestiones de rendimiento, carga o latencia. Ello puede ser muy útil en el proceso iterativo de desarrollo y prueba de aplicaciones, lo cual aumenta enormemente la productividad.

Con frecuencia, las imágenes de emulador de Android que no son x86 tardan mucho en iniciarse y la respuesta de la interfaz del usuario es lenta. A diferencia de lo que sucede con emuladores de Android de terceros, con Intel HAXM es posible usar todas las plataformas y versiones de API de Android más recientes ni bien se publican.

Esta página contiene instrucciones detalladas para usar Intel HAXM: https://software.intel.com/en-us/android/articles/speeding-up-the-android-emulator-on-intel-architecture

En esta entrada de blog veremos cómo los desarrolladores aprovechan las ventajas del emulador Intel HAXM cuando desarrollan una aplicación Android universal dirigida a diferentes plataformas de Android, como Android Wear y Android TV, y distintos dispositivos.

Cómo usar la aplicación universal de ejemplo de Android

Hace poco, Google publicó una aplicación universal de ejemplo para mostrar cómo los desarrolladores trabajan para diferentes factores de forma con la misma base de código. Se puede encontrar más información en este vínculo:https://github.com/googlesamples/android-UniversalMusicPlayer

La aplicación de ejemplo presenta algunos de los procedimientos recomendados para apuntar a diferentes factores de forma con la misma base de código. La página a la que lleva el vínculo anterior contiene las instrucciones para compilar la aplicación. En este artículo, la usaremos para cargar instancias del emulador HAXM x86 para TV, Wear y Phone.

Es posible importar el proyecto directamente a Android Studio*, donde los desarrolladores pueden aprovechar las funciones integradas. Para quienes prefieran usar otros entornos de desarrollo integrados, lo siguiente podría resultar útil.

Aquellos que se sientan cómodos con la línea de comandos solo tienen que invocar el script de compilación de Gradle desde el directorio de ejemplos.

gradlew assembleDebug

El apk estará disponible en la carpeta “mobile/build/outputs/apk/mobile-debug.apk”.

Creación de los AVD para Android TV y Android Wear

Tenemos que asegurarnos de haber descargado las imágenes más recientes del emulador del SDK de Android para TV y Wear, además de la imagen estándar de Android para teléfonos y tabletas.

Abramos el administrador del SDK de Android. Se lo puede invocar desde la línea de comandos (la carpeta /tools debe estar en la ruta):

A continuación, necesitamos crear las configuraciones del emulador (AVD o dispositivos virtuales de Android) para usar las imágenes indicadas en la figura.

Abrimos Android Virtual Device Manager. Se lo puede invocar desde la línea de comandos.

> android avd

Emulación de Android Wear

Hay que crear una configuración de AVD de Android Wear como se muestra en la figura.

El siguiente paso es hacer clic en “OK” y luego clic en “Start…” en la ventana del AVD Manager para iniciar el emulador de Wear. A continuación se muestra una captura de pantalla del emulador de Wear después del primer arranque.

Android Wear exige instalar una aplicación complementaria en el teléfono. Esta aplicación solo se consigue en la tienda de Google Play, por lo cual debemos tender un dispositivo con acceso a la tienda.

https://play.google.com/store/apps/details?id=com.google.android.wearable.app

Necesitamos que el dispositivo esté configurado con depuración de adb y que tanto el emulador de Wear como el dispositivo aparezcan en la lista de dispositivos de adb.

Por último, necesitamos redireccionar puertos tcp:

> adb -d forward tcp:5601 tcp:5601

El emulador de Wear debería ahora poder conectarse con el dispositivo. Las capturas de pantalla siguientes muestran el emulador de Wear en los estados conectado y desconectado.

En esta página hay instrucciones detalladas para crear aplicaciones de Wear:http://developer.android.com/training/wearables/apps/creating.html

Como ocurre con todo apk de Android, podemos instalar manualmente el apk de nuestra aplicación de ejemplo en el emulador de Wear por medio de adb:

> adb -s emulator-5554 install -r mobilebuildoutputsapkmobile-debug.apk

Hay que verificar que se haya instalado y que esté disponible en Wear. Para ello usamos lo siguiente:

> adb -s emulator-5554 shell pm list packages | grep example

El nombre del paquete de la aplicación de ejemplo, com.example.android.uamp, figura en la pantalla.

Podemos incluso ejecutar manualmente la aplicación de ejemplo en el emulador de Wear de la siguiente manera:

> adb -s emulator-5554 shell monkey -p com.example.android.uamp -c android.intent.category.LAUNCHER 1

Ahora tenemos la aplicación de ejemplo ejecutándose en el dispositivo del emulador de Wear.

Emulación de Android TV

Hay que crear una configuración de emulador de Android TV (AVD) como se muestra en las figura.

El siguiente paso es hacer clic en “OK” y luego clic en “Start…” en la ventana del AVD Manager para iniciar el emulador de TV.

Podemos verificar si se puede acceder al emulador desde adb con este comando:

> adb devices

Hay que anotar el emulador (p. ej.: emulator-55xx), que se puede usar como destino de los comandos de adb. A continuación, instalamos el apk:

>adb -s emulator-55xx install -r mobilebuildoutputsapkmobile-debug.apk

Por último, iniciamos la aplicación en la instancia del emulador de Android TV:

> adb -s emulator-55xx shell monkey -p com.example.android.uamp -c android.intent.category.LAUNCHER 1

La captura que sigue es de la aplicación de ejemplo ejecutándose en la instancia del emulador de Android TV:

Los desarrolladores pueden crear e iniciar todas las configuraciones e instancias de emulador que necesiten.

Intel HAXM se puede configurar con el tamaño de memoria apropiado al momento de la instalación.

En la captura de pantalla siguiente se muestran las configuraciones de AVD de Wear, TV y Phone.

Esta es la aplicación universal de ejemplo ejecutándose en las tres plataformas (TV, Phone y Wear) junto con su uso de CPU (se observa poca sobrecarga de CPU):

Los desarrolladores pueden modificar la asignación de memoria para aumentar aún más la optimización. En este artículo, apenas hemos arañado la superficie de las funciones del emulador. En la página http://developer.android.com/tools/help/emulator.html figuran todas las opciones de configuración posibles.

Enlaces de consulta

*Es posible que la propiedad de otros nombres y marcas corresponda a terceros.

Fuente: Zona de desarrolladores de Intel