Как я могу подключиться к Android с ADB через TCP? - PullRequest
818 голосов
/ 09 апреля 2010

Я пытаюсь отладить приложение на Motorola Droid , но у меня возникают трудности с подключением к устройству через USB. Мой сервер разработки представляет собой 64-разрядную виртуальную машину Windows 7, работающую в Hyper-V , и поэтому я не могу подключиться напрямую через USB в гостевой системе или с хоста.

Я установил несколько различных решений USB-over-TCP, но, похоже, возникли проблемы с подключением, поскольку монитор ADB сообщает, что «devicemonitor неоднократно не запускал мониторинг». Есть ли способ подключиться напрямую с клиента на компьютере разработчика к демону на устройстве, используя сеть вместо USB-подключения или, возможно, другие жизнеспособные варианты?

Ответы [ 32 ]

1118 голосов
/ 02 сентября 2010

Ручной процесс

С вашего устройства, если он рутирован

Согласно сообщению на xda-developers , вы можете включить ADB через Wi-Fi с устройства с помощью команд:

su
setprop service.adb.tcp.port 5555
stop adbd
start adbd

И вы можете отключить его и вернуть ADB для прослушивания по USB с помощью

setprop service.adb.tcp.port -1
stop adbd
start adbd

С компьютера, если у вас уже есть доступ к USB (без рута)

Еще проще перейти на Wi-Fi, если у вас уже есть USB. Из командной строки на компьютере, к которому подключено устройство через USB, введите команды

adb tcpip 5555
adb connect 192.168.0.101:5555

Обязательно замените 192.168.0.101 IP-адресом, который фактически назначен вашему устройству. Когда вы закончите, вы можете отключиться от сеанса adb tcp, выполнив:

adb disconnect 192.168.0.101:5555

Найти IP-адрес планшета можно двумя способами:

Обнаружение IP-адреса вручную:

Зайдите в настройки WiFi Android, нажмите кнопку меню на панели действий (вертикальный многоточие), нажмите Advanced и увидите IP-адрес внизу экрана.

Используйте ADB для обнаружения IP:

Выполнить следующую команду через adb:

adb shell ip -f inet addr show wlan0

Чтобы сказать, что демон ADB возвращается к прослушиванию через USB

adb usb

Приложения для автоматизации процесса

В Google Play также есть несколько приложений, которые автоматизируют этот процесс. Быстрый поиск предлагает adbWireless , WiFi ADB и ADB WiFi . Все они требуют root-доступа, но adbWireless требует меньше разрешений.

128 голосов
/ 18 сентября 2010

Это действительно просто, если ваш телефон рутирован.

Скачать эмулятор терминала из Google Play (есть много бесплатных). Убедитесь, что ваше устройство Android подключено к Wi-Fi и получите IP-адрес Wi-Fi . Откройте программу терминала и введите:

su
setprop service.adb.tcp.port 5555
stop adbd
start adbd

Теперь перейдите на свой компьютер (при условии, что вы используете Windows) и создайте ярлык на рабочем столе для «cmd.exe» (без кавычек).

Щелкните правой кнопкой мыши на ярлыке cmd и выберите "Run as Administrator"

Перейдите в папку android-sdk-windows\tools

Тип:

adb connect ***wifi.ip.address***:5555

(example: adb connect 192.168.0.105:5555)

adb теперь должен сказать, что вы подключены.

Примечание: Если вы слишком быстры, чтобы дать команду подключения, это может привести к сбою. Поэтому попробуйте по крайней мере два раза по пять секунд, прежде чем сказать, что это не работает.

82 голосов
/ 22 января 2015
  1. Подключите устройство через USB и убедитесь, что отладка работает, затем запустите:

    adb tcpip 5555
    adb connect <DEVICE_IP_ADDRESS>:5555
    
  2. Отключите USB и продолжите беспроводную отладку.

  3. Когда вы закончите и хотите вернуться к отладке по USB, запустите:

    adb -s <DEVICE_IP_ADDRESS>:5555
    

Чтобы найти IP-адрес вашего устройства, перейдите на Settings > Wi-Fi > Advanced > IP Address на вашем устройстве или запустите adb shell netcfg.

Корень не требуется. Одновременно можно отлаживать только одно устройство.

См. этот пост XDA .

Команда adb находится в папке platform-tools Android SDK.

54 голосов
/ 15 апреля 2013

