Android Debug Bridge: назначение и команды¶
Android Debug Bridge (ADB) — это универсальный инструмент командной строки, входящий в состав Android SDK Platform Tools, который обеспечивает взаимодействие между персональным компьютером и подключённым Android-устройством (смартфоном, планшетом, эмулятором, телевизором). ADB позволяет выполнять установку приложений, передачу файлов, запуск команд оболочки, чтение системных журналов и управление низкоуровневыми функциями операционной системы, что делает его ключевым средством для разработчиков, тестировщиков и специалистов по ремонту мобильной техники.
¶Архитектура и принцип работы
ADB построен по клиент-серверной архитектуре и состоит из трёх компонентов:
- Клиент — программа, запускаемая на компьютере (обычно вызывается через терминал командой
adb). - Демон (adbd) — фоновый процесс, работающий непосредственно на Android-устройстве. Он активируется при подключении устройства по USB или через сеть.
- Сервер — фоновый процесс на стороне компьютера, который управляет связью между клиентом и демоном. Сервер запускается автоматически при первом вызове клиента и занимает порт 5037.
При подключении устройства по USB используется протокол, работающий поверх USB-шины. Для сетевого подключения (ADB over Wi-Fi) применяется TCP-порт 5555. После установления соединения сервер поддерживает список подключённых устройств, а клиент отправляет команды через сервер.
¶Установка и запуск
ADB распространяется в составе пакета Android SDK Platform Tools, который доступен для операционных систем Windows, macOS и Linux. В состав дистрибутива входят исполняемые файлы adb, fastboot и набор библиотек. После распаковки архива инструмент готов к использованию из командной строки; для удобства рекомендуется добавить путь к папке Platform Tools в переменную окружения PATH.
Для работы с физическим устройством необходимо включить в настройках Android пункт «Для разработчиков» (обычно активируется семью нажатиями на номер сборки в меню «О телефоне») и разрешить отладку по USB. При первом подключении на экране устройства появляется запрос на доверие к компьютеру, который нужно подтвердить.
¶Основные команды
¶Управление устройствами
adb devices— выводит список подключённых устройств с их серийными номерами и статусом (online, offline, unauthorized). Параметр-lдобавляет подробную информацию о типе устройства.adb connect <IP:порт>— устанавливает сетевое соединение с устройством.adb disconnect— разрывает сетевое соединение.adb kill-serverиadb start-server— останавливают и запускают фоновый сервер ADB (применяется при сбоях).
¶Установка и удаление приложений
adb install <путь_к_apk>— устанавливает приложение на устройство. Флаги:-r(переустановка с сохранением данных),-d(разрешение установки более старой версии),-g(выдача всех разрешений).adb uninstall <имя_пакета>— удаляет приложение. Флаг-kсохраняет данные приложения.adb install-multiple— устанавливает несколько APK-файлов (используется для пакетов с разделёнными конфигурациями).
¶Работа с файловой системой
adb push <локальный_файл> <путь_на_устройстве>— копирует файл с компьютера на устройство.adb pull <путь_на_устройстве> <локальная_папка>— копирует файл с устройства на компьютер.adb shell— открывает интерактивную оболочку Unix-подобной системы Android. Внутри оболочки доступны стандартные команды Linux (ls, cat, rm, chmod и другие).
¶Логи и диагностика
adb logcat— выводит системные журналы (лог-каталог) в реальном времени. Фильтрация по тегам и уровням важности осуществляется флагами, напримерadb logcat -s TagName.adb bugreport— собирает полный диагностический отчёт об устройстве: логи, данные о батарее, сети, конфигурации и ошибках.adb shell dumpsys <служба>— выводит подробную информацию о состоянии конкретной системной службы (activity, battery, package и другие).
¶Управление приложениями и системой
adb shell am start -n <пакет>/<активность>— запускает указанную активность приложения.adb shell am force-stop <пакет>— принудительно останавливает приложение.adb shell pm list packages— выводит список установленных пакетов.adb shell pm clear <пакет>— очищает данные приложения (аналог «Стереть данные» в настройках).adb reboot— перезагружает устройство. Параметры:-bootloader(переход в режим загрузчика),-recovery(переход в режим восстановления).adb shell screencap <путь>— создаёт скриншот экрана и сохраняет его в указанный файл.adb shell screenrecord <путь>— записывает видео с экрана.
¶Продвинутые возможности
adb forward tcp:<порт_ПК> tcp:<порт_устройства>— перенаправляет TCP-порт компьютера на порт устройства (используется для отладки сетевых приложений).adb reverse tcp:<порт_устройства> tcp:<порт_ПК>— организует обратное перенаправление.adb backupиadb restore— создают резервную копию данных приложений и восстанавливают её (команды работают в ограниченном режиме на современных версиях Android).adb shell settings put global <параметр> <значение>— изменяет глобальные настройки системы.
¶Применение
Основная область использования ADB — разработка и отладка приложений. Среда разработки Android Studio взаимодействует с устройствами через ADB для установки отладочных сборок, просмотра логов и профилирования производительности. Инструмент также применяется для:
- Автоматизации тестирования: совместно с фреймворками (Appium, Espresso) ADB используется для запуска тестов на реальных устройствах и эмуляторах.
- Извлечения данных: позволяет копировать пользовательские файлы, базы данных приложений и системные настройки.
- Восстановления работоспособности: используется для очистки данных проблемных приложений, перезагрузки устройства в особые режимы и прошивки (через связку с fastboot).
- Работы с эмуляторами: ADB является единственным способом взаимодействия с эмуляторами Android, входящими в состав Android Studio.
- Нестандартных задач: управление телевизорами и приставками на Android TV, настройка сетевых параметров, изменение системных разрешений.
¶Ограничения и безопасность
Начиная с Android 4.2.2, для подключения по ADB требуется подтверждение доверия с экрана устройства, что предотвращает несанкционированный доступ. Однако при включённой отладке по USB злоумышленник, получивший физический доступ к компьютеру или устройству, потенциально может выполнить произвольные команды. В связи с этим рекомендуется отключать отладку по USB при повседневном использовании устройства.
На коммерческих устройствах, продаваемых в рознице, доступ к ADB в ряде случаев ограничен производителем. Начиная с Android 10, для работы с некоторыми командами (например, чтение чужих каталогов приложений) требуются привилегии root. Также существуют ограничения на подключение к устройствам с включённым шифрованием при заблокированном экране.
¶Альтернативы
Существуют графические оболочки для ADB, упрощающие работу с инструментом: QtADB, ADB GUI, 15 seconds ADB Installer (упрощает установку драйверов и Platform Tools на Windows). Для взаимодействия с устройствами без ADB используются MTP-протокол (передача файлов) и сторонние приложения для беспроводного управления, однако они предоставляют лишь ограниченный набор функций по сравнению с ADB.
¶См. также
- Fastboot — протокол и инструмент для работы с загрузчиком устройства.
- Android SDK — набор средств разработки, включающий Platform Tools.
- Root-права — получение полного доступа к файловой системе Android.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →
