AndroidDebugBridge

public class AndroidDebugBridge
extends Object

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


Uma conexão com o Android Debug Bridge (adb) do lado do host

Esse é o ponto central para se comunicar com qualquer dispositivo, emulador ou aplicativo em execução neles.

init(boolean) precisa ser chamado antes de qualquer ação.

Resumo

Classes aninhadas

interface AndroidDebugBridge.IClientChangeListener

As classes que implementam essa interface fornecem métodos que lidam com mudanças de ClientImpl

interface AndroidDebugBridge.IDebugBridgeChangeListener

As classes que implementam essa interface fornecem um método que lida com mudanças de AndroidDebugBridge (incluindo reinicializações). 

interface AndroidDebugBridge.IDeviceChangeListener

As classes que implementam essa interface fornecem métodos que lidam com a adição, exclusão e mudanças de IDevice

Constantes

int DEFAULT_START_ADB_TIMEOUT_MILLIS

Tempo limite padrão usado ao iniciar o servidor ADB.

Campos

public static final AdbVersion MIN_ADB_VERSION

Versões mínima e máxima do adb compatíveis.

Métodos públicos

static void addClientChangeListener(AndroidDebugBridge.IClientChangeListener listener)

Adiciona o listener à coleção de listeners que serão notificados quando uma propriedade ClientImpl mudar, enviando uma das mensagens definidas na interface IClientChangeListener.

static void addDebugBridgeChangeListener(AndroidDebugBridge.IDebugBridgeChangeListener listener)

Adiciona o listener à coleção de listeners que serão notificados quando um novo AndroidDebugBridge for conectado, enviando uma das mensagens definidas na interface IDebugBridgeChangeListener.

static void addDeviceChangeListener(AndroidDebugBridge.IDeviceChangeListener listener)

Adiciona o listener à coleção de listeners que serão notificados quando um IDevice for conectado, desconectado ou quando as propriedades ou a lista ClientImpl dele mudarem, enviando uma das mensagens definidas na interface IDeviceChangeListener.

static void clientChanged(ClientImpl client, int changeMask)

Notifique o listener de um ClientImpl modificado.

static AndroidDebugBridge createBridge(long timeout, TimeUnit unit)

Cria um AndroidDebugBridge que não está vinculado a nenhum executável específico.

static AndroidDebugBridge createBridge(String osLocation, boolean forceNewBridge)

Esse método foi descontinuado. Esse método pode ficar pendente se o ADB não estiver respondendo. Use createBridge(String, boolean, long, TimeUnit), em vez disso.

static AndroidDebugBridge createBridge()

Esse método foi descontinuado. Esse método pode ficar parado se o ADB não estiver respondendo. Use createBridge(long, TimeUnit), em vez disso.

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

Cria uma nova ponte de depuração no local da ferramenta de linha de comando.

static void deviceChanged(IDevice device, int changeMask)

Notifique o listener de um IDevice modificado.

static void deviceConnected(IDevice device)

Notifica o listener sobre um novo IDevice.

static void deviceDisconnected(IDevice device)

Notifica o listener de um IDevice desconectado.

static void disableFakeAdbServerMode()
static void disconnectBridge()

Esse método foi descontinuado. Esse método pode ficar parado se o ADB não estiver respondendo. Use disconnectBridge(long, TimeUnit), em vez disso.

static boolean disconnectBridge(long timeout, TimeUnit unit)

Desconecta a ponte de depuração atual e destrói o objeto.

static void enableFakeAdbServerMode(int port)
static ListenableFuture<AdbVersion> getAdbVersion(File adb)
static AndroidDebugBridge getBridge()

Retorna a ponte de depuração atual.

static boolean getClientSupport()

Retorna se a ddmlib está configurada para oferecer suporte ao monitoramento e à interação com ClientImpls em execução nos IDevices.

int getConnectionAttemptCount()

Retorna o número de vezes que o objeto AndroidDebugBridge tentou se conectar ao daemon adb.

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

Retorna os dispositivos.

ListenableFuture<> getRawDeviceList()

Retorna o conjunto de dispositivos informados pela linha de comando adb.

int getRestartAttemptCount()

