AndroidDebugBridge

public class AndroidDebugBridge
extends Object

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


Una conexión a Android Debug Bridge (adb) del lado del host

Este es el punto central para comunicarse con cualquier dispositivo, emulador o las aplicaciones que se ejecutan en ellos.

Se debe llamar a init(boolean) antes de realizar cualquier otra acción.

Resumen

Clases anidadas

interface AndroidDebugBridge.IClientChangeListener

Las clases que implementan esta interfaz proporcionan métodos que se ocupan de los cambios de ClientImpl

interface AndroidDebugBridge.IDebugBridgeChangeListener

Las clases que implementan esta interfaz proporcionan un método que se ocupa de los cambios de AndroidDebugBridge (incluidos los reinicios). 

interface AndroidDebugBridge.IDeviceChangeListener

Las clases que implementan esta interfaz proporcionan métodos que se encargan de la adición, eliminación y cambios de IDevice

Constantes

int DEFAULT_START_ADB_TIMEOUT_MILLIS

Tiempo de espera predeterminado que se usa cuando se inicia el servidor de ADB

Campos

public static final AdbVersion MIN_ADB_VERSION

Versión mínima y máxima de adb admitida.

Métodos públicos

static void addClientChangeListener(AndroidDebugBridge.IClientChangeListener listener)

Agrega el objeto de escucha a la colección de objetos de escucha que recibirán una notificación cuando cambie una propiedad de ClientImpl. Para ello, le envía uno de los mensajes definidos en la interfaz IClientChangeListener.

static void addDebugBridgeChangeListener(AndroidDebugBridge.IDebugBridgeChangeListener listener)

Agrega el objeto de escucha a la colección de objetos de escucha que recibirán una notificación cuando se conecte un nuevo AndroidDebugBridge, para lo cual se le enviará uno de los mensajes definidos en la interfaz IDebugBridgeChangeListener.

static void addDeviceChangeListener(AndroidDebugBridge.IDeviceChangeListener listener)

Agrega el objeto de escucha a la colección de objetos de escucha que recibirán una notificación cuando se conecte o desconecte un objeto IDevice, o cuando cambien sus propiedades o su lista de ClientImpl, enviándole uno de los mensajes definidos en la interfaz IDeviceChangeListener.

static void clientChanged(ClientImpl client, int changeMask)

Notifica al objeto de escucha sobre un ClientImpl modificado.

static AndroidDebugBridge createBridge(long timeout, TimeUnit unit)

Crea un AndroidDebugBridge que no está vinculado a ningún archivo ejecutable en particular.

static AndroidDebugBridge createBridge(String osLocation, boolean forceNewBridge)

Este método dejó de estar disponible. Este método puede dejar de responder si ADB no responde. En su lugar, usa createBridge(String, boolean, long, TimeUnit).

static AndroidDebugBridge createBridge()

Este método dejó de estar disponible. Este método puede dejar de responder si ADB no responde. En su lugar, usa createBridge(long, TimeUnit).

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

Crea un nuevo puente de depuración desde la ubicación de la herramienta de línea de comandos.

static void deviceChanged(IDevice device, int changeMask)

Notifica al objeto de escucha sobre un IDevice modificado.

static void deviceConnected(IDevice device)

Notifica al objeto de escucha sobre un nuevo IDevice.

static void deviceDisconnected(IDevice device)

Notifica al objeto de escucha que se desconectó un objeto IDevice.

static void disableFakeAdbServerMode()
static void disconnectBridge()

Este método dejó de estar disponible. Este método puede dejar de responder si ADB no responde. En su lugar, usa disconnectBridge(long, TimeUnit).

static boolean disconnectBridge(long timeout, TimeUnit unit)

Desconecta el puente de depuración actual y destruye el objeto.

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

Devuelve el puente de depuración actual.

static boolean getClientSupport()

Devuelve si ddmlib está configurado para admitir la supervisión y la interacción con los ClientImpl que se ejecutan en los IDevice.

int getConnectionAttemptCount()

Devuelve la cantidad de veces que el objeto AndroidDebugBridge intentó conectarse al daemon de adb.

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

Devuelve los dispositivos.

ListenableFuture<> getRawDeviceList()

Devuelve el conjunto de dispositivos que informa la línea de comandos de adb.

int getRestartAttemptCount()

Devuelve la cantidad de veces que el objeto AndroidDebugBridge intentó reiniciar el daemon de adb.

