Cómo configurar ADB para el desarrollo remoto de máquinas y la implementación de dispositivos locales


Mi escenario es este: trabajo a distancia desde casa e inicio sesión en mi máquina de trabajo a través del escritorio remoto de Windows. Uso Eclipse como mi entorno de desarrollo para aplicaciones Android en mi computadora de trabajo.

Usando ADB, me gustaría poder implementar aplicaciones desde mi computadora de trabajo a un dispositivo en mi red doméstica, para escenarios donde el emulador no hace justicia a la aplicación.

Encontré este post, que discute un escenario muy similar, con la excepción de implementar en un emulador que se ejecuta en un PC local, en lugar de implementar en un dispositivo local:

Http://www.41post.com/5003/programming/android-adb-remote-emulator-access

Estoy tratando de tomar los mismos pasos, pero averiguar cómo apuntar a un dispositivo local en mi red WiFi doméstica y atado a mi PC local, en lugar del emulador local.

En este momento, tengo el PC remoto configurado para probar y conectarse a mi IP de enrutador público en el puerto 5585 , pero en mi enrutador, a qué IP / puerto reenvío esto para conectarme el dispositivo local?

En el ejemplo usando el emulador, reenvían a la dirección del PC local donde se está ejecutando el emulador y el puerto 5555, y adb no se está ejecutando en el PC local. He configurado mi enrutador para reenviar a la IP de mi dispositivo, con el dispositivo en WiFi, así como a la IP de mi PC local donde el dispositivo está conectado.

Sin embargo, en ambos escenarios, cuando intento adb connect <routerIP>:5585 en mi PC remoto, me da un error unable to connect to <routerIP>:5585:5585. Obtengo la misma respuesta cuando intento reenviar/escuchar otros puertos. No recibo ningún error de seguridad en el registro del enrutador, por lo que parece que el reenvío de puertos está funcionando.

Preguntas:

  • ¿A qué IP/número de puerto local debo reenviar al configurar el reenvío de puertos en mi red local para conectarme al dispositivo local utilizando la instancia adb remota?
  • ¿Debo dirigirme a la IP local del PC a la que está atado el dispositivo o a la IP local del dispositivo?
  • Si me dirijo a la IP del dispositivo local, ¿qué número de puerto debería ¿hacia adelante?
  • ¿Necesito que adb se ejecute en mi PC local?
Author: e-sushi, 2012-11-08

5 answers

Tuve una situación similar. Trabajo en un escritorio remoto para el desarrollo, pero mi dispositivo Android está conectado a mi portátil local. Quería poder usar adb y el complemento de Android en eclipse en el escritorio remoto y conectarme al dispositivo conectado a mi computadora portátil. Después de buscar en Internet y no encontrar nada que realmente ayudara, decidí escribir un promotor de puertos que hiciera el truco. Puedes encontrarlo aquí. Espero que sea útil para otras personas como bien.

 38
Author: Guy Chauliac,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-10 14:47:34

A partir de Android 4.3 usted puede:

  1. Hacer que el servidor adb escuche en todas las interfaces. Tienes dos opciones:
    • Make gListen=1 y recompilar adb (Lo he compilado en la máquina Linux-x64 para usted y lo puse aquí)
    • Inicie el servidor adb con -a parámetro: adb -a -P 5037 fork-server server&
  2. Use adb en su máquina remota con un parámetro adicional, por ejemplo, adb -H <remote_host> shell
 22
Author: Roman Saveljev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-31 18:11:44

Puede resolver el problema mediante el reenvío de puertos.

  • Descarga la aplicación Secure Shell desde Chrome app store
  • Conéctese a su máquina (configuración paso a paso)
  • En este sentido, desactive adb server: adb kill-server
  • Cree una nueva conexión de reenvío de puertos (igual que una conexión regular, pero establezca el campo Argumentos SSH en: -N-R 5037:localhost:5037)
  • En su computadora portátil, abra un terminal y habilite adb server: adb start-server
 4
Author: Uma sankar pradhan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-07-19 04:26:32

Mi situación requería usar una VM que se encuentra en una red diferente, pero que rmd en (una VM de Azure). La máquina virtual y mi computadora portátil local están ejecutando Windows 10. Primero, tuve que instalar USB Redirector RDP Edition en mi máquina local (cuesta 8 80, pero podría haber alternativas gratuitas), luego instalar el controlador USB de Google Android en la VM y el Controlador Universal Adb en la VM. Ahora puedo cargar una aplicación de Android Studio el proyecto en Android Studio en la VM, conectar un Dispositivo Android en mi computadora portátil, y depurar la aplicación en el dispositivo.

 1
Author: Bugmonster,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-27 23:03:09

Probablemente hay una solución más simple, siempre que el dispositivo, la máquina local y remota pertenezcan a la misma red. Digamos que su dispositivo tiene una determinada IP en la red y digamos que decide usar su PUERTO preferido: bueno, puede hacer los siguientes pasos.

En la máquina donde está conectado el dispositivo, ejecute:

adb devices

adb tcpip PORT

En el equipo remoto debe desactivar 'Discover USB devices', 'Discover network targets' y 'Port forwarding' y luego ejecutar:

adb connect IP:PORT

Y está listo para depurar en una máquina remota.

Espero que esto ayude a alguien ...

Saludos

 0
Author: Pakkes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-14 15:28:09