Emulador remoto para Android

android

Si desarrollas con Eclipse aplicaciones para Android, y no tienes una máquina muy potente, te habrás dado cuenta de que usar el emulador y Eclipse al mismo tiempo, puede ser un problema. ¿Tienes una segunda máquina a tu disposición? Esta es tu receta entonces.

Ingredientes

Lo mínimo necesario es:

  • Dos máquinas, que llamaremos A y B. Suponemos que A es la máquina en la que desarrollas y B es la que usarás para emular Android.
  • El entorno de Android configurado en ambas máquinas. En A debes tener Eclipse, con el plugin de Android (ADT), y en B, el SDK con el emulador y los AVDs que vayas a usar. Esto no dista de una instalación normal.

En materia

Cuando arrancas el emulador (QEmu), tienes disponibles un par de puertos (5554 y 5555) con los que el plugin de Eclipse se conectará al dispositivo emulado. Dado que se usa TCP/IP para esta comunicación, no importa donde estén Eclipse o el emulador. Sin embargo, (y por lo menos en el SDK para Android 2.3), se escucha en la interfaz local (127.0.0.1). Así que lo único que tienes que hacer es instalarte redir en A y realizar las redirecciones oportunas.

A$ sudo apt-get install redir
[...]
A$ redir --laddr 192.168.0.10 --lport 5554 --caddr 127.0.0.1 --cport 5554 &
A$ redir --laddr 192.168.0.10 --lport 5555 --caddr 127.0.0.1 --cport 5555 &

Obviamente, en donde pone 192.168.0.10 debes poner la IP que corresponda con tu configuración.

En la máquina de desarrollo, lo único necesario es conectar con este emulador, usando la herramienta ADB:

B$ adb connect 192.168.0.10
connected to 192.168.0.10:5555
B$ adb devices
List of devices attached 
192.168.0.10:5555	device

Por ultimo, en el proyecto de Eclipse, es necesario que configures el “Deployment Target Selection Mode” a manual. De esta forma, saldrá un diálogo con los dispositivos disponibles cuando intentes ejecutar tu aplicación. Para ello, dirígete a “Run -> Run Configurations…”, y en la pestaña “Target” selecciona Manual.

Y esto es todo. Ahora podrás abrir eclipse y el emulador sin morir en el intento Eye-wink

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Excelente

Que excelente truco... me ha encantado. Por cierto... ¿será que se puede hacer algo similar con un dispositivo real? es decir, que el eclipse instale la app en el dispositivo vía tcp (usando una conexión wireless) para evitar tener que conectarlo al USB. Eso sería aún más genial Smiling

Gracias por el tip.
Un saludo!

Imagen de oscarah

Pues no te lo puedo decir,

Pues no te lo puedo decir, porque todavía no tengo ningún dispositivo físico con el que trastear. Cuando me llegue (en breve), intentaré ver si se puede, que a mi también me parece interesante Laughing out loud

PD: no compréis en mp4nation, si no tenéis paciencia (ni estáis dispuestos a esperar más de un mes por vuestro pedido)

"aviso: la dereferencia de punteros de tipo castigado romperá las reglas de alias estricto" --GCC 4.3.1

Imagen de Lk2

Me parece que no

En principio no creo que se pueda, ya que en los teléfonos al menos solo se activa el modo depuración si está activado en la configuración y se conecta el cable USB.

De todos modos existe una aplicación que promete activar esto, pero para poder usarla es necesario tener permisos de root en el dispositivo. Yo la he utilizado (se llama adbWireless) y simplemente necesitas ejecutar, antes de intentar acceder con adb, el comando adb connect IP:puerto y, tras eso, te permite hacer de todo Smiling

Gracias

Es justo lo que andaba buscando! Lo de rootear el teléfono, pues eso siempre se hace un día después de comprarlo, no?

Un saludo!