Aumentar la velocidad del emulador de Android x4

by

El emulador de Android es lento, muy lento. Un dispositivo físico, cuando se está depurando una aplicación, también llega a cansar. La razón es que el emulador de Android funciona emulando un procesador ARM por encima del x86 de nuestro PC, lo que genera una traducción de código muy lenta. Aunque es bueno conocer el rendimiento y funcionamiento tal como quedaría en un dispositivo real, muchas veces, cuando se está desarrollando, merece la pena acelerar el proceso.

La solución es usar otro PC o una máquina virtual…con Android. Una vez tengamos Android virtualizado sobre un equipo potente (nuestro x86) se puede depurar tan fácilmente como si se tratara del emulador.

Para ello la opción más simple es usar Android-x86, una distribución de Android para sistemas x86. Pasos para una instalación en un equipo Toshiba satellite con Windows XP (puede servir para otros). Información más detallada aquí (en inglés)

  1. Descargar android-x86-2.2-r2-sparta.iso, hay más en la página (esta funciona para un Toshiba satellite) y VirtualBox.
  2. Crear a continuación una máquina virtual para el SO anterior con VirtualBox
    1. Montar la iso descargada en Opciones->Almacenamiento
    2. En Opciones->Red seleccionar “Adaptador puente” (Bridge) o sólo-anfitrión (Host only)
  3. Inhabilitar integración del ratón (sobre la máquina virtual, en Máquina->Inhabilitar…)
  4. Una vez arrancada la máquina virtual, pulsando Alt+F1 abrimos una consola (volvemos al emulador de Android con Alt+F7) y el comando “netcfg” nos dice la IP que tiene la máquina virtual con Android. Esa IP es importante, ya que la utilizaremos en nuestro PC (host) para conectarnos al emulador y poder depurar con Eclipse (u otro IDE).
  5. Desde la máquina host: adb connect [ip_máquina_Android]. Se podrá ver entonces en Eclipse como un nuevo dispositivo.
  6. Para tener un formato de pantalla similar al de un móvil, añadir una nueva línea al archivo .vbox correspondiente al nombre que dimos a la máquina virtual usando el comando (desde linea de comandos) VBoxManage.exe:
    c:\<ruta_virtualBox>\VBoxManage setextradata “VM name” “CustomVideoMode1” “320x480x16”
  1. Durante el arranque añadir como comando al kernel, o añadir al menú de grub:
    UVESA_MODE=320x480

Usando los mapas

Para usar la API de mapas de google es necesario modificar el procedimiento anterior ligeramente. Esto se debe a que la distribución de Android-x86 no cuenta con las librerías necesarias.

Para ello es necesario copiar dos archivos en la carpeta /system de la máquina virtual con Android:

  • Copiar el archivo com.google.android.maps.jar en /system/framework
  • Copiar el archivo com.google.android.maps.xml en /system/etc/permissions

Durante el proceso de instalación, es necesario seleccionar como sistema de archivo NTFS (opción 07 para el tipo de partición). Si no se hace, la carpeta /system será montada como sólo lectura, por lo que no podremos escribir nada en ella.

Para copiar los archivos, se utiliza adb desde el PC:

c:\android-sdk\platform-tools\adb connect <IP_MaquinaVirtualAndroid>
c:\android-sdk\platform-tools\adb 
push <ruta_local>/com.google.android.maps.jar /system/framework
c:\android-sdk\platform-tools\adb  push
<ruta_local>/com.google.android.maps.xml /system/etc/permissions

Una vez hecho esto hay que añadir al archivo /system/etc/permissions/platform.xml la siguiente línea:

<library name="com.google.android.maps"
file="/system/framework/com.google.android.maps.jar" />

A continuación se debe reiniciar la máquina virtual, y podemos ya depurar y ejecutar aplicaciones que hagan uso de la API de mapas de Google.

3 Responses to “Aumentar la velocidad del emulador de Android x4”

  1. Antonio Jesus Says:

    Hola, ¿me puedes decir como se hace para encontrar los archivos maps.jar y maps.xml en el directorio de archivos de windows?

  2. jtellez Says:

    Esos archivos están en el sistema operativo del móvil, o en este caso del emulador. Deberías poder conseguirlos conectándote a la máquina virtual con adb. Si no, seguro que no lleva mucho tiempo coseguirlos con google

  3. Antonio Jesus Says:

    Vale lo estoy intentando arreglar pero la máquina no me funciona con Internet cuando estoy conectado a un servidor proxy, ¿hay alguna forma de arreglarlo?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: