Liberar Android Imprescindibles Accesorios Programación Redeslibre Para Principiantes Otros android Contacta con EAL
follow us in feedly

intel-03

Si eres un desarrollador Android, sabes que el emulador toma mucho tiempo para arrancar (sin mencionar el lento desempeño una vez que ya está funcionando) y esto afecta tu productividad.

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 artículo explicaremos 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

A continuación te guiaremos para realizar 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 y OSX. También explicamos cómo configurar una máquina virtual basada en kernel (KVM) asistida por hardware en Linux.

2. Instalación

2.1. Prerrequisitos

  • Tener instalado el kit de desarrollo de software (SDK) de Android.
  • Tu 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.

intel-01

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

intel-02 intel-03

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

intel-04

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:

intel-05

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

intel-06

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 indicará si nuestro equipo cuenta con la capacidad de ejecutar KVM y si ya está habilitado en el BIOS o tenemos que habilitarlo.

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.

intel-07

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.

intel-08

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 hemos revisado cómo podemos apoyarnos en las capacidades de los procesadores Intel para acelerar el emulador para Android en Windows, Mac y Linux. 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.

Si deseas conocer más herramientas y recursos que ofrece Intel para desarrolladores Android, te recomendamos que visites la zona para desarrolladores Android en http://software.intel.com/es-es/android

  • Mani

    Me parece algo imprescindible, de ser prácticamente inusablesen a volar. Lo único es que hay pequeños problemas de estabilidad.

  • Pedro Galvan

    Sí, yo inicié hace poco en el desarrollo de Android y no daba crédito de lo lento que es el emulador. Afortunadamente ya también estoy usando aceleración por virtualización y sí mejora mucho. En mi caso, lo uso en Linux por medio de KVM y funciona bastante bien.

  • trivi

    ¿Funciona para AMD con virtualización? FX8350

    • Pedro Galvan

      Esta técnica en específico, solo funciona con procesador Intel. Posiblemente AMD ofrezca algún mecanismo similar pero no sabría decirte.

      • trivi

        Gracias! Buscaré a ver qué encuentro! :)

        • Panbo

          AMD posee AMD-V o AMD Hyper-V, se activa tambien en BIOS, creo que viene activada por defecto… pero tu procesador tiene que ser compatible

          • Nasher_87(ARG)

            Panbo no, viene deshabilitdo, casi todos los procesadores Athlon y superiores tiene visualización. Te lo digo por experiencia.

  • Hector

    waooo…de verdad que aumento bastante el rendimiendo o.O gracias por el tuto, desconocia esta tecnologia y su funcionalidad.. e quedado anonadado con el rendimiento que tuvo el emulador *_* , yo usaba mi propio dispositivo android como elmulador, por la lentitud del emulador virtual…ahora con esto pues 2 son mejor que uno :P, gracias!

  • aitorpc

    Usad Genimotion y problema solucionado.

  • Travis

    Cuando tecleo sudo virsh -c qemu:///system list me aparece Id Name State nada mas, es necesario inicializar algo?