mobile-qatoolsautomation

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.