Запускать / устанавливать / отлаживать приложения Android через Wi-Fi? - PullRequest
883 голосов
/ 04 февраля 2011

Я думал, что есть способ протестировать ваши приложения в разработке через Wi-Fi.Возможно ли это?

Я бы хотел иметь возможность отвязать свой телефон и развиваться без проводов.

Ответы [ 28 ]

1522 голосов
/ 20 апреля 2012

См. Сообщение на форуме Любой способ удаленного просмотра экрана Android без рута? - Пост № 9 .

  1. Подключите устройство через USB и убедитесь, что отладка работает;
  2. adb tcpip 5555. Это заставляет устройство начать прослушивание соединений через порт 5555;
  3. Посмотрите IP-адрес устройства с adb shell netcfg или adb shell ifconfig с 6.0 и выше;
  4. Теперь вы можете отключить USB;
  5. adb connect <DEVICE_IP_ADDRESS>:5555. Это подключается к серверу, который мы настроили на устройстве на шаге 2;
  6. Теперь у вас есть устройство в сети, с которым вы можете отлаживать как обычно.

Чтобы переключить сервер обратно в режим USB, запустите adb usb, чтобы перевести сервер на вашем телефоне обратно в режим USB. Если у вас есть более одного устройства, вы можете указать устройство с опцией -s: adb -s <DEVICE_IP_ADDRESS>:5555 usb.

Корень не требуется!

Чтобы найти IP-адрес устройства: запустите adb shell, а затем netcfg. Вы увидите это там. Чтобы найти IP-адрес при использовании OSX, введите команду adb shell ip route.


ПРЕДУПРЕЖДЕНИЕ : оставлять опцию включенной опасно, любой в вашей сети может подключиться к вашему устройству в режиме отладки, даже если вы находитесь в сети передачи данных. Делайте это только при подключении к доверенному Wi-Fi и не забудьте отключить его, когда закончите!


@ Сергей предложил изменить строку 2, комментируя: «опция -d необходима для подключения к USB-устройству, когда сохраняется другое подключение (например, подключен эмулятор или другое устройство Wi-Fi)».

Эта информация может оказаться полезной для будущих читателей, но я вернулся к первоначальной версии, получившей 178 голосов.


На некоторых устройствах вы можете сделать то же самое, даже , если у вас нет USB-кабеля :

  1. Включить ADB по сети в настройках разработчика Screenshot Showing the option on Должен показываться IP-адрес
  2. adb connect <DEVICE_IP_ADDRESS>:5555
  3. Отключить настройку, когда закончите

В Android Studio есть плагин , позволяющий подключать отладку по USB без необходимости использования какой-либо команды ADB из терминала.

100 голосов
/ 25 августа 2016

(без рута) Существует один лучший, простой и удобный метод для интерфейса Android для Android Studio

Плагин IntelliJ и Android Studio, созданный для быстрого подключения вашего Android-устройства через Wi-Fi для установки, запуска и отладки ваших приложений без подключения к USB. Нажмите одну кнопку и забудьте о своем USB-кабеле.

просто установите плагин Android WiFi ADB

Загрузите и установите Android WiFi ADB прямо с

Intellij / Android Studio: Настройки / Настройки-> Плагины-> Просмотр репозиториев

enter image description here

enter image description here

.

Помните! впервые для инициализации устройства, которое вам необходимо подключить с помощью usb

Кроме того, вы можете скачать плагин с сайта плагинов JetBrains и установить его вручную в: Настройки / Настройки-> Плагины-> Установить плагин с диска.

Вы можете легко подключать устройства и управлять ими ....... Подробнее см. Здесь https://github.com/pedrovgs/AndroidWiFiADB

38 голосов
/ 13 ноября 2013

Если вы хотите включить беспроводной adb на устройстве без подключения с помощью USB-кабеля вообще (требуется root):

  1. Установите на устройстве приложение терминала (например, Android Terminal Emulator) Введите следующее
  2. су
  3. setprop service.adb.tcp.port 5555
  4. stop adbd
  5. start adbd

Поскольку у вас уже открыт терминал, вы можете найти IP-адрес устройства:

ip addr show

Затем в вашей среде отладки выполните команду:

adb connect ip.of.the.device

В результате устройство будет отображаться в списке других эмуляторов, которые у вас могут быть. Обратите внимание, что TCP будет оставаться открытым, пока вы не перезагрузите устройство. Вы также можете установить приложение Wi-Fi Keep Alive, если у вас часто возникают отключения.

Не забудьте закрыть TCP при подключении к публичным сетям, если вы хотите чувствовать себя в безопасности. Вы можете сделать следующее или просто перезагрузить устройство:

  1. су
  2. setprop service.adb.tcp.port -1
  3. stop adbd
  4. start adbd
33 голосов
/ 04 февраля 2011

Утилита adb имеет возможность подключаться к устройству по TCP / IP. Однако adbd обычно не прослушивает TCP-соединения.

