Подтвердить что ты не робот

Как настроить ADB для разработки удаленных машин и локального развертывания устройств

Мой сценарий таков: я телеуправляюсь из дома и запишусь на свой рабочий компьютер через Windows Remote Desktop. Я использую Eclipse в качестве среды разработки для приложений Android на своем рабочем компьютере.

Используя ADB, я хотел бы иметь возможность развертывать приложения с моего рабочего компьютера на устройство в моей домашней сети, для сценариев, в которых эмулятор не выполняет справедливость приложения.

Я нашел этот пост, в котором обсуждается очень похожий сценарий, за исключением развертывания на эмуляторе, запущенного на локальном ПК, вместо развертывания на локальном устройстве:

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

Я пытаюсь выполнить те же шаги, но выясню, как настроить таргетинг на локальное устройство в моей домашней сети WiFi и привязано к локальному домашнему ПК вместо локального эмулятора.

Прямо сейчас у меня есть удаленный ПК, настроенный на попытку подключения к моему публичному IP-адресу маршрутизатора на порту 5585, - но на моем маршрутизаторе какой IP-порт я переадресую это для подключения к локальному устройству?

В примере с использованием эмулятора они пересылаются на локальный адрес ПК, где работает эмулятор, и порт 5555, а adb не работает на локальном ПК. Я настроил свой маршрутизатор для пересылки на IP-адрес устройства с устройством на WiFi, а также с моим локальным IP-адресом ПК, на котором привязано устройство.

Однако в обоих сценариях, когда я пытаюсь использовать adb connect <routerIP>:5585 на моем удаленном ПК, это дает мне ошибку unable to connect to <routerIP>:5585:5585. Я получаю тот же ответ при попытке переслать/прослушать другие порты. Я не получаю никаких ошибок безопасности в протоколе маршрутизатора, поэтому кажется, что переадресация портов работает.

Вопросы:

  • Какой локальный номер IP/порта должен быть отправлен при настройке перенаправления портов в локальной сети для подключения к локальному устройству с помощью удаленного экземпляра adb?
  • Должен ли я настраивать IP-адрес локального ПК, к которому привязано устройство, или IP-адрес локального устройства?
  • Если я настроен на IP-адрес локального устройства, какой номер порта я должен переслать?
  • Нужен ли мне adb на моем локальном ПК?
4b9b3361

Ответ 1

У меня была аналогичная ситуация. Я работаю на удаленном рабочем столе для разработки, но мое устройство Android подключено к моему локальному ноутбуку. Я хотел иметь возможность использовать adb и плагин Android в eclipse на удаленном рабочем столе и подключаться к устройству, подключенному к моему ноутбуку. После поиска в Интернете и не найдя ничего, что действительно помогло, я решил написать порт-форвардер, который бы сделал трюк. Вы можете найти здесь здесь. Я надеюсь, что это будет полезно и для других людей.

Ответ 2

Начиная с Android 4.3 вы можете:

  • Сделать сервер adb прослушиванием всех интерфейсов. У вас есть два варианта:
    • Сделайте gListen = 1 и перекомпилируйте adb (я скомпилировал его на компьютере Linux-x64 для вас и поместил здесь)
    • Запустите сервер adb с параметром -a: adb -a -P 5037 fork-server server&
  • Используйте adb на удаленном компьютере с дополнительным параметром, например. adb -H <remote_host> shell

Ответ 3

Вы можете решить проблему путем перенаправления портов.

  • Загрузите приложение Secure Shell из магазина приложений Chrome.
  • Подключение к вашему устройству (пошаговая настройка)
  • В этом случае отключите adb-сервер: adb kill-server
  • Создайте новое соединение для переадресации портов (такое же, как и обычное соединение, но установите для параметра SSH Arguments следующее: -N -R 5037: localhost: 5037)
  • На вашем ноутбуке откройте терминал и включите сервер adb: adb start-server

Ответ 4

Моя ситуация требовалась с использованием виртуальной машины, находящейся в другой сети, но которая была включена в (Azure VM). VM и мой локальный ноутбук работают под управлением Windows 10. Сначала мне пришлось установить USB Redirector RDP Edition на моем локальном компьютере (стоит 80 долларов США, но могут быть бесплатные альтернативы), а затем установить драйвер Google Android USB на виртуальной машине и Универсальный драйвер Adb на виртуальной машине. Теперь я могу загрузить приложение Android Studio в Android Studio на виртуальной машине, подключить устройство Android на своем ноутбуке и отладить приложение на устройстве.

Ответ 5

Возможно, существует более простое решение, обеспечивающее, чтобы устройство, локальная и удаленная машины принадлежали к одной и той же сети. Скажем, у вашего устройства есть определенный IP-адрес по сети, и предположим, что вы решили использовать предпочтительный PORT: ну, вы можете сделать следующие шаги.

На машине, где подключено устройство, выполните следующие действия:

adb devices

adb tcpip PORT

На удаленном компьютере вам необходимо деактивировать "Discover USB devices", "Discover network target" и "Port forwarding", а затем запустить:

adb connect IP:PORT

и вы готовы отлаживать удаленный компьютер.

Надеюсь, это поможет кому-то...

Привет