AndroidDebugBridge
public class AndroidDebugBridge
extends Object
| java.lang.Object | |
| ↳ | com.android.tradefed.device.server.AndroidDebugBridge |
Подключение к отладочному мосту Android на стороне хоста (adb)
Это центральная точка для связи с любыми устройствами, эмуляторами или приложениями, работающими на них.
init(boolean) должен быть вызван до того, как что-либо будет выполнено.
Краткое содержание
Вложенные классы | |
|---|---|
interface | AndroidDebugBridge.IClientChangeListener Классы, реализующие этот интерфейс, предоставляют методы, обрабатывающие изменения |
interface | AndroidDebugBridge.IDebugBridgeChangeListener Классы, реализующие этот интерфейс, предоставляют метод, который обрабатывает изменения |
interface | AndroidDebugBridge.IDeviceChangeListener Классы, реализующие этот интерфейс, предоставляют методы, которые отвечают за добавление, удаление и изменение |
Константы | |
|---|---|
int | DEFAULT_START_ADB_TIMEOUT_MILLISТайм-аут по умолчанию, используемый при запуске сервера ADB |
Поля | |
|---|---|
public static final AdbVersion | MIN_ADB_VERSIONПоддерживаемая минимальная и максимальная версия adb. |
Публичные методы | |
|---|---|
static void | addClientChangeListener ( AndroidDebugBridge.IClientChangeListener listener) Добавляет прослушиватель в коллекцию прослушивателей, которые будут уведомлены об изменении свойства |
static void | addDebugBridgeChangeListener ( AndroidDebugBridge.IDebugBridgeChangeListener listener) Добавляет прослушиватель в коллекцию прослушивателей, которые будут уведомлены при подключении нового |
static void | addDeviceChangeListener ( AndroidDebugBridge.IDeviceChangeListener listener) Добавляет прослушиватель в коллекцию прослушивателей, которые будут уведомлены при подключении, отключении |
static void | clientChanged ( ClientImpl client, int changeMask) Уведомить слушателя об измененном |
static AndroidDebugBridge | createBridge (long timeout, TimeUnit unit) Создает |
static AndroidDebugBridge | createBridge (String osLocation, boolean forceNewBridge) Этот метод устарел. Он может зависнуть, если ADB не отвечает. Вместо него используйте |
static AndroidDebugBridge | createBridge () Этот метод устарел. Он может зависнуть, если ADB не отвечает. Вместо него используйте |
static AndroidDebugBridge | createBridge (String osLocation, boolean forceNewBridge, long timeout, TimeUnit unit)Создает новый отладочный мост из расположения инструмента командной строки. |
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 ()Возвращает текущий отладочный мост. |
static boolean | getClientSupport () Возвращает информацию о том, настроена ли библиотека ddmlib для поддержки мониторинга и взаимодействия с |
int | getConnectionAttemptCount () Возвращает количество попыток объекта |
static int | getDebugBridgeChangeListenerCount () |
static int | getDeviceChangeListenerCount () |
IDevice[] | getDevices ()Возвращает устройства. |
ListenableFuture< | getRawDeviceList ()Возвращает набор устройств, сообщенных командной строкой adb. |
int | getRestartAttemptCount () Возвращает количество попыток объекта |
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 clientSupport) Инициализирует библиотеку |
static void | init (boolean clientSupport, boolean useLibusb, Аналогично |
static void | initIfNeeded (boolean clientSupport)Инициализируйте библиотеку только при необходимости; не рекомендуется для использования в целях, отличных от тестирования. |
boolean | isConnected () Возвращает, подключен ли объект |
static boolean | isUserManagedAdbMode () |
static SocketChannel | openConnection ()Попытка подключиться к локальному серверу отладочного моста Android. |
static void | removeClientChangeListener ( AndroidDebugBridge.IClientChangeListener listener) Удаляет прослушиватель из коллекции прослушивателей, которые будут уведомлены при изменении свойства |
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.
Публичные методы
addClientChangeListener
public static void addClientChangeListener (AndroidDebugBridge.IClientChangeListener listener)
Добавляет прослушиватель в коллекцию прослушивателей, которые будут уведомлены об изменении свойства ClientImpl , отправив ему одно из сообщений, определенных в интерфейсе IClientChangeListener .
| Параметры | |
|---|---|
listener | AndroidDebugBridge.IClientChangeListener : прослушиватель, который должен быть уведомлен. |
addDebugBridgeChangeListener
public static void addDebugBridgeChangeListener (AndroidDebugBridge.IDebugBridgeChangeListener listener)
Добавляет прослушиватель в коллекцию прослушивателей, которые будут уведомлены при подключении нового AndroidDebugBridge , отправив ему одно из сообщений, определенных в интерфейсе IDebugBridgeChangeListener .
| Параметры | |
|---|---|
listener | AndroidDebugBridge.IDebugBridgeChangeListener : прослушиватель, который должен быть уведомлен. |
addDeviceChangeListener
public static void addDeviceChangeListener (AndroidDebugBridge.IDeviceChangeListener listener)
Добавляет прослушиватель в коллекцию прослушивателей, которые будут уведомлены при подключении, отключении IDevice или при изменении его свойств или списка ClientImpl , отправив ему одно из сообщений, определенных в интерфейсе IDeviceChangeListener .
| Параметры | |
|---|---|
listener | AndroidDebugBridge.IDeviceChangeListener : прослушиватель, который должен быть уведомлен. |
клиентИзменен
public static void clientChanged (ClientImpl client, int changeMask)
Уведомить слушателя об измененном ClientImpl .
Уведомление слушателей осуществляется в синхронизированном блоке. Важно учитывать, что слушатели могут потенциально обращаться к различным методам IDevice , а также getDevices() , которые используют внутренние блокировки.
| Параметры | |
|---|---|
client | ClientImpl : измененный Client . |
changeMask | int : маска, указывающая, что изменилось в Client |
createBridge
public static AndroidDebugBridge createBridge (long timeout, TimeUnit unit)
Создает AndroidDebugBridge , который не связан ни с каким конкретным исполняемым файлом.
Этот мост ожидает, что adb запущен. Он не сможет запустить/остановить/перезапустить adb.
Если мост уже запущен, он возвращается напрямую без изменений (аналогично вызову getBridge() ).
| Параметры | |
|---|---|
timeout | long |
unit | TimeUnit |
| Возврат | |
|---|---|
AndroidDebugBridge | подключенный мост или null, если при создании или подключении к мосту произошли ошибки |
createBridge
public static AndroidDebugBridge createBridge (String osLocation, boolean forceNewBridge)
Этот метод устарел.
Этот метод может зависнуть, если ADB не отвечает. Вместо этого используйте createBridge(String, boolean, long, TimeUnit) .
Создает новый отладочный мост из расположения инструмента командной строки.
Любой существующий сервер будет отключен, если только его местоположение не то же самое и forceNewBridge не установлен на значение false.
| Параметры | |
|---|---|
osLocation | String : расположение инструмента командной строки 'adb' |
forceNewBridge | boolean : принудительное создание нового моста, даже если мост с таким же местоположением уже существует. |
| Возврат | |
|---|---|
AndroidDebugBridge | подключенный мост или null, если при создании или подключении к мосту произошли ошибки |
createBridge
public static AndroidDebugBridge createBridge ()
Этот метод устарел.
Этот метод может зависнуть, если ADB не отвечает. Вместо этого используйте createBridge(long, TimeUnit) .
Создает AndroidDebugBridge , который не связан ни с каким конкретным исполняемым файлом.
Этот мост ожидает, что adb запущен. Он не сможет запустить/остановить/перезапустить adb.
Если мост уже запущен, он возвращается напрямую без изменений (аналогично вызову getBridge() ).
| Возврат | |
|---|---|
AndroidDebugBridge | подключенный мост или null, если при создании или подключении к мосту произошли ошибки |
createBridge
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 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 ()
отсоединить мост
public static void disconnectBridge ()
Этот метод устарел.
Этот метод может зависнуть, если ADB не отвечает. Вместо этого используйте disconnectBridge(long, TimeUnit) .
Отключает текущий отладочный мост и уничтожает объект. Новый объект необходимо создать с помощью createBridge(String, boolean) .
Это также останавливает текущий сервер хоста adb.
отсоединить мост
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 | |
getClientSupport
public static boolean getClientSupport ()
Возвращает информацию о том, настроена ли библиотека ddmlib для поддержки мониторинга и взаимодействия с ClientImpl , работающими на устройствах IDevice .
| Возврат | |
|---|---|
boolean | |
getConnectionAttemptCount
public int getConnectionAttemptCount ()
Возвращает количество попыток объекта AndroidDebugBridge подключиться к демону adb.
| Возврат | |
|---|---|
int | |
getDebugBridgeChangeListenerCount
public static int getDebugBridgeChangeListenerCount ()
| Возврат | |
|---|---|
int | |
getDeviceChangeListenerCount
public static int getDeviceChangeListenerCount ()
| Возврат | |
|---|---|
int | |
получитьДевайсы
public IDevice[] getDevices ()
Возвращает устройства.
| Возврат | |
|---|---|
IDevice[] | |
Смотрите также:
получитьRawDeviceList
public ListenableFuture<> getRawDeviceList ()
Возвращает набор устройств, о которых сообщает командная строка adb. Это предназначено в основном для Connection Assistant и других диагностических инструментов, которым необходимо проверить состояние списка getDevices() по другому каналу. Код, которому требуется только доступ к списку устройств, должен вызывать getDevices() .
| Возврат | |
|---|---|
ListenableFuture< | |
getRestartAttemptCount
public int getRestartAttemptCount ()
Возвращает количество попыток объекта AndroidDebugBridge перезапустить демон adb.
| Возврат | |
|---|---|
int | |
getSocketAddress
public static InetSocketAddress getSocketAddress ()
Этот метод устарел.
Этот метод возвращает адрес сервера обратной связи, который может не совпадать с адресом, используемым сервером ADB. То есть JVM может работать в режиме IPv4, а сервер ADB — на адресе обратной связи IPv6. При открытии соединения с сервером ADB предпочтительнее использовать openConnection() .
Возвращает адрес сокета сервера ADB на хосте.
Этот метод попытается вернуть адрес сокета, который заведомо работоспособен, открывая канал сокета к серверу ADB. Будут использоваться адреса обратной связи как IPv4, так и IPv6. В случае, если ни один из них не сможет подключиться, этот метод вернёт адрес обратной связи, предпочитаемый JVM. Эта логика возврата необходима для предотвращения сбоев в работе API.
Если включен режим поддельного сервера ADB, этот метод автоматически вернется к устаревшей реализации без попытки подключения к ADB.
| Возврат | |
|---|---|
InetSocketAddress | |
получитьVirtualDeviceId
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(boolean) , с возможностью передачи пользовательского набора переменных окружения.
| Параметры | |
|---|---|
options | AdbInitOptions |
инициализация
public static void init (boolean clientSupport)
Инициализирует библиотеку ddm .
Этот метод необходимо вызвать один раз перед любым вызовом createBridge(String, boolean) .
Настройки ddmlib также должны быть инициализированы с использованием любых значений по умолчанию, которые были изменены.
При завершении работы приложения следует вызвать terminate() .
| Параметры | |
|---|---|
clientSupport | boolean : Указывает, должна ли библиотека включать мониторинг и взаимодействие с приложениями, работающими на устройствах. |
Смотрите также:
инициализация
public static void init (boolean clientSupport,
boolean useLibusb,
env) Аналогично init(boolean) , с возможностью включения libusb и передачи пользовательского набора переменных окружения.
| Параметры | |
|---|---|
clientSupport | boolean |
useLibusb | boolean |
env | |
initIfNeeded
public static void initIfNeeded (boolean clientSupport)
Инициализируйте библиотеку только при необходимости; не рекомендуется для использования в целях, отличных от тестирования.
| Параметры | |
|---|---|
clientSupport | boolean : Указывает, должна ли библиотека включать мониторинг и взаимодействие с приложениями, работающими на устройствах. |
Смотрите также:
подключен
public boolean isConnected ()
Возвращает, подключен ли объект AndroidDebugBridge к демону adb.
| Возврат | |
|---|---|
boolean | |
isUserManagedAdbMode
public static boolean isUserManagedAdbMode ()
| Возврат | |
|---|---|
boolean | При работе в режиме ADB, управляемом пользователем, в котором ddmlib не будет и не должен управлять сервером ADB. |
openConnection
public static SocketChannel openConnection ()
Попытка подключиться к локальному серверу отладочного моста Android.
| Возврат | |
|---|---|
SocketChannel | подключенная розетка в случае успеха |
| Броски | |
|---|---|
| если при открытии соединения возникнут ошибки |
removeClientChangeListener
public static void removeClientChangeListener (AndroidDebugBridge.IClientChangeListener listener)
Удаляет прослушиватель из коллекции прослушивателей, которые будут уведомлены при изменении свойства ClientImpl .
| Параметры | |
|---|---|
listener | AndroidDebugBridge.IClientChangeListener : прослушиватель, который больше не должен получать уведомления. |
removeDebugBridgeChangeListener
public static void removeDebugBridgeChangeListener (AndroidDebugBridge.IDebugBridgeChangeListener listener)
Удаляет прослушиватель из коллекции прослушивателей, которые будут уведомлены при запуске нового AndroidDebugBridge .
| Параметры | |
|---|---|
listener | AndroidDebugBridge.IDebugBridgeChangeListener : прослушиватель, который больше не должен получать уведомления. |
removeDeviceChangeListener
public static void removeDeviceChangeListener (AndroidDebugBridge.IDeviceChangeListener listener)
Удаляет прослушиватель из коллекции прослушивателей, которые будут уведомлены при подключении, отключении IDevice или при изменении его свойств или списка 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 и ее аффилированных лиц.
Последнее обновление: 2025-12-04 UTC.