Cómo acelerar el emulador de Android bajo Arquitectura Intel

Si eres un desarrollador Android y sientes que el emulador toma una eternidad para arrancar, estoy contigo 100%. Definitivamente hay mejores cosas que hacer que estar esperando a que arranque un emulador.

Afortunadamente, si cuentas con un equipo razonablemente moderno con un procesador Intel® que tenga Intel® Virtualization Technology habilitada, puedes hacer uso de esta tecnología para acelerar significativamente el emulador de Android.

En este documento explicaré los pasos necesarios para hacer esto. Es posible hacerlo tanto en sistema operativo Windows como en Mac OS y Linux. En los dos primeros casos se utiliza Intel® Hardware Accelerated Execution Manager (Intel® HAXM), y en el caso de Linux se utiliza KVM.

1. Introducción

Este documento te guiará a lo largo de la instalación del Intel® Hardware Accelerated Execution Manager (Intel® HAXM), un motor de virtualización asistido por hardware (hipervisor) que usa Intel® Virtualization Technology (Intel® VT) para acelerar el desarrollo de Android* en Windows*. También explica cómo configurar una máquina virtual basada en kernel (KVM) asistida por hardware en Linux* y los métodos más conocidos de compilación nativa y envío de aplicaciones a la tienda Google Play para x86.

2. Instalación

2.1. Prerrequisitos

  • Tener instalado el kit de desarrollo de software (SDK) de Android.

  • Su equipo debe tener un procesador Intel compatible con Intel VT-x y EM64T, y con la funcionalidad Execute Disable (XD) Bit habilitada desde el BIOS.

2.2. Instalación en Windows

Después de haber instalado el SDK de Android, abre el SDK Manager. En la sección de extras, podrás encontrar el Intel HAXM.

Marca la casilla y haz clic en el botón “Install packages…”; cuando hayas instalado el paquete, el estado aparecerá como “Installed”. Esto es engañoso, ya que en realidad no queda instalado. El SDK tan sólo copia el ejecutable de Intel HAXM a nuestra máquina, pero todavía tenemos que instalarlo. Para instalar el ejecutable de Intel HAXM, busca en tu disco duro IntelHaxm.exe (o IntelHAXM.dmg en Mac OS X). Si dejaste todos los valores predeterminados, debería estar en C:\Program Files\Android\android-sdk\extras\Intel\Hardware_Accelerated_Execution_Manager\IntelHaxm.exe.

Intel HAXM sólo funciona en combinación con una de las imágenes de sistema x86 de procesador Intel® Atom™. Al momento de publicar este artículo existen imágenes x86 disponibles para Android 2.3.3 (API 10), 4.0.3 (API 15), 4.1.2 (API 16), 4.2.2 (API 17) y 4.3 (API 18). Estas imágenes de sistema de Intel se pueden instalar de la misma manera que las imágenes basadas en ARM, mediante el administrador de SDK.

Cuando das clic en el ejecutable de IntelHaxm, se muestra una pantalla de bienvenida como esta:

Puedes ajustar la cantidad de memoria RAM que se asigna a Intel HAXM. Después de ajustarla, haz clic en “Next”. La pantalla siguiente confirma la asignación de memoria. Si todo está como lo desea, haz clic en “Install”.

A fin de poder instalar el Intel HAXM, debes tener habilitada Intel VT-x en el BIOS, si no, verás un error como este durante la instalación:

Si se produce este error, ve al BIOS y habilítala.

La segunda opción para descargar el Intel HAXM y la imagen de sistema del emulador x86 Emulator System Image es ir directamente al sitio web: http://software.intel.com/es-es/android y descargar de allí todos los componentes necesarios.

2.3. Instalación en Linux

Los pasos para acelerar el emulador de Android en Linux son diferentes que en Windows y Mac OS X, porque Intel HAXM no es compatible con Linux, así que es necesario usar KVM en su lugar. Los pasos que se muestran a continuación corresponden a Ubuntu* 12.04 y pueden diferir ligeramente en otras distribuciones de Linux.

2.3.1. Instalación de KVM

Para instalar y ejecutar KVM, primero necesitas comprobar que tu CPU admite virtualización de hardware. Tal vez la forma más práctica de hacer esto es con el comando “kvm-ok” que se encuentra en el paquete “cpu-checker”.

sudo apt-get install cpu-checker

sudo kvm-ok

Este comando nos regresará uno de los siguientes resultados:

  • Nuestro equipo definitivamente no puede correr KVM

  • Nuestro equipo tiene la posibilidad de correr KVM pero hay que habilitarlo en BIOS

  • Nuestro equipo está listo para correr KVM

  • Nuestro equipo ya tiene KVM corriendo.

 El siguiente paso es instalar la KVM y otros paquetes necesarios. Para hacerlo, escribe:

sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils

Si obtienes una pantalla de configuración de Postfix, selecciona “No configuration”.

A continuación, agrega tu usuario al grupo KVM y al grupo libvirtd. Para hacerlo, escribe:

sudo adduser your_user_name kvm

sudo adduser your_user_name libvirtd

Después de la instalación, vuelve a iniciar sesión y los cambios surtirán efecto. Para probar la instalación, escribe:

sudo virsh -c qemu:///system list

Ahora puedes ir al paso siguiente, que es crear y ejecutar el dispositivo virtual de Android (AVD). Este procedimiento es el mismo para Linux y Windows.

2.4. Cómo crear un AVD (dispositivo virtual de Android*)

Después de instalar el SDK e Intel HAXM (o KVM en Linux), puedes crear un dispositivo virtual que tenga emulación acelerada por hardware. Para hacerlo, ve a AVD Manager y crea un nuevo dispositivo. Asegúrate de seleccionar Intel Atom (x86) como CPU/ABI. Esta selección sólo aparece en el menú desplegable si tienes instalada la imagen de sistema x86 Intel; para que los gráficos sean más suaves, activa la emulación de GPU cuando crees el AVD.

Haz clic en New y crea tu AVD x86. Asegúrate de elegir una API compatible con imágenes de sistema x86, que CPU/ABI esté establecido en x86 y de haber habilitado la emulación de GPU (OpenGL ES*). Cuando hayas hecho esto, haz clic en Create AVD para crear el AVD.

Para iniciar el AVD x86, haz clic en Start y luego en Launch.

 Si la instalación fue exitosa, cuando se esté iniciando el emulador, aparecerá un cuadro de diálogo que indicará que Intel HAXM se está ejecutando en modo virtual rápido.

También puedes revisar los detalles en “About phone” dentro del emulador.

Conclusión

En este artículo mostramos como puedes acelerar el emulador de Android aprovechando las herramientas de Intel. La mejora de rendimiento que apreciarás con Intel HAXM o KVM depende de tu equipo, pero debería ser entre 5 y 10 veces mejor que al no usar aceleración.

Para conocer más herramientas y tips de desarrollo para Android te recomiendo visitar la Zona de Desarrolladores de Intel en español.