ADB в Android: как управлять устройством через командную строку
ADB (Android Debug Bridge) — это мост между ПК и Android: он позволяет отлаживать, копировать файлы, устанавливать APK, снимать скриншоты и управлять устройством через терминал. Ниже — быстрый практический набор команд и шаги, чтобы начать работать сразу.
Установка и подключение
- Установите Platform Tools (adb) — через пакетный менеджер или скачайте и распакуйте platform-tools, затем добавьте в PATH.
- Windows: распакуйте в C:\platform-tools и добавьте в PATH, проверьте
adb version. - macOS (M1/M2):
brew install android-platform-tools. - Ubuntu:
sudo apt install android-tools-adb.
- Windows: распакуйте в C:\platform-tools и добавьте в PATH, проверьте
На macOS M1/M2 Homebrew упрощает установку и избавляет от ручной настройки PATH.
- Включите режим разработчика и отладку по USB: Настройки → О телефоне → 7 тапов по «Номер сборки» → Параметры разработчика → Отладка по USB.
- Подключите USB-кабель (убедитесь, что кабель поддерживает передачу данных), разблокируйте экран и подтвердите запрос на разрешение отладки.
- Проверьте связь:
adb devices— устройство в списке (статус "device"). Если "unauthorized" — отклоните и подтвердите снова.
Базовые команды, которые нужны чаще всего
Ниже — группировка команд с кратким назначением. Используйте adb -s <ID> при наличии нескольких устройств.
Работа с shell и перезагрузка
adb shell— открыть shell на устройстве.adb reboot— перезагрузка.adb reboot recovery/adb reboot bootloader— загрузка в recovery/bootloader.adb kill-server && adb start-server— перезапуск демона adb.
Установка и управление приложениями
adb install app.apk— установить APK (используйте-rдля замены).adb uninstall com.example.app— удалить приложение.adb shell pm list packages— список пакетов.adb shell pm clear com.example.app— очистить данные приложения.
Файлы и хранилище
adb push localfile /sdcard/— скопировать на устройство.adb pull /sdcard/file.txt— скопировать с устройства.adb shell df -h— проверить место.adb shell rm -rf /sdcard/папка— удалить файлы (будьте осторожны).
Логи и скриншоты
adb logcat— живые логи (Ctrl+C для выхода).adb logcat -s MyTag:V— фильтр по тэгу.adb shell screencap /sdcard/screen.png→adb pull /sdcard/screen.png.adb shell screenrecord /sdcard/video.mp4(по умолчанию до 3 минут).
Действия и диагностика
adb shell dumpsys battery— информация о батарее.adb shell input keyevent 26— блокировка/включение экрана (KEYCODE_26).adb shell am force-stop com.example.app— принудительная остановка.adb shell top/adb shell ps— процессы и нагрузка.
Подключение по Wi‑Fi
- На проводном подключении:
adb tcpip 5555. - Отключите USB, затем:
adb connect <IP_устройства>:5555. - Вернуться к USB:
adb usb.
Команда adb shell su требует root — без root многие системные изменения недоступны. Не используйте системные команды без уверенности: можно повредить систему.
Работа с автоматизацией и простые скрипты
- Простая установка нескольких APK:
for apk in *.apk; do adb install "$apk"; done - Логирование в файл:
adb logcat -v time > device-logs.txt - Удаление всех кэшей приложения (пример):
adb shell pm list packages -3 | cut -f2 -d: | xargs -I{} adb shell pm clear {}— используйте осторожно.
Частые ошибки
- Device unauthorized — повторно разрешите отладку на устройстве, удалите «Отладку по USB» в настройках авторизаций и попробуйте снова.
- No devices/emulator — проверьте кабель (должен быть дата-кабель), включена ли отладка, драйверы на Windows.
- Device offline — перезапустите adb:
adb kill-server && adb start-server. - Права доступа на файлы — некоторые каталоги недоступны без root; используйте публичные папки (/sdcard) для обмена файлами.
При нескольких устройствах используйте ключ -s <ID>: adb -s emulator-5554 shell.
FAQ
- Нужны ли root-права для ADB? Нет, большинство операций доступны без root. Root нужен для системных изменений и доступа к защищённым разделам.
- Как вернуть USB-соединение после Wi‑Fi? Подключите USB:
adb usb. - Как фильтровать логи по приложению? Знайте тег или PID:
adb logcat | grep com.example.appили используйте-sдля тега. - Можно ли автоматизировать бэкапы? Да:
adb pull /sdcard/для данных приложений; для полного бэкапа используйтеadb backup(ограничено и зависит от версии Android).
Освойте эти команды на эмуляторе прежде чем применять на основном устройстве. Если нужно, подготовлю готовые скрипты для частых задач (установка набора APK, получение логов, резервное копирование).