Acelera tu emulador Android

Programar para Android, una de las cosas de las que nos quejamos todos es de la lentitud del emulador en arrancar comparado con el de iOS. Es una verdad que merece una explicación.

Mientras que Android emula el teléfono completo, con su CPU, la GPU, su tarjeta SD, la memoria, etc. Está ejecutando código real que podríamos poner en un teléfono, compilado para una CPU de una arquitectura que no tenemos en el PC (p.e: ARM). En Mac, el simulador de iOS lo que hace sin embargo es crear un ejecutable (x86) que “simula” correr dentro de un teléfono cuando en realidad no es mas que un programa Mac disfrazado. Por ello, el emulador Android será siempre más fideligno a la realidad.

Android HAXM TechnologyPese a todo, en el día a día, los tiempos de carga son en lo que la mayoría de la gente se suele fijar fijar y en eso, iOS sigue ganando. Para evitar esto, hace poco descubrí HAXM (Hardware Accelerated Execution Manager), de Intel. Este programa (es un driver) lo que hace es instalar una capa de aceleración por encima del emulador de Android (por debajo utiliza qEmu, un emulador de CPUs). Eso sí, para que funcione, nuestra CPU ha de ser Intel y disponer además de la tecnología VT-x.

Bueno, vayamos al meollo, a lo interesante 🙂

Instalación de HAXM

Windows/Linux

Sencillo, abre el SDK Manager y al final del todo de la lista, verás el componente llamado “Intel x86 Emulator Accelerator (HAXM)“. Selecciónalo y pulsa en “Install”. Cuando acabe, tendrás que irte a tu directorio del SDK de Android, dentro de la carpeta “extras”, concretamente en “extras\intel\Hardware_Accelerated_Execution_Manager“. Aquí dentro esta el ejecutable, lo ejecutamos para que HAXM se instale en nuestro sistema.

android_emu_faster_1

Mac

Si al usar HAXM el Mac se cuelga, si, a veces también pasa en un Mac, nos vamos a la página de instalación de HAXM en HAXM Install y bajamos el .dmg. Para confirmar que se instaló bien ejecutamos lo siguiente:

$ kextstat | grep haxm

Lo que debe salir es algo así

115  0 0xffffff7f81e29000 0x13000 0x13000  com.intel.kext.intelhaxm

Uso de HAXM

Ahora nos toca bajarnos las imágenes Android que nos proporciona Intel también para usar con HAXM. La cosa es que en vez de acelerar un emulador ARM, Intel nos da Android para Intel Atom. De esta manera, cuando se ejecutan instrucciones en el Intel Atom emulado estas pasan directamente a nuestra CPU real, por eso va más rápido.

Para localizar estas imágenes busca en el SDK manager, para cada API Level del SDK, aquellos componentes llamados tal que “Intel x86 Atom System Image”. Verás que no los encuentras en todos los API levels, parece que estan en los que más son usados.

android_emu_faster_2

Una vez instaladas las imágenes Intel Atom, solo nos queda crearnos una AVD que las utilice. Para ello, haz como siempre solo que en “target” selecciona la opción de Intel Atom…”. Guarda y dale a “Ok”.

android_emu_faster_3

Cuando arranques verás la diferencia :).

Y si quieres que aún vaya más rápido, puedes probar a activar también la aceleración por GPU.

Espero que cuando useis el emulador ya no se os haga tan eterno XD

 

Un saludo,

JavocSoft 2013

Javier González Serrano. EnjoYing CodiNg New IdeAs

1 thought on “Acelera tu emulador Android

Leave a Reply

Your email address will not be published. Required fields are marked *