Если вы хотите запустить его, вам нужно инженерное устройство (другими словами, вам нужен root). Затем следуйте инструкциям в этом сообщении:

Как подключиться к Android с помощью ADB через TCP?

Поскольку это работает только на устройствах eng, официально оно не поддерживается. Используйте на свой страх и риск, ожидайте ошибок и т. Д.

27 голосов
/ 12 августа 2015

Я нашел свой ответ здесь :

  1. Подключите устройство Android и хост-компьютер adb к общей сети Wi-Fi, доступной для обоих. Мы обнаружили, что не все точки доступа подходят; вам может понадобиться использовать точку доступа, брандмауэр которой настроен правильно для поддержки adb.
  2. Подключите устройство с помощью USB-кабеля к хосту.
  3. Убедитесь, что adb работает в режиме USB на хосте.

    $ adb usb
    restarting in USB mode
    
  4. Подключение к устройству через USB.

     $ adb devices
     List of devices attached
     ######## device
    
  5. Перезапустите хост adb в режиме tcpip.

    $ adb tcpip 5555
    restarting in TCP mode port: 5555
    
  6. Узнайте IP-адрес устройства Android: Settings -> About tablet -> Status -> IP address. Запомните IP-адрес вида #.#.#.#. иногда невозможно найти IP-адрес устройства Android, как в моем случае. так что вы можете получить его с помощью ADB следующим образом: $ adb shell netcfg и должен быть в последней строке результата.

  7. Подключение хоста adb к устройству:

    $ adb connect #.#.#.#
    connected to #.#.#.#:5555
    
    1036 **
  8. Отсоедините USB-кабель от устройства и подтвердите, что вы все еще можете получить доступ к устройству:

    $ adb devices
    List of devices attached
    #.#.#.#:5555 device
    

Теперь ты в порядке!

Если соединение adb потеряно:

  1. Убедитесь, что ваш хост все еще подключен к той же сети Wi-Fi, что и ваше устройство Android.
  2. Переподключитесь, выполнив шаг «adb connect» снова.
  3. Или, если это не сработает, перезагрузите хост adb:

     adb kill-server
    

и затем начните сначала.

26 голосов
/ 18 мая 2016

Для всего этого существует лучший метод ( ЛЕГКИЙ МЕТОД ):

1) Плагин для выхода из студии Android, называемый Androidwifi ADB

2) Перейдите в файл -> настройки -> Плагины -> Просмотреть репозитории

3) Найдите Android WiFi ADB , нажмите УСТАНОВИТЬ , а затем перезапустить по приглашению

4) Вы увидите новый значок , который является вашим новым плагином.

Теперь , чтобы сделать эту работу :

5) Перейдите в опцию разработчика вашего телефона и включите ОТЛАДКУ (обязательно)

6) Также включите, РАЗРЕШИТЬ ОТЛАДКУ НА TCP/ NETWORK

7) Подключите телефон через USB и убедитесь, что телефон и ваш ПК / ноутбук подключены к одной сети (точка доступа или Wi-Fi)

8) НАЖМИТЕ НА НОВЫЙ ЗНАЧОК (т. Е. Ваш ANDROID Wifi ABD )

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

Это избавит ваш телефон от нерегулярных платежей, а также, исправит проблему с короткими USB-кабелями.

8 голосов
/ 17 сентября 2015

Я написал сценарий оболочки , который может позволить вам отладить устройство Android через Wi-Fi.

Вот код:

#!/usr/bin/env bash
#Notice: if unable to connect to [ip]:5555,
#try adb kill-server then try again.

adb shell ip route > addrs.txt
#Case 1:Nexus 7
#192.168.88.0/23 dev wlan0  proto kernel  scope link  src 192.168.89.48

#Case 2: Smartsian T1,Huawei C8813
#default via 192.168.88.1 dev eth0  metric 30
#8.8.8.8 via 192.168.88.1 dev eth0  metric 30
#114.114.114.114 via 192.168.88.1 dev eth0  metric 30
#192.168.88.0/23 dev eth0  proto kernel  scope link  src 192.168.89.152  metric 30
#192.168.88.1 dev eth0  scope link  metric 30

ip_addrs=$(awk {'if( NF >=9){print $9;}'} addrs.txt)

echo "the device ip address is $ip_addrs"

echo "connecting..."

rm addrs.txt

adb tcpip 5555

adb connect "$ip_addrs"
5 голосов
/ 18 сентября 2014

Для Windows:

Шаг 1. Создайте командный файл с помощью приведенных ниже команд и назовите файл w.bat.

Шаг 2. Скопируйте приведенное ниже содержимое в w.bat и сохраните его в любой из папок %path% вашей системы Windows

echo ***Get phone in Wi-Fi mode***
echo ***Get phone in Wi-Fi mode***

adb devices
echo ***Remove cable from the phone now***
adb tcpip 9000

