Открыть сервис

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 →