Retorna o número de vezes que o objeto AndroidDebugBridge tentou reiniciar o daemon adb.

static InetSocketAddress getSocketAddress()

Esse método foi descontinuado. Esse método retorna um endereço de servidor de loopback que pode não corresponder ao usado pelo servidor ADB. Por exemplo, a JVM pode estar no modo IPv4 enquanto o servidor ADB está hospedado no endereço de loopback IPv6. Prefira openConnection() ao abrir uma conexão com o servidor ADB.

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

Retorna se a ponte adquiriu a lista inicial do adb após a criação.

static void init(AdbInitOptions options)

Semelhante a init(boolean), com a capacidade de transmitir um conjunto personalizado de env.

static void init(boolean clientSupport)

Inicializa a biblioteca ddm.

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

Semelhante a init(boolean), com a capacidade de ativar o libusb e transmitir um conjunto personalizado de env.

static void initIfNeeded(boolean clientSupport)

Inicializa a biblioteca somente se necessário. Descontinuado para usos que não sejam de teste.

boolean isConnected()

Retorna se o objeto AndroidDebugBridge ainda está conectado ao daemon adb.

static boolean isUserManagedAdbMode()
static SocketChannel openConnection()

Tenta se conectar ao servidor local do Android Debug Bridge.

static void removeClientChangeListener(AndroidDebugBridge.IClientChangeListener listener)

Remove o listener da coleção de listeners que serão notificados quando uma propriedade ClientImpl mudar.

static void removeDebugBridgeChangeListener(AndroidDebugBridge.IDebugBridgeChangeListener listener)

Remove o listener da coleção de listeners que serão notificados quando um novo AndroidDebugBridge for iniciado.

static void removeDeviceChangeListener(AndroidDebugBridge.IDeviceChangeListener listener)

Remove o listener da coleção de listeners que serão notificados quando um IDevice for conectado ou desconectado ou quando as propriedades ou a lista de ClientImpl dele mudarem.

boolean restart(long timeout, TimeUnit unit)

Reinicia o adb, mas não os serviços ao redor dele.

boolean restart()

Esse método foi descontinuado. Esse método pode ficar parado se o ADB não estiver respondendo. Use restart(long, TimeUnit), em vez disso.

boolean startAdb(long timeout, TimeUnit unit)

Inicia o servidor do lado do host adb.

static void terminate()

Encerra a biblioteca ddm.

Constantes

DEFAULT_START_ADB_TIMEOUT_MILLIS

public static final int DEFAULT_START_ADB_TIMEOUT_MILLIS

Tempo limite padrão usado ao iniciar o servidor ADB.

Valor da constante: 20000 (0x00004e20)

Campos

MIN_ADB_VERSION

public static final AdbVersion MIN_ADB_VERSION

Versões mínima e máxima do adb compatíveis. Isso corresponde a ADB_SERVER_VERSION encontrado em //device/tools/adb/adb.h

Métodos públicos

addClientChangeListener

public static void addClientChangeListener (AndroidDebugBridge.IClientChangeListener listener)

Adiciona o listener à coleção de listeners que serão notificados quando uma propriedade ClientImpl mudar, enviando uma das mensagens definidas na interface IClientChangeListener.

Parâmetros
listener AndroidDebugBridge.IClientChangeListener: o listener que precisa ser notificado.

addDebugBridgeChangeListener

public static void addDebugBridgeChangeListener (AndroidDebugBridge.IDebugBridgeChangeListener listener)

Adiciona o listener à coleção de listeners que serão notificados quando um novo AndroidDebugBridge for conectado, enviando uma das mensagens definidas na interface IDebugBridgeChangeListener.

Parâmetros
listener AndroidDebugBridge.IDebugBridgeChangeListener: o listener que precisa ser notificado.

addDeviceChangeListener

public static void addDeviceChangeListener (AndroidDebugBridge.IDeviceChangeListener listener)

Adiciona o listener à coleção de listeners que serão notificados quando um IDevice for conectado, desconectado ou quando as propriedades ou a lista ClientImpl dele mudarem, enviando uma das mensagens definidas na interface IDeviceChangeListener.

Parâmetros
listener AndroidDebugBridge.IDeviceChangeListener: o listener que precisa ser notificado.

