9 votos

Conectarse al emulador desde otro PC en LAN

Tengo dos PCs. Uno ejecuta Ubuntu y otro Windows. Ambos tienen adb instalado. Tengo un emulador en Ubuntu y quiero conectarme a él desde Windows. He pensado que podría utilizar adb forward pero no funciona. En Ubuntu, he configurado

adb forward tcp:8080 tcp:5555

adb tcpip 5555

Luego, en Windows, intenté conectarme:

adb connect user@ubuntu-ip-address:8080

Pero no puede conectarse.

PD: Puedo conectarme a través de ssh de Windows a ubuntu y utilizar adb normalmente.

3 votos

6voto

Akasha Puntos 465

Supongamos que tienes el PC1 y el PC2. Según la documentación oficial para desarrolladores de Android , adb forward no es para reenviar un puerto TCP del PC1 a otro puerto del PC2. Es para reenviar un puerto TCP del PC1 a un puerto TCP del dispositivo Android.

Para su situación, puede utilizar cualquier herramienta de reenvío de puertos como Reenvío de puertos para Windows .

Hay un bonito tutorial a continuación copiado de hasper.info de Philipp Hasper :

Suelo utilizar el emulador de Android para comprobar mis aplicaciones con diferentes configuraciones de pantalla y para hacer pruebas de estrés. Pero el problema es que es muy lento en mi portátil de desarrollo. Así que instalé el emulador de Android en mi PC de escritorio con Windows y me conecté a él a través de mi LAN. La mayor ventaja es que puedes seguir utilizando tu máquina de desarrollo mientras un "servidor" se encarga de la emulación - uno podría incluso emular varios dispositivos a la vez y seguir programando.

El enfoque en pocas palabras: Reenviar el puerto del emulador para que sea accesible en la red local. A continuación, conecte el ADB a él.

En su escritorio - el "servidor":

  1. Almacenar el ejecutable de Trivial Portforward en el sistema de escritorio (por ejemplo, directamente en C:\trivial_portforward.exe ).

  2. Crea un dispositivo virtual para emular (HowTo) y nómbralo "EmulatedAndroid".

  3. Crear un archivo por lotes:

    <your-android-sdk-path>\tools\emulator -avd EmulatedAndroid &
    echo 'On the development machine: adb kill-server and then: adb connect <desktop-pc-name>:5585'
    C:\trivial_portforward 5585 127.0.0.1 5555
  4. Si ejecuta este archivo por lotes en su PC de escritorio, se abrirá el emulador con el dispositivo virtual especificado.

Ahora, en su ordenador portátil, el "cliente":

  1. Ahora -dado que ambos sistemas están en la misma red- puedes conectarte al emulador desde tu portátil escribiendo en un terminal:

    adb kill-server
    adb connect <desktop-pc-name>:5585
  2. Ahora puedes cargar aplicaciones, acceder al logcat y ejecutar comandos adb en tu emulador remoto como en cualquier otro dispositivo Android. Y todo ello sin que el rendimiento de tu estación de trabajo se vea afectado.

  3. Si experimenta pérdidas de comunicación, aumente el tiempo de espera del emulador en la configuración de eclipse a quizás 5000 ms (Preferencias de Ventana Android DDMS ADB tiempo de espera de conexión (ms)).

0 votos

He notado que usando esta forma, la depuración de Android no funciona. intenta conectarse a un nuevo puerto que deciden cumplir utilizando abd canal de comunicación por defecto.

0 votos

¿Cómo hacer esto desde un mac a otro mac? O desde un cliente macOS a un emulador alojado en Linux?

0 votos

Esto casi funciona, excepto que veo que el puerto está restringido usando Resource Monitor. Después de añadir una regla de excepción en el Firewall de Windows, ¡funciona de maravilla!

1voto

Yami Puntos 53

Sólo quiero actualizar la respuesta, ya que el enfoque con trivial_portforward no es fácil, porque el emisor ya no está en línea y hay que compilarlo. Y también esta página es la primera en los resultados de google.

El mejor enfoque para el reenvío de puertos es utilizar ssh. Si desea instalar SSH en Windows,aquí están:

De anfitrión:

a) servidor nodaemon:

host$ adb kill-server
host$ adb -a nodaemon server

b) crear un servidor ssh

Simplemente crea un servidor ssh en la máquina anfitriona, si es Windows. Yo lo hice de esta manera.

En Cliente:

a)

adb kill-server
ssh -L 5037:localhost:5037 <host-IP-or-hostname>

b)

adb kill-server
ssh -L 5585:localhost:5555 serverusername@<host-IP-or-hostname>
adb connect localhost:5585

Entonces autentifícate. También portforwading es posible hacer en el host o cliente, si ambos tienen servidor ssh.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X