Предположим, вы сохранили путь adb в путь к среде Windows

  1. Активировать режим отладки в Android

  2. Подключение к ПК через USB

  3. Открыть тип командной строки: adb tcpip 5555

  4. Отключите планшет или смартфон от компьютера

  5. Открыть тип командной строки: adb connect IPADDRESS (IPADDRESS - это DHCP / IP-адрес вашего планшета или смартфона, который можно найти по Wi-Fi -> текущая подключенная сеть)

Теперь в командной строке вы должны увидеть результат как: подключено к xxx.xxx.xxx.xxx:5555

51 голосов
/ 09 апреля 2010

С adb --help:

connect <host>:<port>         - Connect to a device via TCP/IP

Кстати, это опция командной строки.

Вы должны попытаться подключить телефон к Wi-Fi, а затем получить его IP-адрес от вашего роутера. Это не будет работать в сотовой сети.

Порт 5554.

41 голосов
/ 25 октября 2015

Для пользователей ПК:

Шаг 1:
Вы должны включить параметры разработчика в вашем телефоне Android.
Вы можете включить опции разработчика, используя этот способ.
• Откройте «Настройки»> «О программе»> «Информация о программном обеспечении»> «Еще».
• Затем нажмите «Номер сборки» семь раз, чтобы включить параметры разработчика.
• Вернитесь в меню «Настройки», и теперь вы сможете увидеть «Опции разработчика» там.
• Коснитесь его и включите USB-отладку из меню на следующем экране.

Шаг 2:

Откройте cmd и введите adb.
если вы обнаружите, что adb является недопустимой командой, вам нужно добавить путь к переменной среды.

• Сначала зайдите в папку с установленным вами SDK
Следуйте по этому пути, и этот путь только для примера. D: \ программное обеспечение \ Development \ Andoird \ SDK \ SDK \ платформенные инструменты \; D: \ программное обеспечение \ Development \ Andoird \ SDK \ SDK \ инструменты;
• Теперь поиск в системе Windows расширенные настройки

enter image description here

Открыть переменную среды.

enter image description here

затем откройте путь и вставьте следующий путь это пример.
Ваш путь SDK отличается от моего, пожалуйста, используйте ваш. D: \ программное обеспечение \ Development \ Andoird \ SDK \ SDK \ платформенные инструменты \;
D: \ Softwares \ Разработка \ Andoird \ SDK \ SDK \ инструменты;

enter image description here

Шаг 3:

Откройте cmd и введите adb. если вы по-прежнему видите, что команда adb является недопустимой, значит, ваш путь не задан правильно, следуйте приведенным выше инструкциям.

enter image description here

Теперь вы можете подключить ваш телефон к ПК.

Откройте cmd и введите adb devices, и вы увидите свое устройство. Найдите свой IP-адрес телефона.

enter image description here

Тип: - adb tcpip 5555

enter image description here

Получить IP-адрес вашего телефона

adb shell netcfg

Теперь

adb connect "IP address of your phone"

Теперь запустите ваш проект Android и, если вы не видите свое устройство, наберите еще раз adb connect IP-адрес вашего телефона

enter image description here

enter image description here

Для пользователей Linux и MAC :

Шаг 1: открыть терминал и установить adb, используя

sudo apt-get install android-tools-adb android-tools-fastboot

Подключите телефон через USB-кабель к ПК. Введите следующую команду в терминале

adb tcpip 5555

Используя ADB, подключите ваш IP-адрес телефона Android.

Убери свой телефон.

33 голосов
/ 14 октября 2011

Мне нужно было, чтобы оба USB и TCPIP работали для ADB (не спрашивайте), поэтому я сделал следующее (используя указания, опубликованные другими от xda-developers)

Использование adb shell:

su
#Set the port number for adbd
setprop service.adb.tcp.port 5555

#Run the adbd daemon *again* instead of doing stop/start, so there
#are two instances of adbd running.
adbd &

#Set the port back to USB, so the next time ADB is started it's
#on USB again.
setprop service.adb.tcp.port -1

exit
32 голосов
/ 29 января 2013

Для подключения планшета через TCP-порт. Убедитесь, что ваша система и устройство подключены к одной сети.

  1. Открытая консоль cmd.exe
  2. Тип adb tcpip 5555
  3. Перейдите на Система -> Опция разработки -> Отладка USB -> Снимите флажок для соединения TCPIP
  4. Введите adb connect 192.168.1.2 это IP-адрес вашего устройства
  5. Подключено к 192.168.1.2

Подключено через порт forward Попробуйте сделать переадресацию портов,

adb forward tcp: <PC port> tcp: <device port>

как:

adb forward tcp: 5555 tcp: 5555.

C: \ Users \ abc> adb forward. Tcp: 7612 tcp: 7612