clientChanged

public static void clientChanged (ClientImpl client, 
                int changeMask)

Notifique o listener de um ClientImpl modificado.

A notificação dos listeners é feita em um bloco sincronizado. É importante esperar que os listeners possam acessar vários métodos de IDevice e getDevices(), que usam bloqueios internos.

Parâmetros
client ClientImpl: o Client modificado.

changeMask int: a máscara que indica o que mudou no Client

createBridge

public static AndroidDebugBridge createBridge (long timeout, 
                TimeUnit unit)

Cria um AndroidDebugBridge que não está vinculado a nenhum executável específico.

Essa ponte vai exigir que o adb esteja em execução. Não será possível iniciar/parar/reiniciar o adb.

Se uma ponte já tiver sido iniciada, ela será retornada diretamente sem alterações (semelhante a chamar getBridge()).

Parâmetros
timeout long

unit TimeUnit

Retorna
AndroidDebugBridge uma ponte conectada ou nulo se houver erros ao criar ou se conectar à ponte

createBridge

public static AndroidDebugBridge createBridge (String osLocation, 
                boolean forceNewBridge)

Esse método foi descontinuado.
Esse método pode ficar travado se o ADB não estiver respondendo. Use createBridge(String, boolean, long, TimeUnit).

Cria uma nova ponte de depuração no local da ferramenta de linha de comando.

Qualquer servidor atual será desconectado, a menos que o local seja o mesmo e forceNewBridge esteja definido como "false".

Parâmetros
osLocation String: o local da ferramenta de linha de comando "adb"

forceNewBridge boolean: força a criação de uma nova ponte, mesmo que já exista uma com o mesmo local.

Retorna
AndroidDebugBridge uma ponte conectada ou nulo se houver erros ao criar ou se conectar à ponte

createBridge

public static AndroidDebugBridge createBridge ()

Esse método foi descontinuado.
Esse método pode ficar travado se o ADB não estiver respondendo. Use createBridge(long, TimeUnit).

Cria um AndroidDebugBridge que não está vinculado a nenhum executável específico.

Essa ponte vai exigir que o adb esteja em execução. Não será possível iniciar/parar/reiniciar o adb.

Se uma ponte já tiver sido iniciada, ela será retornada diretamente sem alterações (semelhante a chamar getBridge()).

Retorna
AndroidDebugBridge uma ponte conectada ou nulo se houver erros ao criar ou se conectar à ponte

createBridge

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

Cria uma nova ponte de depuração no local da ferramenta de linha de comando.

Qualquer servidor atual será desconectado, a menos que o local seja o mesmo e forceNewBridge esteja definido como "false".

Parâmetros
osLocation String: o local da ferramenta de linha de comando "adb"

forceNewBridge boolean: força a criação de uma nova ponte, mesmo que já exista uma com o mesmo local.

timeout long: o tempo máximo de espera

unit TimeUnit: a unidade de tempo do argumento timeout

Retorna
AndroidDebugBridge uma ponte conectada ou nulo se houver erros ao criar ou se conectar à ponte

deviceChanged

public static void deviceChanged (IDevice device, 
                int changeMask)

Notifique o listener de um IDevice modificado.

A notificação dos listeners é feita em um bloco sincronizado. É importante esperar que os listeners possam acessar vários métodos de IDevice e getDevices(), que usam bloqueios internos.

Parâmetros
device IDevice: o IDevice modificado.

changeMask int

deviceConnected

public static void deviceConnected (IDevice device)

Notifica o listener sobre um novo IDevice.

A notificação dos listeners é feita em um bloco sincronizado. É importante esperar que os listeners possam acessar vários métodos de IDevice e getDevices(), que usam bloqueios internos.

Parâmetros
device IDevice: o novo IDevice.

deviceDisconnected

public static void deviceDisconnected (IDevice device)

Notifica o listener de um IDevice desconectado.

A notificação dos listeners é feita em um bloco sincronizado. É importante esperar que os listeners possam acessar vários métodos de IDevice e getDevices(), que usam bloqueios internos.

Parâmetros
device IDevice: o IDevice desconectado.

disableFakeAdbServerMode

