Android Debug Bridge (adb) – основные команды

Android Debug Bridge (adb) – основные команды

t.me/qa_chillout

Android Debug Bridge (adb) – инструмент командной строки, который позволяет взаимодействовать с устройством. Команда adb упрощает выполнение различных действий с устройством, например таких как установка и отладка приложений, и обеспечивает доступ к оболочке Unix, которую можно использовать для выполнения различных команд на устройстве. Это клиент-серверная программа, состоящая из трех компонентов:

  • Клиент , отправляющий команды. Клиент работает на вашей машине разработки. Вы можете вызвать клиента из терминала командной строки, введя команду adb.
  • Демон (adbd) , запускающий команды на устройстве. Демон работает в фоновом режиме на каждом устройстве.
  • Сервер , который управляет обменом данными между клиентом и демоном. Сервер работает как фоновый процесс на вашей машине разработки.


Установка ADB

adb входит в пакет Android SDK Platform-Tools. Скачать этот пакет можно с помощью SDK Manager , который устанавливает его в android_sdk/platform-tools/. Или, если вам нужен автономный пакет Android SDK Platform-Tools, вы можете скачать его с официального сайта.


Запуск

Для работы с ADB понадобится:
1) устройство (эмулятор или физическое):
1.1 - устройство подключено по проводу, либо по Wi-Fi (см. статью как

настроить по WiFi);

1.2 - в настройках устройства  «Для разработчика» разрешить отладку по USB.

2) запущенный терминал.


Справка по командам

Просмотр справки по командам доступен, если выполнить команду:

$ adb help

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

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

$ adb devices

Как мы видим, сейчас подключено два устройства. Один эмулятор – emulator-5554 и физическое устройство – R58N85JTCGZ.


Список устройств с состоянием и описанием можно посмотреть, если выполнить команду:

$ adb devices -l


Взаимодействие с устройством

Работа с определенным устройством и просмотр состояния устройства

С помощью команды get-state вы можете узнать состояние устройства:

$ adb get-state

Однако, если выполнить эту команду – получим ошибку. Для того, чтобы работать с определенным устройством, необходимо указать нужное имя устройства с помощью опции -s:

$ adb -s emulator-5554 get-state

Команда get-state возвращает одно из значений:

  • device — работает, 
  • bootloader — загружается,
  • offline — выключено.

Перезагрузка устройства

Вам необходимо перезагрузить устройство, для этого можно воспользоваться одной из трех команд, в зависимости от целей:

  • $ adb reboot – перезагрузка устройства;
  • $ adb reboot recovery – перезагрузка устройства в режиме восстановления (recovery);
  • $ adb reboot bootloader – перезагрузка устройства в режиме fastboot для дальнейшего выполнения fastboot-команд.


Работа с приложениями

Установка приложения

Установка приложения осуществляется с помощью команды adb install , для этого необходимо указать путь до приложения:

С помощью команды:

$ adb install -f /path/some_name.apk – можно выполнить установку приложения во внутреннюю память.

Удаление приложения

Удаление приложения осуществляется с помощью команды adb uninstall , для этого необходимо указать Bundle ID приложения:

Переустановка приложения

Переустановка приложения осуществляется с помощью команды
$ adb install -r /path/some_name.apk
 – переустановка приложения с сохранением пользовательских данных:

Информация о приложении

Команда adb shell dumpsys package com.app.example – вывод информации о приложении:


Список установленных приложений

Список установленных приложений можно вывести с помощью команды:
$ adb shell pm list packages
:

Пермишены

Для работы с пермишенами существуют команды:

  • $ adb shell pm grant com.app.example android.permission.CAMERA – выдача разрешения приложению на доступ к камере;
  • $ adb shell pm revoke com.app.example android.permission.CAMERA – блокировка доступа приложению к камере:
у приложения есть права на доступ к камере
у приложения нет прав на доступ к камере после выполнения команды

Логи устройства

При помощи этой команды можно вывести логи с устройства:
$ adb logcat 

Также можно вывести логи в файл:
$ adb logcat > ~/Desktop/log.txt 

В записях логов указаны приоритеты:

  • V – verbose (это самый низкий приоритет);
  • D – debug;
  • I – info;
  • W – warning;
  • E – error;
  • F – fatal;
  • S – silent (это самый высокий приоритет).

Фильтровать сообщения по приоритету можно:

$ adb logcat '*:V'


Очистить кэш приложения

При тестировании часто приходится чистить кэш приложения, делается это с помощью команды:
$ adb shell pm clear com.allgoritm.youla 

Остановить все запущенные приложения

