domingo, 13 de noviembre de 2011

Emulador: Rapido y Furioso


En este post vamos a intentar dejar en claro una interesante forma de mejorar la performance y velocidad del Emulador de Android, en nuestra pc de desarrollo.
Si vos estas desarrollando aplicaciones para Android seguro que tenes el mismo problema que mucho: el emulador que proporciona el Android SDK es demasiado lento, tarda muchísimo en arrancar. Motivo por el cual muchos desarrolladores optamos por usar smartphones reales para probar las aplicaciones mientras implementamos, aunque la sensación sigue siendo de lentitud. Ojo! siempre sera buena idea tener un dispositivo Android conectado vía USB para probar nuestras aplicaciones, pero también es bueno tener el Emulador con varios AVD's creados. Aquí es donde viene a salvarnos el proyecto Android x86 que combinado con Virtualbox nos permitirá aumentar la velocidad de ejecución de nuestras pruebas un 400% (sin exagerar, es verdad!).
Emulador Android x86
Una de las razones de tal lentitud del emulador es debida a que el pobre bicho tiene que convertir las instrucciones de la CPU de la arquitectura ARM a la de nuestros equipos de desarrollo, x86. A continuación contamos como utilizar Eclipse junto a la combinación de Virtualbox y una ISO instalable de Android x86.
Gracias al excelente tutorial desarrollado por Nuxeo en pocos pasos podremos tener configurado un rapidísimo emulador Android en un par de minutos.
Vamos a dejar en claro los pasos, a modo de resumen por si se les complica leer ese interesante post de Nuxeo. A modo de resumen, para la configuración del emulador tenemos que:
  • Configurar Android_x86 con Virtualbox. Primero descargar una imagen ISO de Android_X86. Yo he usado la android-x86-2.3-RC1-eeepc.iso que viene con Android 2.3.5. Creamos la maquina virtual siguiendo los pasos de tutorial asignando memoria ram, disco de memoria e instalando GRUB para el arranque.
  • Customizamos las resoluciones del emulador, ya que una de las ventajas es tener una abanico de distintas pantallas para testear la aplicación. Modificamos la configuración de Grub para que nada más arrancar podamos elegir la resolución que deseemos.
  • Conectar la maquina virtual al AVD y Eclipse. Usando el adb desde linea de comandos enlazamos el eclipse con el adb de nuestra sdk. Una de las configuraciones que me han funcionado es poner en los ajuste de red de Virtualbox en NAT y redirigir los puertos 5555 para que simplemente tengamos que hacer ./adb connect 127.0.0.1 para conectarnos a la maquina virtual. Con esto ya lo tenemos todo listo. Podemos comprobar que nos aparecerá en el apartado de dispositivos activos en el Eclipse, a partir de ahi ya podemos ejecutar las aplicaciones como de costumbre.
  • De forma opcional podemos configurar una tarjeta SD para el emulador siguiendo los pasos del tutorial.
Una tabla ilustrativa de la comparación de velocidades entre el emulador de la SDK y el emulador usando Android x86 con Virtualbox que acabamos de configurar.
rendimiento emulador android x86 frente emulador android sdk
saludos a todos, MAriano!

2 comentarios:

  1. esta versión de android android-x86-2.3-RC1-eeepc.iso después de instalarlo no detecó la red, ni NAT, ni puente. De hecho hice ifconfig y netcfg en consola y no tiró datos relevantes. Tuviste la misma experiencia?

    ResponderEliminar
  2. Hola Memo, si, si, aun no pude tunnearlo para que reciba Red, es una lastima. Si te enteras de alguna forma, bienvenido sea el comentario y la ayuda de usted. Saludos!

    ResponderEliminar