public static void disableFakeAdbServerMode ()

disconnectBridge

public static void disconnectBridge ()

Esse método foi descontinuado.
Esse método pode ficar travado se o ADB não estiver respondendo. Use disconnectBridge(long, TimeUnit).

Desconecta a ponte de depuração atual e destrói o objeto. Um novo objeto precisa ser criado com createBridge(String, boolean).

Isso também interrompe o servidor host adb atual.

disconnectBridge

public static boolean disconnectBridge (long timeout, 
                TimeUnit unit)

Desconecta a ponte de depuração atual e destrói o objeto. Um novo objeto precisa ser criado com createBridge(String, boolean).

Isso também interrompe o servidor host adb atual.

Parâmetros
timeout long

unit TimeUnit

Retorna
boolean true se o método for concluído dentro do tempo limite especificado.

enableFakeAdbServerMode

public static void enableFakeAdbServerMode (int port)

Parâmetros
port int

getAdbVersion

public static ListenableFuture<AdbVersion> getAdbVersion (File adb)

Parâmetros
adb File

Retorna
ListenableFuture<AdbVersion>

getBridge

public static AndroidDebugBridge getBridge ()

Retorna a ponte de depuração atual. Pode ser null se nenhum tiver sido criado.

Retorna
AndroidDebugBridge

getClientSupport

public static boolean getClientSupport ()

Retorna se a ddmlib está configurada para oferecer suporte ao monitoramento e à interação com ClientImpls em execução nos IDevices.

Retorna
boolean

getConnectionAttemptCount

public int getConnectionAttemptCount ()

Retorna o número de vezes que o objeto AndroidDebugBridge tentou se conectar ao daemon adb.

Retorna
int

getDebugBridgeChangeListenerCount

public static int getDebugBridgeChangeListenerCount ()

Retorna
int

getDeviceChangeListenerCount

public static int getDeviceChangeListenerCount ()

Retorna
int

getDevices

public IDevice[] getDevices ()

Retorna os dispositivos.

Retorna
IDevice[]

Confira também:

getRawDeviceList

public ListenableFuture<> getRawDeviceList ()

Retorna o conjunto de dispositivos informados pela linha de comando adb. Isso é destinado principalmente ao Connection Assistant ou outras ferramentas de diagnóstico que precisam validar o estado da lista getDevices() por outro canal. O código que só precisa acessar a lista de dispositivos deve chamar getDevices().

Retorna
ListenableFuture<>

getRestartAttemptCount

public int getRestartAttemptCount ()

Retorna o número de vezes que o objeto AndroidDebugBridge tentou reiniciar o daemon adb.

Retorna
int

getSocketAddress

public static InetSocketAddress getSocketAddress ()

Esse método foi descontinuado.
Esse método retorna um endereço de servidor de loopback que pode não corresponder ao usado pelo servidor ADB. Por exemplo, a JVM pode estar no modo IPv4 enquanto o servidor ADB está hospedado no endereço de loopback IPv6. Prefira openConnection() ao abrir uma conexão com o servidor ADB.

Retorna o endereço do soquete do servidor ADB no host.

Esse método vai tentar retornar um endereço de soquete conhecido por funcionar abrindo um canal de soquete para o servidor ADB. As tentativas serão feitas com os endereços de loopback IPv4 e IPv6. Se nenhum dos dois puder se conectar, esse método vai retornar o endereço de loopback preferido pela JVM. Essa lógica de substituição é necessária para evitar falhas na API.

Se o modo de servidor ADB falso estiver ativado, esse método vai usar automaticamente a implementação legada sem tentar se conectar ao ADB.

Retorna
InetSocketAddress

getVirtualDeviceId

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

Parâmetros
service ListeningExecutorService

adb File

device IDevice

Retorna
ListenableFuture<String>

hasInitialDeviceList

public boolean hasInitialDeviceList ()

Retorna se a ponte adquiriu a lista inicial do adb após a criação.

Chamar getDevices() logo após createBridge(String, boolean) geralmente resulta em uma lista vazia. Isso ocorre devido ao mecanismo interno de comunicação assíncrona com adb, que não garante que a lista IDevice tenha sido criada antes da chamada para getDevices().