adb connect 192.168.1.1:9000
adb connect 192.168.1.2:9000
adb connect 192.168.1.3:9000
adb connect 192.168.1.4:9000
adb connect 192.168.1.5:9000
adb connect 192.168.1.6:9000

// <- До здесь ->

Шаг 3. Подключите телефон и ПК с помощью кабеля

Шаг 4. Убедитесь, что телефон находится в режиме Wi-Fi

Шаг 5. Удалите кабель, когда командный файл сообщает вам

Шаг 6. Введите w.bat в приглашении Windows (Пуск -> Выполнить -> введите CMD, нажмите Ввод ) (черный экран - приглашение Windows DOS), если вы скопировали его в один из пути к папкам, вы можете запускать из любого места, иначе запустить из папки, где вы создали этот файл.

Вывод командного файла будет примерно таким:

C:\Windows\System32>w

C:\Windows\System32>echo ***Get phone in Wi-Fi mode***
***Get phone in Wi-Fi mode***

C:\Windows\System32>echo ***Get phone in Wi-Fi mode***
***Get phone in Wi-Fi mode***

C:\Windows\System32>adb devices
List of devices attached
d4e9f06 device

C:\Windows\System32>echo ***Remove cable from the Phone now***
***Remove cable from the Phone now***

C:\Windows\System32>adb tcpip 9000
restarting in TCP mode port: 9000

C:\Windows\System32>adb connect 192.168.1.1:9000
unable to connect to 192.168.1.1:9000:9000

C:\Windows\System32>adb connect 192.168.1.2:9000
connected to 192.168.1.2:9000

C:\Windows\System32>adb connect 192.168.1.3:9000
unable to connect to 192.168.1.3:9000:9000

C:\Windows\System32>adb connect 192.168.1.4:9000
unable to connect to 192.168.1.4:9000:9000

C:\Windows\System32>adb connect 192.168.1.5:9000
unable to connect to 192.168.1.5:9000:9000

C:\Windows\System32>adb connect 192.168.1.6:9000
unable to connect to 192.168.1.6:9000:9000

Примечание 1: найдите это в выводе (игнорируйте все -> невозможно подключиться <- ошибки) </p>

connected to xxx.xxx.x.x:9000

Если вы видите это в результате, просто отсоедините кабель от ПК, перейдите в Eclipse и запустите, чтобы установить приложение на устройство; это должно быть.

Примечание 2: ОТКЛЮЧИТЬ ИЛИ ВЫКЛЮЧИТЬ БЕСПРОВОДНОЙ РЕЖИМ ВЫКЛ: введите приведенную ниже команду. Следует сказать, перезагрузка в режиме USB - на этом этапе ПК и компьютер НЕ должны быть соединены с помощью кабеля:

C:\Users\dell>adb usb
restarting in USB mode

Примечание 3. Действия по поиску IP-адреса телефона (взяты из переполнения стека)

Найти IP-адрес МОЕГО ТЕЛЕФОНА:

a. Dial *#*#4636#*#* to open the Testing menu.
b. In the Wi-Fi information menu: click Wi-Fi Status
c. Wi-Fi status can be blank for the first time
d. Click Refresh Status
e. In the IPaddr: <<IP ADDRESS OF THE PHONE IS LISTED>>

Примечание 4. Диапазон IP-адресов подключения Wi-Fi для моего телефона обычно соответствует приведенным ниже IP-адресам

.

192.168.1.1

192.168.1.2

192.168.1.3

192.168.1.4

192.168.1.5

192.168.1.6

Примечание 5: если вы получаете любую другую последовательность IP-адресов, которые продолжают переназначаться на ваш телефон, вы можете просто изменить IP-адрес в файле w.bat.

Примечание 6: Это метод brute force , который исключает весь ручной труд, чтобы постоянно находить IP-адрес и подключаться к Eclipse / Wi-Fi.

УСПЕХ Примечание 7: Короче говоря, обычная деятельность будет выглядеть примерно так:

Step 1. Connect PC and Wi-Fi via a cable
Step 2. Start CMD - to go to Windows DOS prompt
Step 3. Type "w"
Step 4. Find connected command in the output
Step 5. Success, remove cable and start using Eclipse
4 голосов
/ 26 июля 2018

После долгого поиска я нашел:

Я должен запустить

adb connect <device_ip_address>:5555 

после отключения USB .

4 голосов
/ 28 сентября 2018

Чтобы завершить ответ @ usethe4ce, если у вас более одного устройства или эмулятора, adb tcpip 5555 даст error: more than one device/emulator.

В этом случае вам нужно указать серийный номер нужного устройства:

  1. adb devices

    Список подключенных устройств

    33001229 устройство

    устройство emulator-5554

  2. adb -s 33001229 tcpip 5555
  3. Найдите IP-адрес вашего устройства, в моем случае его можно найти в настройках подключенного Wi-Fi устройства.
  4. adb connect xxx.xxx.xxx.xxx:5555
...