static InetSocketAddress getSocketAddress()

Este método dejó de estar disponible. Este método devuelve una dirección de servidor de bucle invertido que puede no coincidir con la que usa el servidor de ADB. Es decir, la JVM puede estar en modo IPv4 mientras que el servidor de ADB se aloja en la dirección de bucle invertido IPv6. Prefiere openConnection() cuando abras una conexión al servidor de ADB.

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

Devuelve un valor que indica si el puente adquirió la lista inicial de adb después de crearse.

static void init(AdbInitOptions options)

Similar a init(boolean), con la capacidad de pasar un conjunto personalizado de variables de entorno.

static void init(boolean clientSupport)

Inicializa la biblioteca de ddm.

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

Similar a init(boolean), con la capacidad de habilitar libusb y pasar un conjunto personalizado de variables de entorno.

static void initIfNeeded(boolean clientSupport)

Inicializa la biblioteca solo si es necesario. Está en desuso para usos que no sean de prueba.

boolean isConnected()

Devuelve si el objeto AndroidDebugBridge aún está conectado al daemon de adb.

static boolean isUserManagedAdbMode()
static SocketChannel openConnection()

Intenta conectarse al servidor local de Android Debug Bridge.

static void removeClientChangeListener(AndroidDebugBridge.IClientChangeListener listener)

Quita el objeto de escucha de la colección de objetos de escucha que recibirán una notificación cuando cambie una propiedad de ClientImpl.

static void removeDebugBridgeChangeListener(AndroidDebugBridge.IDebugBridgeChangeListener listener)

Quita el objeto de escucha de la colección de objetos de escucha que recibirán una notificación cuando se inicie un nuevo AndroidDebugBridge.

static void removeDeviceChangeListener(AndroidDebugBridge.IDeviceChangeListener listener)

Quita el objeto de escucha de la colección de objetos de escucha que recibirán una notificación cuando se conecte o desconecte un IDevice, o cuando cambien sus propiedades o su lista de ClientImpl.

boolean restart(long timeout, TimeUnit unit)

Reinicia adb, pero no los servicios que lo rodean.

boolean restart()

Este método dejó de estar disponible. Este método puede dejar de responder si ADB no responde. En su lugar, usa restart(long, TimeUnit).

boolean startAdb(long timeout, TimeUnit unit)

Inicia el servidor del host de adb.

static void terminate()

Finaliza la biblioteca de DDM.

Constantes

DEFAULT_START_ADB_TIMEOUT_MILLIS

public static final int DEFAULT_START_ADB_TIMEOUT_MILLIS

Es el tiempo de espera predeterminado que se usa cuando se inicia el servidor de ADB.

Valor constante: 20000 (0x00004e20)

Campos

MIN_ADB_VERSION

public static final AdbVersion MIN_ADB_VERSION

Versión mínima y máxima de adb admitida. Corresponde a ADB_SERVER_VERSION que se encuentra en //device/tools/adb/adb.h

Métodos públicos

addClientChangeListener

public static void addClientChangeListener (AndroidDebugBridge.IClientChangeListener listener)

Agrega el objeto de escucha a la colección de objetos de escucha que recibirán una notificación cuando cambie una propiedad de ClientImpl. Para ello, le envía uno de los mensajes definidos en la interfaz IClientChangeListener.

Parámetros
listener AndroidDebugBridge.IClientChangeListener: Es el objeto de escucha que debe recibir la notificación.

addDebugBridgeChangeListener

public static void addDebugBridgeChangeListener (AndroidDebugBridge.IDebugBridgeChangeListener listener)

Agrega el objeto de escucha a la colección de objetos de escucha que recibirán una notificación cuando se conecte un nuevo AndroidDebugBridge, para lo cual se le enviará uno de los mensajes definidos en la interfaz IDebugBridgeChangeListener.

Parámetros
listener AndroidDebugBridge.IDebugBridgeChangeListener: Es el objeto de escucha que debe recibir la notificación.

addDeviceChangeListener

public static void addDeviceChangeListener (AndroidDebugBridge.IDeviceChangeListener listener)

Agrega el objeto de escucha a la colección de objetos de escucha que recibirán una notificación cuando se conecte o desconecte un objeto IDevice, o cuando cambien sus propiedades o su lista de ClientImpl, enviándole uno de los mensajes definidos en la interfaz IDeviceChangeListener.