A maneira recomendada de receber a lista de objetos IDevice é criar um objeto IDeviceChangeListener.

Retorna
boolean

init

public static void init (AdbInitOptions options)

Semelhante a init(boolean), com a capacidade de transmitir um conjunto personalizado de variáveis de ambiente.

Parâmetros
options AdbInitOptions

init

public static void init (boolean clientSupport)

Inicializa a biblioteca ddm.

Isso precisa ser chamado uma vez antes de qualquer chamada para createBridge(String, boolean).

As preferências de ddmlib também precisam ser inicializadas com os valores padrão que foram alterados.

Quando o aplicativo for encerrado, terminate() precisará ser chamado.

Parâmetros
clientSupport boolean: indica se a biblioteca deve ativar o monitoramento e a interação com aplicativos em execução nos dispositivos.

init

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

Semelhante a init(boolean), com a capacidade de ativar o libusb e transmitir um conjunto personalizado de variáveis de ambiente.

Parâmetros
clientSupport boolean

useLibusb boolean

env

initIfNeeded

public static void initIfNeeded (boolean clientSupport)

Inicializa a biblioteca somente se necessário. Descontinuado para usos que não sejam de teste.

Parâmetros
clientSupport boolean: indica se a biblioteca deve ativar o monitoramento e a interação com aplicativos em execução nos dispositivos.

Confira também:

isConnected

public boolean isConnected ()

Retorna se o objeto AndroidDebugBridge ainda está conectado ao daemon adb.

Retorna
boolean

isUserManagedAdbMode

public static boolean isUserManagedAdbMode ()

Retorna
boolean Se estiver operando no modo ADB gerenciado pelo usuário, em que a ddmlib não gerencia e não deve gerenciar o servidor ADB.

openConnection

public static SocketChannel openConnection ()

Tenta se conectar ao servidor local do Android Debug Bridge.

Retorna
SocketChannel um soquete conectado se houver sucesso

Gera
deve ocorrer erros ao abrir a conexão

removeClientChangeListener

public static void removeClientChangeListener (AndroidDebugBridge.IClientChangeListener listener)

Remove o listener da coleção de listeners que serão notificados quando uma propriedade ClientImpl mudar.

Parâmetros
listener AndroidDebugBridge.IClientChangeListener: o listener que não deve mais ser notificado.

removeDebugBridgeChangeListener

public static void removeDebugBridgeChangeListener (AndroidDebugBridge.IDebugBridgeChangeListener listener)

Remove o listener da coleção de listeners que serão notificados quando um novo AndroidDebugBridge for iniciado.

Parâmetros
listener AndroidDebugBridge.IDebugBridgeChangeListener: o listener que não deve mais ser notificado.

removeDeviceChangeListener

public static void removeDeviceChangeListener (AndroidDebugBridge.IDeviceChangeListener listener)

Remove o listener da coleção de listeners que serão notificados quando um IDevice for conectado ou desconectado ou quando as propriedades ou a lista de ClientImpl dele mudarem.

Parâmetros
listener AndroidDebugBridge.IDeviceChangeListener: o listener que não deve mais ser notificado.

Reiniciar

public boolean restart (long timeout, 
                TimeUnit unit)

Reinicia o adb, mas não os serviços ao redor dele.

Parâmetros
timeout long

unit TimeUnit

Retorna
boolean true se for bem-sucedido.

Reiniciar

public boolean restart ()

Esse método foi descontinuado.
Esse método pode ficar travado se o ADB não estiver respondendo. Use restart(long, TimeUnit).

Reinicia o adb, mas não os serviços ao redor dele.

Retorna
boolean true se for bem-sucedido.

startAdb

public boolean startAdb (long timeout, 
                TimeUnit unit)

Inicia o servidor do lado do host adb. Esse método não deve ser usado com um servidor ADB gerenciado pelo usuário, já que o ciclo de vida do servidor precisa ser gerenciado pelo usuário, não pela ddmlib.

Parâmetros
timeout long

unit TimeUnit

Retorna
boolean true se for bem-sucedido

encerrar

public static void terminate ()

Encerra a biblioteca ddm. Isso precisa ser chamado quando o aplicativo é encerrado.