Отладка Android-приложений через Wi-Fi
// Archived from my old blog bibobo.ru and kept as it was, in Russian. Some of the APIs here are outdated.
Для отладки своих приложений на живых девайсах разработчики в большинстве своем подключают устройство по USB. Стоит подключить устройство (с разрешенным режимом отладки по USB), его тут же видит утилита ADB и позволяет отлаживать. Но у такого подхода есть два очевидных минуса:
- Устройство постоянно заряжается, что пагубно влияет на аккумулятор
- От повышенного износа страдает USB-разъем на устройстве и в один прекрасный момент может сломаться
Не все знают, но утилита ADB имеет режим отладки по сети, что позволит нам организовать сей процесс через Wi-Fi и избавиться от проблем, описанных выше.
Итак все, что нам понадобится это консоль и немного времени. Стоит сразу сказать, что для включения данной фичи устройство все же придется присоединить к компьютеру по USB в первый раз. Можно обойтись и без этого, но тогда необходим root-доступ на девайсе.
Перво наперво необходимо подсоединить девайс к компьютеру и убедиться, что отладки работает (например при помощи Android Studio или Xamarin Studio).
Далее необходимо не отключая устройство запустить терминал, перейти в директорию, где находится утилита ADB, для моего пользователя команда выглядит так:
cd /Users/gratytony/Library/Android/sdk/platform-tools
Далее необходимо перезапустить ADB в режиме прослушивания TCP-порта:
adb -d tcpip 5555
В ответ должно прийти:
restarting in TCP mode port: 5555
Если в таком состоянии терминал завис — смело нажимаем Ctrl+C, по неизвестной причине иногда такое происходит. Можно не переживать — ADB перезапустился корректно.
Далее необходимо узнать IP-адрес девайса, это можно сделать через adb-shell, но есть и более простой способ — зайти в настройки устройства и просмотреть статус Wi-Fi сети, к которой оно подключено — там будет виден IP-адрес устройства.
Последнее, что нужно сделать это подключиться к устройству при помощи команды:
adb connect IP_АДРЕС_УСТРОЙСТВА:5555
В ответ должно прийти:
connected to IP_АДРЕС_УСТРОЙСТВА:5555
Все, теперь можно смело отключать устройство от USB и отлаживаться по воздуху.
Для прекращения отладки по USB нужно ввести команду:
adb -s IP_АДРЕС_УСТРОЙСТВА:5555 usb
В ответ должно прийти:
restarting in USB mode
Отладка работает хорошо, единственное условие, которое необходимо выполнить — это быстрый Wi-Fi. При маленькой скорости соединения загрузка приложения на устройство и шагание по точкам останова существенно медленнее, чем по кабелю.
UPDATE:
Если узнать IP-адрес через интерфейс Android не получается можно проделать следующие действия (при подключенном по USB устройстве). Ввести команду:
adb shell
В ответ откроется консоль на устройстве:
shell@mako:/ $
Далее необходимо ввести команду:
netcfg
В ответ появится список интерфейсов на устройстве, нас будет интересовать Wi-Fi, у меня это wlan0, рядом будет написан соответствующий интерфейс IP-адрес.
Чтобы выйти из консоли на устройстве используем команду exit.