Убить все запущенные приложения можно командой:

$ adb shell am kill-all


Полезности при тестировании

Скриншот экрана

Довольно часто приходится делать скриншоты. С помощью команды
$ adb shell screencap /path/file_name.png можно сделать скриншот экрана:

где /path/file_name.png  – путь к файлу со скриншотом (куда его поместим на устройстве) и его имя (file_name.png)

Скриншот можно будет найти в галерее устройства.


Запись экрана

Запись видео возможно с помощью команды
$ adb shell screenrecord /path/file_name.mp4:

где /path/file_name.mp4: – путь к файлу с видео (куда его поместим на устройстве) и его имя (file_name.mp4)

Отправка файлов на устройство

Для отправки файла на устройство можно воспользоваться командой:

$ adb push /local_path_on_pc /remote_path_on_device/file_name:

Загрузка файлов с устройства

Для загрузки например скриншота с устройства можно воспользоваться командой:

$ adb pull /remote_path_on_device/file_name /local_path_on_pc:


Эмуляция звонка c устройства

Совершить звонок на нужный номер телефона можно с помощью команды:

$ adb shell am start -a android.intent.action.CALL tel:79998887766

Открыть страницу в браузере

Открыть страницу в браузере можно с помощью команды:

$ adb shell am start -a android.intent.action.VIEW 'http://youla.ru'

Разблокировка устройства

С помощью следующей команды можно разблокировать телефон. Для этого необходимо ввести:

$ input keyevent 82

Погасит экран команда keyevent 26 (это нажатие кнопки Power). Можно изменить цифры:

  • 3 — Home,
  • 4 — Back,
  • 24 — Volume Up,
  • 25 — Volume Down,
  • 27 — физическая кнопка Camera. 

Отключить/включить WiFi

Включить передачу данных через мобильную сеть или управлять Wi-Fi можно с помощью команд:

$ adb shell svc data enable
$ adb shell svc wifi disable
$ adb shell svc wifi enable

Также можно заставить смартфон оставаться включенным при подключении к USB-порту/зарядке/Wi-Fi-сети или всегда:

$ adb shell svc power stayon usb
$ adb shell svc power stayon ac
$ adb shell svc power stayon wireless
$ adb shell svc power stayon true

Заполнить поле текстом

Команда для вставки текста в текущее поле:

$ adb shell input text "some"

У команды input есть дополнительные опции:

$ adb shell input [<source>] <command> [<arg>…]

В качестве источника можно указывать trackball, joystick, touchnavigation, mouse, keyboard, gamepad, touchpad, dpad, stylus, touchscreen. В качестве команд будут:

  • text (Default: touchscreen) [delay]
  • keyevent [–longpress] … (Default: keyboard)
  • tap (Default: touchscreen)
  • swipe [duration(ms)] (Default: touchscreen)
  • press (Default: trackball)
  • roll (Default: trackball)

Батарейка в процентах

Батарейка в процентах выводится с помощью команды (Android 4.4 и выше):

$ adb shell content insert --uri content://settings/system --bind name:s:status_bar_show_battery_percent --bind value:i:1


Режим энергосбережения

Перевод смартфона в режим энергосбережения Doze (Android M+):

$ adb shell dumpsys battery unplug
$ adb shell dumpsys deviceidle step


Бэкап приложений

В Android есть встроенные функции бэкапа, которые также можно запустить с помощью командной строки. Для этого используется команда adb backup и набор опций:

$ adb backup [опции] <приложения>
  • -f указывает имя создаваемого файла и его расположение на компе. При отсутствии ключа будет создан файл backup.ab в текущем каталоге;
  • -apk|-noapk указывает, включать ли в бэкап только данные приложения или сам .apk тоже (по умолчанию не включает);
  • -obb|-noobb указывает, включать ли в бэкап расширения .obb для приложений (по умолчанию не включает);
  • -shared|-noshared указывает, включать ли в бэкап содержимое приложения на SD-карте (по умолчанию не включает);
  • -all указывает на необходимость бэкапа всех установленных приложений;
  • -system|-nosystem указывает, включать ли в бэкап системные приложения (по умолчанию включает).

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

$ adb backup -f ~/Documents/backup.ab -apk -all -nosystem

После ввода необходимо подтвердить начало выполнения бэкапа на самом устройстве.

Для восстановления полученного бэкапа нужно выполнить соответствующую команду:

$ adb restore ~/Documents/backup.ab


Резюме

Пользуйтесь командами, экономьте время и шарьте знания =)


Обсудить статью, узнать больше можно в телеграм канале «Тестировщики нужны».

Report Page