AndroidDebugBridge
public class AndroidDebugBridge
extends Object
| java.lang.Object | |
| ↳ | com.android.tradefed.device.server.AndroidDebugBridge |
Подключение к отладочному мосту Android на стороне хоста (adb)
Это центральный узел для связи с любыми устройствами, эмуляторами или приложениями, работающими на них.
Перед выполнением каких-либо действий необходимо вызвать функцию init() .
Краткое содержание
Вложенные классы | |
|---|---|
interface | AndroidDebugBridge.IDebugBridgeChangeListener Классы, реализующие этот интерфейс, предоставляют метод, который обрабатывает изменения в |
interface | AndroidDebugBridge.IDeviceChangeListener Классы, реализующие этот интерфейс, предоставляют методы, которые обрабатывают добавление, удаление и изменение |
Константы | |
|---|---|
int | DEFAULT_START_ADB_TIMEOUT_MILLISТайм-аут по умолчанию, используемый при запуске сервера ADB. |
Поля | |
|---|---|
public static final AdbVersion | MIN_ADB_VERSIONМинимальная и максимальная поддерживаемые версии adb. |
Общедоступные методы | |
|---|---|
static void | addDebugBridgeChangeListener ( AndroidDebugBridge.IDebugBridgeChangeListener listener) Добавляет слушатель в коллекцию слушателей, которые будут уведомлены о подключении нового |
static void | addDeviceChangeListener ( AndroidDebugBridge.IDeviceChangeListener listener) Добавляет слушатель в коллекцию слушателей, которые будут получать уведомления о подключении, отключении |
static AndroidDebugBridge | createBridge (String osLocation, boolean forceNewBridge, long timeout, TimeUnit unit)Создает новый отладочный мост из места расположения инструмента командной строки. |
static AndroidDebugBridge | createBridge (long timeout, TimeUnit unit) Создаёт объект |
static AndroidDebugBridge | createBridge (String osLocation, boolean forceNewBridge) Этот метод устарел. Он может зависнуть, если ADB не отвечает. Используйте вместо него |
static AndroidDebugBridge | createBridge () Этот метод устарел. Он может зависнуть, если ADB не отвечает. Используйте вместо него |
static void | deviceChanged ( IDevice device, int changeMask) Уведомить слушателя об изменении |
static void | deviceConnected ( IDevice device) Уведомить слушателя о новом |
static void | deviceDisconnected ( IDevice device) Уведомить слушателя о разрыве соединения с |
static void | disableFakeAdbServerMode () |
static void | disconnectBridge () Этот метод устарел. Он может зависнуть, если ADB не отвечает. Используйте |
static boolean | disconnectBridge (long timeout, TimeUnit unit)Отключает текущий отладочный мост и уничтожает объект. |
static void | enableFakeAdbServerMode (int port) |
static ListenableFuture< AdbVersion > | getAdbVersion (File adb) |
static AndroidDebugBridge | getBridge ()Возвращает текущий отладочный мост. |
int | getConnectionAttemptCount () Возвращает количество попыток подключения объекта |
static int | getDebugBridgeChangeListenerCount () |
static int | getDeviceChangeListenerCount () |
IDevice[] | getDevices ()Возвращает устройства. |
ListenableFuture<List< AdbDevice >> | getRawDeviceList ()Возвращает набор устройств, указанных в командной строке adb. |
int | getRestartAttemptCount () Возвращает количество попыток перезапуска демона adb, предпринятых объектом |
static InetSocketAddress | getSocketAddress () Этот метод устарел. Он возвращает адрес локального сервера, который может не совпадать с адресом, используемым сервером ADB. Например, JVM может находиться в режиме IPv4, в то время как сервер ADB размещен на локальном адресе IPv6. Для установления соединения с сервером ADB предпочтительнее использовать |
static ListenableFuture<String> | getVirtualDeviceId (ListeningExecutorService service, File adb, IDevice device) |
boolean | hasInitialDeviceList ()Возвращает значение, указывающее, получил ли мост исходный список из adb после своего создания. |
static void | init ( AdbInitOptions options) Аналогично функции |
static void | init (boolean useLibusb, Map<String, String> env) Аналогично функции |
static void | init () Инициализирует библиотеку |
static void | initIfNeeded ()Библиотека инициализируется только при необходимости; устарела для использования вне тестовых целей. |
boolean | isConnected () Возвращает значение, указывающее, подключен ли объект |
static boolean | isUserManagedAdbMode () |
static SocketChannel | openConnection ()Предпринимаются попытки подключения к локальному серверу отладки Android. |
static void | removeDebugBridgeChangeListener ( AndroidDebugBridge.IDebugBridgeChangeListener listener) Удаляет слушателя из коллекции слушателей, которые будут уведомлены о запуске нового |
static void | removeDeviceChangeListener ( AndroidDebugBridge.IDeviceChangeListener listener) Удаляет слушателя из коллекции слушателей, которые будут получать уведомления о подключении, отключении |
boolean | restart (long timeout, TimeUnit unit)Приводит к перезапуску adb, но не окружающих его служб. |
boolean | restart () Этот метод устарел. Он может привести к зависанию, если ADB не отвечает. Вместо него используйте |
boolean | startAdb (long timeout, TimeUnit unit)Запускает сервер на стороне хоста adb. |
static void | terminate ()Завершает работу библиотеки ddm. |
Константы
DEFAULT_START_ADB_TIMEOUT_MILLIS
public static final int DEFAULT_START_ADB_TIMEOUT_MILLIS
Тайм-аут по умолчанию, используемый при запуске сервера ADB.
Постоянное значение: 20000 (0x00004e20)
Поля
MIN_ADB_VERSION
public static final AdbVersion MIN_ADB_VERSION
Минимальная и максимальная поддерживаемые версии adb. Эти значения соответствуют переменной ADB_SERVER_VERSION, указанной в файле //device/tools/adb/adb.h
Общедоступные методы
addDebugBridgeChangeListener
public static void addDebugBridgeChangeListener (AndroidDebugBridge.IDebugBridgeChangeListener listener)
Добавляет слушатель в коллекцию слушателей, которые будут уведомлены о подключении нового AndroidDebugBridge путем отправки ему одного из сообщений, определенных в интерфейсе IDebugBridgeChangeListener .
| Параметры | |
|---|---|
listener | AndroidDebugBridge.IDebugBridgeChangeListener : Слушатель, которому следует отправлять уведомление. |
addDeviceChangElistener
public static void addDeviceChangeListener (AndroidDebugBridge.IDeviceChangeListener listener)
Добавляет слушатель в коллекцию слушателей, которые будут получать уведомления о подключении, отключении IDevice или об изменении его свойств или списка ERROR(/ClientImpl) путем отправки ему одного из сообщений, определенных в интерфейсе IDeviceChangeListener .
| Параметры | |
|---|---|
listener | AndroidDebugBridge.IDeviceChangeListener : Слушатель, которому следует отправить уведомление. |
создать мост
public static AndroidDebugBridge createBridge (String osLocation, boolean forceNewBridge, long timeout, TimeUnit unit)
Создает новый отладочный мост из места расположения инструмента командной строки.
Любой существующий сервер будет отключен, если только его местоположение не совпадает и forceNewBridge не установлен в значение false.
| Параметры | |
|---|---|
osLocation | String : адрес инструмента командной строки 'adb'. |
forceNewBridge | boolean : принудительное создание нового моста, даже если мост с тем же местоположением уже существует. |
timeout | long : максимальное время ожидания |
unit | TimeUnit : единица измерения времени, указанная в аргументе timeout |
| Возвраты | |
|---|---|
AndroidDebugBridge | подключенный мост или null, если при создании моста или подключении к нему возникли ошибки. |
создать мост
public static AndroidDebugBridge createBridge (long timeout, TimeUnit unit)
Создаёт объект AndroidDebugBridge , не связанный ни с каким конкретным исполняемым файлом.
Этот мост будет ожидать, что adb запущен. Он не сможет запускать/останавливать/перезапускать adb.
Если мост уже запущен, он возвращается напрямую без изменений (аналогично вызову метода getBridge() ).
| Параметры | |
|---|---|
timeout | long |
unit | TimeUnit |
| Возвраты | |
|---|---|
AndroidDebugBridge | подключенный мост или null, если при создании моста или подключении к нему возникли ошибки. |
создать мост
public static AndroidDebugBridge createBridge (String osLocation, boolean forceNewBridge)
Этот метод устарел.
Этот метод может зависнуть, если ADB не отвечает. Вместо него используйте createBridge(String,boolean,long,TimeUnit) .
Создает новый отладочный мост из места расположения инструмента командной строки.
Любой существующий сервер будет отключен, если только его местоположение не совпадает и forceNewBridge не установлен в значение false.
| Параметры | |
|---|---|
osLocation | String : адрес инструмента командной строки 'adb'. |
forceNewBridge | boolean : принудительное создание нового моста, даже если мост с тем же местоположением уже существует. |
| Возвраты | |
|---|---|
AndroidDebugBridge | подключенный мост или null, если при создании моста или подключении к нему возникли ошибки. |
создать мост
public static AndroidDebugBridge createBridge ()
Этот метод устарел.
Этот метод может зависнуть, если ADB не отвечает. Вместо него используйте createBridge(long,TimeUnit) .
Создаёт объект AndroidDebugBridge , не связанный ни с каким конкретным исполняемым файлом.
Этот мост будет ожидать, что adb запущен. Он не сможет запускать/останавливать/перезапускать adb.
Если мост уже запущен, он возвращается напрямую без изменений (аналогично вызову метода getBridge() ).
| Возвраты | |
|---|---|
AndroidDebugBridge | подключенный мост или null, если при создании моста или подключении к нему возникли ошибки. |
устройствоИзменено
public static void deviceChanged (IDevice device, int changeMask)
Уведомить слушателя об изменении IDevice .
Уведомление слушателей осуществляется в синхронизированном блоке. Важно понимать, что слушатели потенциально могут обращаться к различным методам IDevice , а также getDevices() , которые используют внутренние блокировки.
| Параметры | |
|---|---|
device | IDevice : модифицированная версия IDevice . |
changeMask | int |
устройствоПодключено
public static void deviceConnected (IDevice device)
Уведомить слушателя о новом IDevice .
Уведомление слушателей осуществляется в синхронизированном блоке. Важно понимать, что слушатели потенциально могут обращаться к различным методам IDevice , а также getDevices() , которые используют внутренние блокировки.
| Параметры | |
|---|---|
device | IDevice : новый IDevice . |
устройствоОтключено
public static void deviceDisconnected (IDevice device)
Уведомить слушателя о разрыве соединения с IDevice .
Уведомление слушателей осуществляется в синхронизированном блоке. Важно понимать, что слушатели потенциально могут обращаться к различным методам IDevice , а также getDevices() , которые используют внутренние блокировки.
| Параметры | |
|---|---|
device | IDevice : отключенное IDevice . |
disableFakeAdbServerMode
public static void disableFakeAdbServerMode ()
disconnectBridge
public static void disconnectBridge ()
Этот метод устарел.
Этот метод может зависнуть, если ADB не отвечает. Вместо него используйте disconnectBridge(long,TimeUnit) .
Отключает текущий отладочный мост и уничтожает объект. Для этого потребуется создать новый объект с помощью createBridge(String,boolean) .
Это также останавливает текущий сервер adb.
disconnectBridge
public static boolean disconnectBridge (long timeout,
TimeUnit unit)Отключает текущий отладочный мост и уничтожает объект. Для этого потребуется создать новый объект с помощью createBridge(String,boolean) .
Это также останавливает текущий сервер adb.
| Параметры | |
|---|---|
timeout | long |
unit | TimeUnit |
| Возвраты | |
|---|---|
boolean | true , если метод успешно выполняется в течение указанного времени ожидания. |
enableFakeAdbServerMode
public static void enableFakeAdbServerMode (int port)
| Параметры | |
|---|---|
port | int |
getAdbVersion
public static ListenableFuture<AdbVersion> getAdbVersion (File adb)
| Параметры | |
|---|---|
adb | File |
| Возвраты | |
|---|---|
ListenableFuture< AdbVersion > | |
getBridge
public static AndroidDebugBridge getBridge ()
Возвращает текущий отладочный мост. Может быть null если мост не был создан.
| Возвраты | |
|---|---|
AndroidDebugBridge | |
getConnectionAttemptCount
public int getConnectionAttemptCount ()
Возвращает количество попыток подключения объекта AndroidDebugBridge к демону adb.
| Возвраты | |
|---|---|
int | |
getDebugBridgeChangeListenerCount
public static int getDebugBridgeChangeListenerCount ()
| Возвраты | |
|---|---|
int | |
getDeviceChangeListenerCount
public static int getDeviceChangeListenerCount ()
| Возвраты | |
|---|---|
int | |
getRawDeviceList
public ListenableFuture<List<AdbDevice>> getRawDeviceList ()
Возвращает набор устройств, указанных в командной строке adb. В основном это предназначено для Connection Assistant или других диагностических инструментов, которым необходимо проверить состояние списка getDevices() через другой канал. Коду, которому просто нужен доступ к списку устройств, следует вместо этого вызывать getDevices() .
| Возвраты | |
|---|---|
ListenableFuture<List< AdbDevice >> | |
getRestartAttemptCount
public int getRestartAttemptCount ()
Возвращает количество попыток перезапуска демона adb, предпринятых объектом AndroidDebugBridge .
| Возвраты | |
|---|---|
int | |
getSocketAddress
public static InetSocketAddress getSocketAddress ()
Этот метод устарел.
Этот метод возвращает адрес локального сервера, который может не совпадать с адресом, используемым сервером ADB. Например, JVM может находиться в режиме IPv4, в то время как сервер ADB размещен на локальном адресе IPv6. При установлении соединения с сервером ADB предпочтительнее использовать openConnection() .
Возвращает адрес сокета ADB-сервера на хосте.
Этот метод попытается вернуть заведомо рабочий адрес сокета, открыв канал связи с сервером ADB. Будут предприняты попытки подключения как к IPv4, так и к IPv6-адресу замыкания. В случае, если ни один из них не сможет подключиться, метод вернется к использованию адреса замыкания, предпочитаемого JVM. Такая логика возврата необходима для предотвращения сбоев в работе API.
Если включен режим фиктивного ADB-сервера, этот метод автоматически переключится на устаревшую реализацию, не пытаясь подключиться к ADB.
| Возвраты | |
|---|---|
InetSocketAddress | |
getVirtualDeviceId
public static ListenableFuture<String> getVirtualDeviceId (ListeningExecutorService service,
File adb,
IDevice device)| Параметры | |
|---|---|
service | ListeningExecutorService |
adb | File |
device | IDevice |
| Возвраты | |
|---|---|
ListenableFuture<String> | |
hasInitialDeviceList
public boolean hasInitialDeviceList ()
Возвращает значение, указывающее, получил ли мост исходный список из adb после своего создания.
Вызов метода getDevices() сразу после createBridge(String,boolean) обычно приводит к получению пустого списка. Это связано с внутренним механизмом асинхронной связи с adb , который не гарантирует, что список IDevice будет сформирован до вызова getDevices() .
Рекомендуемый способ получения списка объектов IDevice — создание объекта IDeviceChangeListener .
| Возвраты | |
|---|---|
boolean | |
инициализация
public static void init (AdbInitOptions options)
Аналогично функции init() , с возможностью передачи пользовательского набора переменных окружения.
| Параметры | |
|---|---|
options | AdbInitOptions |
инициализация
public static void init (boolean useLibusb,
Map<String, String> env)Аналогично функции init() , с возможностью включения libusb и передачи пользовательского набора переменных окружения.
| Параметры | |
|---|---|
useLibusb | boolean |
env | Map |
инициализация
public static void init ()
Инициализирует библиотеку ddm .
Этот метод необходимо вызвать один раз перед любым вызовом функции createBridge(String,boolean) .
Настройки ddmlib также следует инициализировать значениями по умолчанию, которые были изменены по сравнению со значениями по умолчанию.
При завершении работы приложения следует вызвать terminate() .
initIfNeeded
public static void initIfNeeded ()
Библиотека инициализируется только при необходимости; устарела для использования вне тестовых целей.
См. также:
isConnected
public boolean isConnected ()
Возвращает значение, указывающее, подключен ли объект AndroidDebugBridge к демону adb.
| Возвраты | |
|---|---|
boolean | |
isUserManagedAdbMode
public static boolean isUserManagedAdbMode ()
| Возвраты | |
|---|---|
boolean | При работе в режиме управления ADB пользователем, где ddmlib не будет и не должен управлять сервером ADB. |
открытое соединение
public static SocketChannel openConnection ()
Предпринимаются попытки подключения к локальному серверу отладки Android.
| Возвраты | |
|---|---|
SocketChannel | подключенный разъем в случае успеха |
| Броски | |
|---|---|
IOException | должны возникать ошибки при открытии соединения. |
removeDebugBridgeChangElistener
public static void removeDebugBridgeChangeListener (AndroidDebugBridge.IDebugBridgeChangeListener listener)
Удаляет слушателя из коллекции слушателей, которые будут уведомлены о запуске нового AndroidDebugBridge .
| Параметры | |
|---|---|
listener | AndroidDebugBridge.IDebugBridgeChangeListener : Слушатель, которому больше не следует отправлять уведомления. |
removeDeviceChangListener
public static void removeDeviceChangeListener (AndroidDebugBridge.IDeviceChangeListener listener)
Удаляет слушателя из коллекции слушателей, которые будут получать уведомления о подключении, отключении IDevice или об изменении его свойств или списка ERROR(/ClientImpl) .
| Параметры | |
|---|---|
listener | AndroidDebugBridge.IDeviceChangeListener : Слушатель, которому больше не следует отправлять уведомления. |
перезапуск
public boolean restart (long timeout,
TimeUnit unit)Приводит к перезапуску adb, но не окружающих его служб.
| Параметры | |
|---|---|
timeout | long |
unit | TimeUnit |
| Возвраты | |
|---|---|
boolean | истина в случае успеха. |
перезапуск
public boolean restart ()
Этот метод устарел.
Этот метод может зависнуть, если ADB не отвечает. Вместо него используйте restart(long,TimeUnit) .
Приводит к перезапуску adb, но не окружающих его служб.
| Возвраты | |
|---|---|
boolean | истина в случае успеха. |
startAdb
public boolean startAdb (long timeout,
TimeUnit unit)Запускает сервер ADB на стороне хоста. Этот метод не следует использовать при работе с управляемым пользователем сервером ADB, поскольку жизненный цикл сервера должен управляться пользователем, а не ddmlib.
| Параметры | |
|---|---|
timeout | long |
unit | TimeUnit |
| Возвраты | |
|---|---|
boolean | истинно, если успех |
завершить
public static void terminate ()
Завершает работу библиотеки ddm. Эту функцию необходимо вызвать при завершении работы приложения.
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2026-06-22 UTC.