Parámetros
listener AndroidDebugBridge.IDeviceChangeListener: Es el objeto de escucha que debe recibir la notificación.

clientChanged

public static void clientChanged (ClientImpl client, 
                int changeMask)

Notifica al objeto de escucha sobre un ClientImpl modificado.

La notificación de los objetos de escucha se realiza en un bloque sincronizado. Es importante esperar que los objetos de escucha puedan acceder a varios métodos de IDevice, así como a getDevices(), que usan bloqueos internos.

Parámetros
client ClientImpl: Es el Client modificado.

changeMask int: Es la máscara que indica qué cambió en Client.

createBridge

public static AndroidDebugBridge createBridge (long timeout, 
                TimeUnit unit)

Crea un AndroidDebugBridge que no está vinculado a ningún archivo ejecutable en particular.

Este puente espera que adb se esté ejecutando. No podrá iniciar, detener ni reiniciar adb.

Si ya se inició un puente, se devuelve directamente sin cambios (de manera similar a llamar a getBridge()).

Parámetros
timeout long

unit TimeUnit

Muestra
AndroidDebugBridge Un puente conectado o nulo si hubo errores durante la creación o la conexión al puente

createBridge

public static AndroidDebugBridge createBridge (String osLocation, 
                boolean forceNewBridge)

Este método dejó de estar disponible.
Este método puede dejar de responder si ADB no responde. En su lugar, usa createBridge(String, boolean, long, TimeUnit).

Crea un nuevo puente de depuración desde la ubicación de la herramienta de línea de comandos.

Se desconectará cualquier servidor existente, a menos que la ubicación sea la misma y forceNewBridge esté configurado como falso.

Parámetros
osLocation String: Es la ubicación de la herramienta de línea de comandos "adb".

forceNewBridge boolean: Fuerza la creación de un puente nuevo, incluso si ya existe uno con la misma ubicación.

Muestra
AndroidDebugBridge Un puente conectado o nulo si hubo errores durante la creación o la conexión al puente

createBridge

public static AndroidDebugBridge createBridge ()

Este método dejó de estar disponible.
Este método puede dejar de responder si ADB no responde. En su lugar, usa createBridge(long, TimeUnit).

Crea un AndroidDebugBridge que no está vinculado a ningún archivo ejecutable en particular.

Este puente espera que adb se esté ejecutando. No podrá iniciar, detener ni reiniciar adb.

Si ya se inició un puente, se devuelve directamente sin cambios (de manera similar a llamar a getBridge()).

Muestra
AndroidDebugBridge Un puente conectado o nulo si hubo errores durante la creación o la conexión al puente

createBridge

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

Crea un nuevo puente de depuración desde la ubicación de la herramienta de línea de comandos.

Se desconectará cualquier servidor existente, a menos que la ubicación sea la misma y forceNewBridge esté configurado como falso.

Parámetros
osLocation String: Es la ubicación de la herramienta de línea de comandos "adb".

forceNewBridge boolean: Fuerza la creación de un puente nuevo, incluso si ya existe uno con la misma ubicación.

timeout long: Es el tiempo máximo de espera.

unit TimeUnit: Es la unidad de tiempo del argumento timeout.

Muestra
AndroidDebugBridge Un puente conectado o nulo si hubo errores durante la creación o la conexión al puente

deviceChanged

public static void deviceChanged (IDevice device, 
                int changeMask)

Notifica al objeto de escucha sobre un IDevice modificado.

La notificación de los objetos de escucha se realiza en un bloque sincronizado. Es importante esperar que los objetos de escucha puedan acceder a varios métodos de IDevice, así como a getDevices(), que usan bloqueos internos.

Parámetros
device IDevice: Es el IDevice modificado.

changeMask int

deviceConnected

public static void deviceConnected (IDevice device)

Notifica al objeto de escucha sobre un nuevo IDevice.

La notificación de los objetos de escucha se realiza en un bloque sincronizado. Es importante esperar que los objetos de escucha puedan acceder a varios métodos de IDevice, así como a getDevices(), que usan bloqueos internos.

Parámetros
device IDevice: Es el nuevo IDevice.

deviceDisconnected

public static void deviceDisconnected (IDevice device)

Notifica al objeto de escucha que se desconectó un objeto IDevice.

La notificación de los objetos de escucha se realiza en un bloque sincronizado. Es importante esperar que los objetos de escucha puedan acceder a varios métodos de IDevice, así como a getDevices(), que usan bloqueos internos.

