Skip navigation

Android Debug Bridge (adb) – универсальный инструмент командной строки, который позволит Вам взаимодействовать с экземпляром эмулятора или подключёнными Android-устройствами. Это клиент-серверная программа, состоящая их трех компонентов:

  • Клиент, который работает на Вашем хосте разработки (компьютере разработчика). Вы можете вызвать клиента из командной строки, используя команду adb. Другие инструменты Android, такие как DDMS и плагин ADT, также создают клиентов adb.
  • Сервер, который запущен как фоновый процесс на хосте разработки. Сервер управляет обменом данными между клиентом и adb-демоном, работающем на эмуляторе или устройстве.
  • Демон, который запущен как фоновый процесс на каждом экземпляре эмулятора или устройства.

Утилиту adb Вы можете найти в <sdk>/platform-tools/.

При запуске adb-клиента, клиент сначала проверяет, запущен ли процесс сервера adb. Если нет, то он запускает процесс сервера. Когда стартует сервер, он запускает прослушивание локального порта TCP 5037 и считывает с него поступающие команды от adb-клиентов — все клиенты adb используют порт 5037 для обмена данными с сервером adb.

Затем сервер устанавливает соединения со всеми запущенными экземплярами эмуляторов/устройств. Он находит эмуляторы и устройства путем сканирования нечетных портов в диапазоне 5555…5585, диапазон, используемый эмуляторами/устройствами. Когда сервер находит демона adb, он устанавливает с ним соединение по этому порту. Имейте в виду, что каждый экземпляр эмулятора/устройства занимает пару последовательных портов — четный номер порта для подключения консоли и нечетный номер порта для adb-соединений. Например:

Emulator 1, console: 5554
Emulator 1, adb: 5555
Emulator 2, console: 5556
Emulator 2, adb: 5557
и так далее ...

Как здесь показано, экземпляр эмулятора, подключенного к adb через порт 5555 тот же самый, что прослушивает порт консоли 5554.

Как только сервер установил соединения со всеми экземплярами эмуляторов, Вы можете использовать команды adb для получения доступа к этим экземплярам. Поскольку сервер управляет соединениями с экземплярами эмуляторов/устройств и обрабатывает команды от множества клиентов adb, Вы можете управлять любым эмулятором/устройством от любого клиента (или из скрипта). 

Включение отладки ADB

Для использования adb с устройством, подключённым по USB, Вам необходимо включить отладку по USB в настройках системы устройства, в разделе «Для разработчиков».

На Android 4.2 и выше окно «Для разработчиков» скрыто по умолчанию. Для того, чтобы сделать его видимым, перейдите в Настройки -> Об устройстве и нажмите на номер версии семь раз. Вернитесь к предыдущему экрану, чтобы найти «Для разработчиков» внизу.

На некоторых устройствах окно «Для разработчиков» может быть расположено или называться иначе.

Примечание: когда Вы подключаете устройство, которое работает на Android 4.2.2 и выше, к Вашему компьютеру, система покажет диалог, запрашивающий подтвердить ключ RSA, который позволит отлаживать Android-программы через этот компьютер. Этот механизм безопасности защищает устройство пользователя, потому что он гарантирует, что отладка через USB и другие команды adb не могут быть выполнены, пока Вы явно не разблокируете устройство, выбрав подтверждение в этом диалоге. Для поддержки этой возможности требуется adb версии 1.0.31 (доступно в SDK Platform-tools r16.0.1 и выше) для отладки на устройстве, работающем на Android 4.2.2 и выше.

Дополнительные сведения о подключении к устройству через USB см. в Using hardware device.

Подключение к приставке с помощью ADB на ПК Windows

Для того чтобы установить соединение между приставкой и ПК, необходимо:

  • Открыть командную строку на ПК (путём нажатия Windows + R)
  • Запустить команду cmd
  • Перетащить adb.exe в консоль и нажмите Enter
  • Подключить adb-хост к устройству:
adb connect #.#.#.#
connected to #.#.#.#:5555

Если adb-соединение постоянно теряется:

  • Убедитесь, что Ваш хост остаётся подключённым у к той же сети, что и приставка.
  • Повторно подключитесь
  • Если это не сработает, перезагрузите Ваш adb-хост и попробуйте ещё раз сначала:
 adb kill-server

Синтаксис

Вы можете вызвать команды adb из командной строки хоста разработки или из скрипта. Общий вид команды adb следующий:

adb [-d|-e|-s <serialNumber>] <command>

