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 |
interface |
AndroidDebugBridge.IDebugBridgeChangeListener
Las clases que implementan esta interfaz proporcionan un método que se ocupa de los cambios de |
interface |
AndroidDebugBridge.IDeviceChangeListener
Las clases que implementan esta interfaz proporcionan métodos que se encargan de la adición, eliminación y cambios de |
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 |
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 |
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 |
static
void
|
clientChanged(ClientImpl client, int changeMask)
Notifica al objeto de escucha sobre un |
static
AndroidDebugBridge
|
createBridge(long timeout, TimeUnit unit)
Crea un |
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 |
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 |
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 |
static
void
|
deviceConnected(IDevice device)
Notifica al objeto de escucha sobre un nuevo |
static
void
|
deviceDisconnected(IDevice device)
Notifica al objeto de escucha que se desconectó un objeto |
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 |
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 |
int
|
getConnectionAttemptCount()
Devuelve la cantidad de veces que el objeto |
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 |
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 |
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 |
static
void
|
init(boolean clientSupport)
Inicializa la biblioteca de |
static
void
|
init(boolean clientSupport, boolean useLibusb,
Similar a |
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 |
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 |
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 |
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 |
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 |
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 |
|
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.