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 |
interface |
AndroidDebugBridge.IDebugBridgeChangeListener
As classes que implementam essa interface fornecem um método que lida com mudanças de |
interface |
AndroidDebugBridge.IDeviceChangeListener
As classes que implementam essa interface fornecem métodos que lidam com a adição, exclusão e mudanças de |
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 |
static
void
|
addDebugBridgeChangeListener(AndroidDebugBridge.IDebugBridgeChangeListener listener)
Adiciona o listener à coleção de listeners que serão notificados quando um novo |
static
void
|
addDeviceChangeListener(AndroidDebugBridge.IDeviceChangeListener listener)
Adiciona o listener à coleção de listeners que serão notificados quando um |
static
void
|
clientChanged(ClientImpl client, int changeMask)
Notifique o listener de um |
static
AndroidDebugBridge
|
createBridge(long timeout, TimeUnit unit)
Cria um |
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 |
static
AndroidDebugBridge
|
createBridge()
Esse método foi descontinuado.
Esse método pode ficar parado se o ADB não estiver respondendo. Use |
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 |
static
void
|
deviceConnected(IDevice device)
Notifica o listener sobre um novo |
static
void
|
deviceDisconnected(IDevice device)
Notifica o listener de um |
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 |
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 |
int
|
getConnectionAttemptCount()
Retorna o número de vezes que o objeto |
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 |
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 |
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 |
static
void
|
init(boolean clientSupport)
Inicializa a biblioteca |
static
void
|
init(boolean clientSupport, boolean useLibusb,
Semelhante a |
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 |
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 |
static
void
|
removeDebugBridgeChangeListener(AndroidDebugBridge.IDebugBridgeChangeListener listener)
Remove o listener da coleção de listeners que serão notificados quando um novo |
static
void
|
removeDeviceChangeListener(AndroidDebugBridge.IDeviceChangeListener listener)
Remove o listener da coleção de listeners que serão notificados quando um |
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 |
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. |
Confira também:
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.