Parámetros
device IDevice: Es el IDevice desconectado.

disableFakeAdbServerMode

public static void disableFakeAdbServerMode ()

disconnectBridge

public static void disconnectBridge ()

Este método dejó de estar disponible.
Este método puede dejar de responder si ADB no responde. En su lugar, usa disconnectBridge(long, TimeUnit).

Desconecta el puente de depuración actual y destruye el objeto. Se deberá crear un objeto nuevo con createBridge(String, boolean).

Esto también detiene el servidor host de adb actual.

disconnectBridge

public static boolean disconnectBridge (long timeout, 
                TimeUnit unit)

Desconecta el puente de depuración actual y destruye el objeto. Se deberá crear un objeto nuevo con createBridge(String, boolean).

Esto también detiene el servidor host de adb actual.

Parámetros
timeout long

unit TimeUnit

Muestra
boolean true si el método se ejecuta correctamente dentro del tiempo de espera especificado.

enableFakeAdbServerMode

public static void enableFakeAdbServerMode (int port)

Parámetros
port int

getAdbVersion

public static ListenableFuture<AdbVersion> getAdbVersion (File adb)

Parámetros
adb File

Muestra
ListenableFuture<AdbVersion>

getBridge

public static AndroidDebugBridge getBridge ()

Devuelve el puente de depuración actual. Puede ser null si no se creó ninguno.

Muestra
AndroidDebugBridge

getClientSupport

public static boolean getClientSupport ()

Devuelve si ddmlib está configurado para admitir la supervisión y la interacción con los ClientImpl que se ejecutan en los IDevice.

Muestra
boolean

getConnectionAttemptCount

public int getConnectionAttemptCount ()

Devuelve la cantidad de veces que el objeto AndroidDebugBridge intentó conectarse al daemon de adb.

Muestra
int

getDebugBridgeChangeListenerCount

public static int getDebugBridgeChangeListenerCount ()

Muestra
int

getDeviceChangeListenerCount

public static int getDeviceChangeListenerCount ()

Muestra
int

getDevices

public IDevice[] getDevices ()

Devuelve los dispositivos.

Muestra
IDevice[]

getRawDeviceList

public ListenableFuture<> getRawDeviceList ()

Devuelve el conjunto de dispositivos que informa la línea de comandos de adb. Esto está pensado principalmente para el Asistente de conexión o para otras herramientas de diagnóstico que necesitan validar el estado de la lista de getDevices() a través de otro canal. El código que solo necesita acceder a la lista de dispositivos debe llamar a getDevices().

Muestra
ListenableFuture<>

getRestartAttemptCount

public int getRestartAttemptCount ()

Devuelve la cantidad de veces que el objeto AndroidDebugBridge intentó reiniciar el daemon de adb.

Muestra
int

getSocketAddress

public static InetSocketAddress getSocketAddress ()

Este método dejó de estar disponible.
Este método devuelve una dirección de servidor de bucle invertido que puede no coincidir con la que usa el servidor de ADB. Es decir, la JVM puede estar en modo IPv4 mientras que el servidor de ADB se aloja en la dirección de bucle invertido IPv6. Prefiere openConnection() cuando abras una conexión al servidor de ADB.

Devuelve la dirección de socket del servidor de ADB en el host.

Este método intentará devolver una dirección de socket que se sabe que funciona abriendo un canal de socket al servidor de ADB. Se intentarán ambas direcciones de bucle invertido, IPv4 e IPv6. En el caso de que no se pueda establecer ninguna conexión, este método recurrirá a la dirección de bucle invertido preferida por la JVM. Esta lógica de resguardo es necesaria para evitar que se interrumpa la API.

Si el modo de servidor ADB falso está habilitado, este método recurrirá automáticamente a la implementación heredada sin intentar conectarse a ADB.

Muestra
InetSocketAddress

getVirtualDeviceId

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

Parámetros
service ListeningExecutorService

adb File

device IDevice

Muestra
ListenableFuture<String>

hasInitialDeviceList

public boolean hasInitialDeviceList ()

Devuelve un valor que indica si el puente adquirió la lista inicial de adb después de crearse.

Llamar a getDevices() inmediatamente después de createBridge(String, boolean) generalmente generará una lista vacía. Esto se debe al mecanismo interno de comunicación asíncrona con adb que no garantiza que la lista de IDevice se haya compilado antes de la llamada a getDevices().