C: \ Users \ abc> adb tcpip 7612 перезапускается в режиме порта TCP: 7612

C: \ Users \ abc> adb connect 10.0.0.1:7612

подключен к 10.0.0.1:7612

Если вы получаете сообщение ошибка: устройство не найдено подключите USB-устройство к системе, затем выполните ту же процедуру.
для корневого устройства

setprop service.adb.tcp.port 5555
stop adbd
start adbd
31 голосов
/ 09 июня 2017

с компьютера на некорневом устройстве

(Обратите внимание, что это также можно сделать с помощью рутированного устройства, но вы можете использовать оболочку на рутированном устройстве, для которого не требуется USB-соединение)

Во-первых, откройте командную строку (CMD). Если вы используете Android Studio или IntelliJ, там есть консоль, которую вы можете использовать.

Если к пути добавлен adb, вы можете пропустить часть cd.


Если возможно, откройте местоположение SDK, щелкните правой кнопкой мыши и нажмите «Запустить командную строку здесь». Не у всех есть эта опция, поэтому вы должны также выполнять следующие команды:

Windows: изменить диск (если применимо)

D: 

И доступ к инструментам SDK и платформы. Замените этот путь своим местоположением SDK:

cd /sdk/path/here/platform-tools

Теперь у вас есть доступ к мосту отладки Android.


Когда устройство подключено к компьютеру, выполните:

adb tcpip <port> 
adb connect <ip>:<port>

Где <port> - это порт, к которому вы хотите подключиться (по умолчанию 5555), а <ip> - это IP-адрес устройства, к которому вы хотите подключиться.

Обратите внимание: 5555 является портом по умолчанию, и просто запись IP-адреса соединяет его. Если вы используете собственный порт, вы можете хотя бы немного улучшить безопасность. Отладкой USB через Wi-Fi можно злоупотреблять, но только если устройство подключено к компьютеру, который хочет злоупотребить устройством. Использование порта не по умолчанию, по крайней мере, затрудняет подключение.

Если вы используете пользовательский порт, обязательно добавьте его после IP. Запись без порта подключается к 5555, и если вы не использовали его, соединение не будет установлено.

Вы можете найти IP-адрес устройства двумя способами:

  • В зависимости от вашего устройства точные названия могут отличаться. Откройте настройки и перейдите к Об устройстве -> Состояние -> IP-адрес

  • Используйте ADB для получения IP

Из консоли выполните:

adb shell ip -f inet addr show wlan0

И как только вы закончите с подключением, вы можете отключить устройство от компьютера, выполнив:

adb disconnect <ip>:<port>

Или нет IP для отключения всех устройств. Если вы использовали пользовательский порт, вы должны указать, какой порт следует отключить от . По умолчанию здесь также 5555.

Чтобы отключить порт (если это то, что вы хотите сделать), выполните эту команду с подключенным устройством:

adb usb

Или вы можете перезагрузить устройство, чтобы удалить соединение tcpip

С компьютера на рутованном устройстве

Во-первых, вам нужен доступ к оболочке. Вы либо подключаете устройство с помощью USB-кабеля и используете adb shell, либо загружаете приложение из Google Play, FDroid или другого источника.

Тогда вы делаете:

su
setprop service.adb.tcp.port <port>
stop adbd
start adbd

А чтобы подключить устройство, вы делаете как в некорневой версии, выполняя adb connect <ip>:<port>.

А если вы хотите отключить порт и вернуться к прослушиванию через USB:

setprop service.adb.tcp.port -1
stop adbd
start adbd

Вы также можете использовать плагин для Android Studio, чтобы сделать это для вас (не помню название сейчас), а для пользователей с правами root также есть возможность загрузить приложение для Android, чтобы установить телефонное соединение (adb connect is вероятно все еще требуется).

В некоторых телефонах есть параметр в настройках разработчика (это относится к некоторым телефонам без рута, хотя, возможно, и к некоторым телефонам с root-доступом), который позволяет переключать ADB через Wi-Fi с самого устройства без рута или компьютера соединение, чтобы начать это. Хотя есть несколько телефонов с таким

29 голосов
/ 07 июня 2016

Сначала вы должны подключить устройство через USB

Затем подключите ваше устройство к WIFI и получите IP-адрес. При подключении через USB введите это в командной строке или через Android Studio Terminal

adb tcpip 5555
adb connect <device IP>:5555

Вы увидите эти сообщения:

restarting in TCP mode port: 5555
connected to 172.11.0.16:5555

Теперь отсоедините USB-кабель, и вы по-прежнему будете видеть ваш logcat как обычно

Готово. Наслаждайтесь

...