AndroidDebugBridge

public class AndroidDebugBridge
extends Object

java.lang.Object
com.android.tradefed.device.server.AndroidDebugBridge


Подключение к отладочному мосту Android на стороне хоста (adb)

Это центральная точка для связи с любыми устройствами, эмуляторами или приложениями, работающими на них.

init(boolean) должен быть вызван до того, как что-либо будет выполнено.

Краткое содержание

Вложенные классы

interface AndroidDebugBridge.IClientChangeListener

Классы, реализующие этот интерфейс, предоставляют методы, обрабатывающие изменения ClientImpl .

interface AndroidDebugBridge.IDebugBridgeChangeListener

Классы, реализующие этот интерфейс, предоставляют метод, который обрабатывает изменения AndroidDebugBridge (включая перезапуски).

interface AndroidDebugBridge.IDeviceChangeListener

Классы, реализующие этот интерфейс, предоставляют методы, которые отвечают за добавление, удаление и изменение IDevice .

Константы

int DEFAULT_START_ADB_TIMEOUT_MILLIS

Тайм-аут по умолчанию, используемый при запуске сервера ADB

Поля

public static final AdbVersion MIN_ADB_VERSION

Поддерживаемая минимальная и максимальная версия adb.

Публичные методы

static void addClientChangeListener ( AndroidDebugBridge.IClientChangeListener listener)

Добавляет прослушиватель в коллекцию прослушивателей, которые будут уведомлены об изменении свойства ClientImpl , отправив ему одно из сообщений, определенных в интерфейсе IClientChangeListener .

static void addDebugBridgeChangeListener ( AndroidDebugBridge.IDebugBridgeChangeListener listener)

Добавляет прослушиватель в коллекцию прослушивателей, которые будут уведомлены при подключении нового AndroidDebugBridge , отправив ему одно из сообщений, определенных в интерфейсе IDebugBridgeChangeListener .

static void addDeviceChangeListener ( AndroidDebugBridge.IDeviceChangeListener listener)

Добавляет прослушиватель в коллекцию прослушивателей, которые будут уведомлены при подключении, отключении IDevice или при изменении его свойств или списка ClientImpl , отправив ему одно из сообщений, определенных в интерфейсе IDeviceChangeListener .

static void clientChanged ( ClientImpl client, int changeMask)

Уведомить слушателя об измененном ClientImpl .

static AndroidDebugBridge createBridge (long timeout, TimeUnit unit)

Создает AndroidDebugBridge , который не связан ни с каким конкретным исполняемым файлом.

static AndroidDebugBridge createBridge (String osLocation, boolean forceNewBridge)

Этот метод устарел. Он может зависнуть, если ADB не отвечает. Вместо него используйте createBridge(String, boolean, long, TimeUnit) .

static AndroidDebugBridge createBridge ()

Этот метод устарел. Он может зависнуть, если ADB не отвечает. Вместо него используйте createBridge(long, TimeUnit) .

static AndroidDebugBridge createBridge (String osLocation, boolean forceNewBridge, long timeout, TimeUnit unit)

Создает новый отладочный мост из расположения инструмента командной строки.

static void deviceChanged ( IDevice device, int changeMask)

Уведомить слушателя об измененном IDevice .

static void deviceConnected ( IDevice device)

Уведомить слушателя о новом IDevice .

static void deviceDisconnected ( IDevice device)

Уведомить слушателя об отключенном IDevice .

static void disableFakeAdbServerMode ()
static void disconnectBridge ()

Этот метод устарел. Он может зависнуть, если ADB не отвечает. Вместо него используйте disconnectBridge(long, TimeUnit) .

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 для поддержки мониторинга и взаимодействия с ClientImpl , работающими на устройствах IDevice .

int getConnectionAttemptCount ()

Возвращает количество попыток объекта AndroidDebugBridge подключиться к демону adb.

static int getDebugBridgeChangeListenerCount ()
static int getDeviceChangeListenerCount ()
IDevice[] getDevices ()

Возвращает устройства.

ListenableFuture< > getRawDeviceList ()

Возвращает набор устройств, сообщенных командной строкой adb.

int getRestartAttemptCount ()

Возвращает количество попыток объекта AndroidDebugBridge перезапустить демон adb.

static InetSocketAddress getSocketAddress ()

Этот метод устарел. Он возвращает адрес сервера обратной связи, который может не совпадать с адресом, используемым сервером ADB. То есть JVM может работать в режиме IPv4, а сервер ADB — на адресе обратной связи IPv6. При открытии соединения с сервером ADB предпочтительнее использовать openConnection() .

static ListenableFuture<String> getVirtualDeviceId (ListeningExecutorService service, File adb, IDevice device)
boolean hasInitialDeviceList ()

Возвращает, получил ли мост начальный список от adb после создания.

static void init ( AdbInitOptions options)

Аналогично init(boolean) , с возможностью передачи пользовательского набора env.

static void init (boolean clientSupport)

Инициализирует библиотеку ddm .

static void init (boolean clientSupport, boolean useLibusb, env)

Аналогично init(boolean) , с возможностью включения libusb и передачи пользовательского набора env.

static void initIfNeeded (boolean clientSupport)

Инициализируйте библиотеку только при необходимости; не рекомендуется для использования в целях, отличных от тестирования.

boolean isConnected ()

Возвращает, подключен ли объект AndroidDebugBridge к демону adb.

static boolean isUserManagedAdbMode ()
static SocketChannel openConnection ()

Попытка подключиться к локальному серверу отладочного моста Android.

static void removeClientChangeListener ( AndroidDebugBridge.IClientChangeListener listener)

Удаляет прослушиватель из коллекции прослушивателей, которые будут уведомлены при изменении свойства ClientImpl .

static void removeDebugBridgeChangeListener ( AndroidDebugBridge.IDebugBridgeChangeListener listener)

Удаляет прослушиватель из коллекции прослушивателей, которые будут уведомлены при запуске нового AndroidDebugBridge .

static void removeDeviceChangeListener ( AndroidDebugBridge.IDeviceChangeListener listener)

Удаляет прослушиватель из коллекции прослушивателей, которые будут уведомлены при подключении, отключении IDevice или при изменении его свойств или списка ClientImpl .

boolean restart (long timeout, TimeUnit unit)

Перезапускает adb, но не службы вокруг него.

boolean restart ()

Этот метод устарел. Он может зависнуть, если ADB не отвечает. Вместо него используйте restart(long, TimeUnit) .

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. Необходимо вызывать после завершения работы приложения.