adb для мобильного QA: 40 команд, которые экономят часы
ADB (Android Debug Bridge) — главный инструмент мобильного QA на Android. С его помощью устанавливают приложения, снимают логи, делают скриншоты, симулируют сеть, проксируют запросы и многое другое. Собрал список команд, которые реально используются на регрессе и при разборе багов — без вечных «копировать пример с StackOverflow».
Подключение и сервер
— adb devices — список подключенных устройств с их serial. Первое что проверить, если девайс «отвалился».
— adb kill-server — останавливает adb-сервер. Помогает когда команды зависают.
— adb start-server — поднимает обратно.
— adb connect <ip>:5555 — подключение к устройству по Wi-Fi (предварительно сделать adb tcpip 5555 на USB).
— adb usb — переключение обратно в USB-режим.
— adb pair <ip>:<port> — pairing на Android 11+ для wireless debugging.
Установка и удаление приложений
— adb install path/to/app.apk — установка билда.
— adb install -r path/to/app.apk — переустановка с сохранением данных.
— adb install -d path/to/app.apk — разрешить downgrade версии.
— adb uninstall com.example.app — удалить.
— adb uninstall -k com.example.app — удалить, но сохранить данные приложения.
Информация о приложении
— adb shell pm list packages — все установленные пакеты.
— adb shell pm list packages -3 — только сторонние (не системные).
— adb shell pm path com.example.app — путь к APK на устройстве.
— adb shell pm clear com.example.app — очистить данные приложения (≈ «свежий первый запуск»).
— adb shell dumpsys package com.example.app — полная информация о пакете: permissions, activities, services.
Файлы
— adb pull /sdcard/Download/log.txt ./ — скачать файл с устройства.
— adb push ./test-data.json /sdcard/Download/ — закинуть на устройство.
— adb shell ls /sdcard/ — листинг директории.
— adb shell rm /sdcard/old.log — удалить файл.
— adb shell cat /sdcard/log.txt — вывести содержимое.
Логи и диагностика
— adb logcat — поток логов в реальном времени.
— adb logcat *:E — только ошибки (E = Error).
— adb logcat -s "MyTag" — фильтр по тегу.
— adb logcat > log.txt — сохранить в файл.
— adb logcat -c — очистить буфер логов перед запуском бага.
— adb shell dumpsys — состояние всех системных служб (огромный отчёт).
— adb shell dumpsys battery — конкретно батарея.
— adb shell dumpsys meminfo com.example.app — использование памяти приложением.
Скриншоты и запись экрана
— adb shell screencap -p /sdcard/screen.png — скриншот в png.
— adb shell screenrecord /sdcard/video.mp4 — запись экрана (Ctrl+C для остановки).
— adb shell screenrecord --time-limit 30 /sdcard/video.mp4 — с лимитом по времени.
— adb shell screenrecord --bit-rate 8000000 /sdcard/video.mp4 — повышенный битрейт.
Симуляция и тестирование
— adb shell input tap 500 1500 — тап по координатам.
— adb shell input text "hello" — ввод текста.
— adb shell input keyevent KEYCODE_HOME — нажать Home.
— adb shell am start -n com.example.app/.MainActivity — запустить активити.
— adb shell am force-stop com.example.app — киллнуть приложение.
— adb shell am broadcast -a android.intent.action.BOOT_COMPLETED — отправить broadcast (для тестирования receiver’ов).
Сеть
— adb shell ip addr — IP-адреса.
— adb shell ping <host> — проверка связи.
— adb forward tcp:6123 tcp:7123 — переадресация порта с Mac на устройство.
— adb forward --list — все активные переадресации.
— adb reverse tcp:8080 tcp:8080 — наоборот, с устройства на Mac (полезно если устройство должно ходить в localhost).
Системные свойства
— adb shell getprop — все системные свойства.
— adb shell getprop ro.build.version.release — конкретно версия Android.
— adb shell setprop debug.test true — установить свойство (нужен root).
— adb root — перезапуск adb с правами root (только на debug-сборках Android).
Топ-5 команд, которые я использую чаще всего
✅ adb shell pm clear <package> — перед каждым тестом онбординга. Сохраняет часы по сравнению с переустановкой.
✅ adb logcat -c && adb logcat — очистил буфер → воспроизвёл баг → сохранил логи. Чистый снимок без шума.
✅ adb pull /sdcard/Download/... — забрать crash-репорт или артефакт теста на Mac.
✅ adb shell input keyevent 26 — заблокировать/разблокировать экран программно (тест поведения при lock screen).
✅ adb shell screenrecord — для bug-репортов GIF/video, в 10 раз информативнее чем скриншот.
Что делать прямо сейчас
— Положи этот чеклист в Notion или ~/.zshrc как alias-комментарий.
— Назначь себе одну команду в день — попробуй на тестовом девайсе.
— Когда найдёшь баг — попробуй воспроизвести через adb shell input вместо мышки. Получишь воспроизводимый сценарий, который потом можно автоматизировать.
Подробнее: Android Developer — adb documentation.