Если на хосте разработки работает только один эмулятор или подключено только одно устройство, то команда adb подключится к нему по умолчанию. Если работает несколько эмуляторов или подключено несколько устройств, то нужно указывать опции -d, -e или -s, чтобы указать целевое устройство для подключения - кому предназначена команда.

Команды

В таблице ниже перечислены все поддерживаемые команды adb, а также объясняется их назначение и использование.     

Категория  

Команда

 Описание

Комментарии

Target device (целевое устройство)

-d

Направляет команду adb на любое подключенное (не эмулятор) через USB устройство.

Возвращает ошибку, если подключено больше одного USB устройства.

Target device (целевое устройство)

-e

Направляет команду adb на любой запущенный экземпляр эмулятора.

Возвращает ошибку, если запущено больше одного экземпляра эмулятора.

Target device (целевое устройство)

-s <serialNumber>

Направляет команду adb на специально указанный экземпляр эмулятора/устройства по его серийному номеру

См. раздел "Направление команд на определенно заданный экземпляр эмулятора/устройства"

General (общие команды)

devices

Выводит список всех подключенных экземпляров эмуляторов/устройств.

См. раздел "Опрос имеющихся эмуляторов/устройств".

General (общие команды)

help

Выводит список всех поддерживаемых команд adb.


General (общие команды)

version

Выводит номер версии adb.


Debug (отладка)

logcat [option] [filter-specs]

Выводит данные лога на экран.


Debug (отладка)

bugreport

Выводит данные dumpsys, dumpstate и logcat на экран (предназначено для сообщений об ошибках разработчикам).


Debug (отладка)

jdwp

Выводит список доступных процессов JDWP на указанном устройстве.

Вы можете использовать спецификацию перенаправления портов forward jdwp: < pid > для подключения к определенному процессу JDWP

Data (работа с файлами)

install <path-to-apk>

Проталкивает приложение Android (нужно указать полный путь к файлу .apk на хосте отладки) на эмулятор/устройство.


Data (работа с файлами)

pull <remote> <local>

Копирует указанный файл с эмулятора/устройства на хост отладки.


Data (работа с файлами)

push <local> <remote>

Копирует указанный файл с хоста отладки на эмулятор/устройство.


Ports and Networking (порты и сетевые содеинения)

forward <local> <remote>

Перенаправляет соединения сокета с указанного локального порта (local) в указанный удаленный порт (remote) на экземпляре эмулятора/устройства.

Спецификация порта может использовать следующие схемы:
tcp:<portnum> 
local:<UNIX domain socket name> 
dev:<character device name> 
jdwp:<pid>

Ports and Networking (порты и сетевые содеинения)

ppp <tty> [parm]…

Запускает PPP поверх USB, <tty> — tty для PPP потока

Примечание: Обратите внимание, что Вы не должны автоматически запускать PPP-соединение

Scripting (скрипты)

get-serialno

Выводит строку серийного номера экземпляра adb.

См. раздел "Опрос имеющихся эмуляторов/устройств"

Scripting (скрипты)

get-state

Выводит состояние adb на экземпляре эмулятора/устройства.


Scripting (скрипты)

wait-for-device

Блокирует выполнение, пока устройство не будет готовым (не перейдет в online) - т. е., пока состояние не станет device.


Server (управление сервером)

start-server

Проверяет, запущен ли процесс сервера adb и запускает его, если процесс сервера не запущен.


Server (управление сервером)

kill-server

Прерывает работу процесса сервера adb


Shell (командная строка)

shell

Запускает remote shell (доступ к командной строке) на экземпляре эмулятора/устройства.

См. раздел "Выдача команд Shell".

Shell (командная строка)

shell [shellCommand]

Выдает команду шелла на экземпляре эмулятора/устройства, и сразу производит выход из шелла.

См. раздел "Выдача команд Shell".

Более детальную информацию Вы можете найти на официальном веб-сайте Android Debug bridge

Need Help

Дима – эксперт по работе с приставками серии MAG и автор этой статьи.

Была ли полезна эта статья?

Да Нет

Сожалеем.
Как можно улучшить эту статью?

Мы используем cookie-файлы, чтобы оптимизировать работу сайта и предоставить вам лучший интерфейс; а также для продвижения нашей продукции. Ознакомьтесь с нашей политикой Cookie, чтобы узнать, как именно мы используем cookie-файлы, и как вы можете это контролировать.
Если вы продолжите пользоваться сайтом или закроете это сообщение — это значит, что вы согласны с нашей Политикой конфиденциальности и разрешаете использование cookie-файлов, как описано в политике Cookie.