Pull to refresh

Прикладное adb (Android Debug Bridge) для зумеров

Level of difficultyEasy
Reading time2 min
Views18K

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

В этой инструкции хочу рассказать о командах adb, которые использовать легче, чем делать то же самое через UI Android Studio или настройки Android.

Основная задача — показать возможности adb, которые избавят от рутинных шагов при разработке/отладке. Например, позволят быстро переключать светлую тему на темную.

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

Денис Долгополов

Блог об Android разработке — https://t.me/dolgo_polo_dev

Что такое 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.

Tags:
Hubs:
Total votes 7: ↑7 and ↓0+7
Comments11

Articles