La forma recomendada de obtener la lista de objetos IDevice es crear un objeto IDeviceChangeListener.

Muestra
boolean

init

public static void init (AdbInitOptions options)

Similar a init(boolean), con la capacidad de pasar un conjunto personalizado de variables de entorno.

Parámetros
options AdbInitOptions

init

public static void init (boolean clientSupport)

Inicializa la biblioteca de ddm.

Se debe llamar a este método una vez antes de cualquier llamada a createBridge(String, boolean).

Las preferencias de ddmlib también se deben inicializar con los valores predeterminados que se cambiaron de los valores predeterminados.

Cuando la aplicación se cierre, se debe llamar a terminate().

Parámetros
clientSupport boolean: Indica si la biblioteca debe habilitar la supervisión y la interacción con las aplicaciones que se ejecutan en los dispositivos.

init

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

Similar a init(boolean), con la capacidad de habilitar libusb y pasar un conjunto personalizado de variables de entorno.

Parámetros
clientSupport boolean

useLibusb boolean

env

initIfNeeded

public static void initIfNeeded (boolean clientSupport)

Inicializa la biblioteca solo si es necesario. Está en desuso para usos que no sean de prueba.

Parámetros
clientSupport boolean: Indica si la biblioteca debe habilitar la supervisión y la interacción con las aplicaciones que se ejecutan en los dispositivos.

También:

isConnected

public boolean isConnected ()

Devuelve un valor que indica si el objeto AndroidDebugBridge aún está conectado al daemon de adb.

Muestra
boolean

isUserManagedAdbMode

public static boolean isUserManagedAdbMode ()

Muestra
boolean Si se opera en el modo ADB administrado por el usuario, en el que ddmlib no administrará el servidor de ADB y no debería hacerlo.

openConnection

public static SocketChannel openConnection ()

Intenta conectarse al servidor local de Android Debug Bridge.

Muestra
SocketChannel Un socket conectado si la operación se realiza correctamente

Arroja
Se deben producir errores cuando se abre la conexión.

removeClientChangeListener

public static void removeClientChangeListener (AndroidDebugBridge.IClientChangeListener listener)

Quita el objeto de escucha de la colección de objetos de escucha que recibirán una notificación cuando cambie una propiedad de ClientImpl.

Parámetros
listener AndroidDebugBridge.IClientChangeListener: Es el objeto de escucha que ya no debe recibir notificaciones.

removeDebugBridgeChangeListener

public static void removeDebugBridgeChangeListener (AndroidDebugBridge.IDebugBridgeChangeListener listener)

Quita el objeto de escucha de la colección de objetos de escucha que recibirán una notificación cuando se inicie un nuevo AndroidDebugBridge.

Parámetros
listener AndroidDebugBridge.IDebugBridgeChangeListener: Es el objeto de escucha que ya no debe recibir notificaciones.

removeDeviceChangeListener

public static void removeDeviceChangeListener (AndroidDebugBridge.IDeviceChangeListener listener)

Quita el objeto de escucha de la colección de objetos de escucha que recibirán una notificación cuando se conecte o desconecte un IDevice, o cuando cambien sus propiedades o su lista de ClientImpl.

Parámetros
listener AndroidDebugBridge.IDeviceChangeListener: Es el objeto de escucha que ya no debe recibir notificaciones.

reiniciar

public boolean restart (long timeout, 
                TimeUnit unit)

Reinicia adb, pero no los servicios que lo rodean.

Parámetros
timeout long

unit TimeUnit

Muestra
boolean Es verdadero si la operación se realizó correctamente.

reiniciar

public boolean restart ()

Este método dejó de estar disponible.
Este método puede dejar de responder si ADB no responde. En su lugar, usa restart(long, TimeUnit).

Reinicia adb, pero no los servicios que lo rodean.

Muestra
boolean Es verdadero si la operación se realizó correctamente.

startAdb

public boolean startAdb (long timeout, 
                TimeUnit unit)

Inicia el servidor del host de adb. Este método no se debe usar cuando se utiliza un servidor de ADB administrado por el usuario, ya que el ciclo de vida del servidor debe ser administrado por el usuario, no por ddmlib.

Parámetros
timeout long

unit TimeUnit

Muestra
boolean Es verdadero si la operación se realizó correctamente.

cancelar

public static void terminate ()

Finaliza la biblioteca de DDM. Se debe llamar a este método cuando finaliza la aplicación.