
Это обзорная статья для таких же, как и я, которые начали программировать уже в тот момент, когда весь функционал командной строки обрел кнопочки в интерфейсе.
В этой инструкции хочу рассказать о командах adb, которые использовать легче, чем делать то же самое через UI Android Studio или настройки Android.
Основная задача — показать возможности adb, которые избавят от рутинных шагов при разработке/отладке. Например, позволят быстро переключать светлую тему на темную.
Рассмотрим те команды, которые действительно пригождаются хотя бы раз в пару дней. Для остального есть документация.
Что такое ADB
adb (Android Debug Bridge) — это программа для управления андроидом через командную строку.
Hidden text
https://developer.android.com/tools/adb — тут есть более правильное определение + объяснение, почему adb называют клиент-серверным приложением.
Сменить тему (светлая/темная)
// перейти на темную тему
adb shell cmd uimode night yes
// перейти на светлую тему
adb shell cmd uimode night noПринудительная остановка приложения
adb shell am force-stop ru.test.appУдалить кэш и данные приложения
adb shell pm clearВключить/выключить Wi-Fi
adb shell svc wifi enable
adb shell svc wifi disableУдалить файл
Без root-прав некоторые директории будут недоступны через adb
adb shell rm "/records/albums/music.mp3"Отправить Intent
Пригождается, когда нужно сэмулировать Intent от системы:
adb shell am broadcast -a android.media.tv.action.INITIALIZE_PROGRAMS -n ru.app.test/ru.app.test.featureName.TestBroadcastReceiverОтправить deeplink:
adb shell am start -a android.intent.action.VIEW -d "mydeeplink"Или запустить Activity:
adb shell am start -n ru.test.app/.feature.main.MyActivityУстановить proxy ip
Если вы пользуетесь Charles/Proxyman или другой программой для работы с трафиком, то можете быстро установить proxy ip командой:
adb shell settings put global http_proxy 192.168.1.12:8888Сбросить proxy ip:
adb shell settings put global http_proxy :0Изменить плотность экрана
Удобно для тестирования UI на разных разрешениях:
adb shell wm density 160
например
adb shell wm density 160Узнать, какая изначальная плотность экрана:
adb shell wm density
// Physical density: 440
// Override density: 160Установить apk
adb install -d -r -g "C://downloads/.../test.apk"аргументы (лишние убрать):
-r — сохранить данные приложения (например, информацию в shared preferences)
-g — выдать все разрешение, запрашиваемые в манифесте
-d — отключает проверку версии приложения (по умолчанию версия устанавливаемого приложения должна быть равна или больше версии установленного)
Подключение по Wi-Fi
Необходимо, чтобы компьютер и телефон находились в одной сети. На Android нужно включить "Отладку по Wi-Fi" в настройках разработчика.
adb connect ip:port
например:
adb connect 192.168.1.12
или
adb connect 192.168.1.12:5555Список подключенных устройств и их ip
adb devicesВыбор определенного устройства
Если вы работаете с несколькими устройствами, то чтобы отправить любую команду на определенное устройство (а не получать ошибку List of devices attached), можно передать аргумент -s ip
adb -s 192.168.1.12 uninstall ru.test.appЗаключение
Когда определите для себя топ удобных команд, можно сделать для них alias (псевдонимы для длинных команд). Тогда использование adb станет действительно удобнее, чем GUI.

