AndroidDebugBridge

public class AndroidDebugBridge
extends Object

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


Une connexion à Android Debug Bridge (adb) côté hôte

Il s'agit du point central pour communiquer avec les appareils, les émulateurs ou les applications qui y sont exécutées.

init(boolean) doit être appelé avant toute autre action.

Résumé

Classes imbriquées

interface AndroidDebugBridge.IClientChangeListener

Les classes qui implémentent cette interface fournissent des méthodes qui traitent les modifications ClientImpl

interface AndroidDebugBridge.IDebugBridgeChangeListener

Les classes qui implémentent cette interface fournissent une méthode qui gère les modifications AndroidDebugBridge (y compris les redémarrages). 

interface AndroidDebugBridge.IDeviceChangeListener

Les classes qui implémentent cette interface fournissent des méthodes qui traitent l'ajout, la suppression et les modifications de IDevice

Constantes

int DEFAULT_START_ADB_TIMEOUT_MILLIS

Délai d'expiration par défaut utilisé lors du démarrage du serveur ADB

Champs

public static final AdbVersion MIN_ADB_VERSION

Version minimale et maximale d'adb acceptée.

Méthodes publiques

static void addClientChangeListener(AndroidDebugBridge.IClientChangeListener listener)

Ajoute l'écouteur à la collection d'écouteurs qui seront avertis lorsqu'une propriété ClientImpl a changé, en lui envoyant l'un des messages définis dans l'interface IClientChangeListener.

static void addDebugBridgeChangeListener(AndroidDebugBridge.IDebugBridgeChangeListener listener)

Ajoute l'écouteur à la collection d'écouteurs qui seront avertis lorsqu'un nouveau AndroidDebugBridge est connecté, en lui envoyant l'un des messages définis dans l'interface IDebugBridgeChangeListener.

static void addDeviceChangeListener(AndroidDebugBridge.IDeviceChangeListener listener)

Ajoute l'écouteur à la collection d'écouteurs qui seront avertis lorsqu'un IDevice est connecté ou déconnecté, ou lorsque ses propriétés ou sa liste ClientImpl ont changé, en lui envoyant l'un des messages définis dans l'interface IDeviceChangeListener.

static void clientChanged(ClientImpl client, int changeMask)

Avertissez l'écouteur d'un ClientImpl modifié.

static AndroidDebugBridge createBridge(long timeout, TimeUnit unit)

Crée un AndroidDebugBridge qui n'est lié à aucun exécutable particulier.

static AndroidDebugBridge createBridge(String osLocation, boolean forceNewBridge)

Cette méthode est obsolète. Cette méthode peut se bloquer si ADB ne répond pas. Utilisez plutôt createBridge(String, boolean, long, TimeUnit).

static AndroidDebugBridge createBridge()

Cette méthode est obsolète. Cette méthode peut se bloquer si ADB ne répond pas. Utilisez plutôt createBridge(long, TimeUnit).

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

Crée un pont de débogage à partir de l'emplacement de l'outil de ligne de commande.

static void deviceChanged(IDevice device, int changeMask)

Avertissez l'écouteur d'un IDevice modifié.

static void deviceConnected(IDevice device)

Notifier l'auditeur d'un nouveau IDevice.

static void deviceDisconnected(IDevice device)

Avertissez l'écouteur d'un IDevice déconnecté.

static void disableFakeAdbServerMode()
static void disconnectBridge()

Cette méthode est obsolète. Cette méthode peut se bloquer si ADB ne répond pas. Utilisez plutôt disconnectBridge(long, TimeUnit).

static boolean disconnectBridge(long timeout, TimeUnit unit)

Déconnecte le pont de débogage actuel et détruit l'objet.

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

Renvoie le pont de débogage actuel.

static boolean getClientSupport()

Indique si ddmlib est configuré pour surveiller et interagir avec les ClientImpl exécutés sur les IDevice.

int getConnectionAttemptCount()

Renvoie le nombre de fois où l'objet AndroidDebugBridge a tenté de se connecter au démon adb.

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

Retourne les appareils.

ListenableFuture<> getRawDeviceList()

Renvoie l'ensemble des appareils signalés par la ligne de commande adb.

int getRestartAttemptCount()

Renvoie le nombre de fois où l'objet AndroidDebugBridge a tenté de redémarrer le daemon adb.

static InetSocketAddress getSocketAddress()

Cette méthode est obsolète. Cette méthode renvoie une adresse de serveur de bouclage qui peut ne pas correspondre à celle utilisée par le serveur ADB. Par exemple, la JVM peut être en mode IPv4 alors que le serveur ADB est hébergé sur l'adresse de bouclage IPv6. Préférez openConnection() lors de l'ouverture d'une connexion au serveur ADB.

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

Indique si le pont a acquis la liste initiale à partir d'adb après sa création.

static void init(AdbInitOptions options)

Semblable à init(boolean), avec la possibilité de transmettre un ensemble personnalisé d'env.

static void init(boolean clientSupport)

Initialise la bibliothèque ddm.

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

Semblable à init(boolean), avec la possibilité d'activer libusb et de transmettre un ensemble personnalisé de variables d'environnement.

static void initIfNeeded(boolean clientSupport)

La bibliothèque n'est initialisée que si nécessaire. Elle est obsolète pour les utilisations non liées aux tests.

boolean isConnected()

Indique si l'objet AndroidDebugBridge est toujours connecté au démon adb.

static boolean isUserManagedAdbMode()
static SocketChannel openConnection()

Tente de se connecter au serveur Android Debug Bridge local.

static void removeClientChangeListener(AndroidDebugBridge.IClientChangeListener listener)

Supprime l'écouteur de la collection d'écouteurs qui seront avertis lorsqu'une propriété ClientImpl change.

static void removeDebugBridgeChangeListener(AndroidDebugBridge.IDebugBridgeChangeListener listener)

Supprime l'écouteur de la collection d'écouteurs qui seront avertis lorsqu'un nouveau AndroidDebugBridge est démarré.

static void removeDeviceChangeListener(AndroidDebugBridge.IDeviceChangeListener listener)

Supprime l'écouteur de la collection d'écouteurs qui seront avertis lorsqu'un IDevice est connecté ou déconnecté, ou lorsque ses propriétés ou sa liste ClientImpl ont changé.

boolean restart(long timeout, TimeUnit unit)

Redémarre adb, mais pas les services associés.

boolean restart()

Cette méthode est obsolète. Cette méthode peut se bloquer si ADB ne répond pas. Utilisez plutôt restart(long, TimeUnit).

boolean startAdb(long timeout, TimeUnit unit)

Démarre le serveur côté hôte adb.

static void terminate()

Arrête la bibliothèque DDM.

Constantes

DEFAULT_START_ADB_TIMEOUT_MILLIS

public static final int DEFAULT_START_ADB_TIMEOUT_MILLIS

Délai d'expiration par défaut utilisé lors du démarrage du serveur ADB

Valeur constante : 20000 (0x00004e20)

Champs

MIN_ADB_VERSION

public static final AdbVersion MIN_ADB_VERSION

Version minimale et maximale d'adb acceptée. Cela correspond à ADB_SERVER_VERSION trouvé dans //device/tools/adb/adb.h

Méthodes publiques

addClientChangeListener

public static void addClientChangeListener (AndroidDebugBridge.IClientChangeListener listener)

Ajoute l'écouteur à la collection d'écouteurs qui seront avertis lorsqu'une propriété ClientImpl a changé, en lui envoyant l'un des messages définis dans l'interface IClientChangeListener.

Paramètres
listener AndroidDebugBridge.IClientChangeListener : écouteur à notifier.

addDebugBridgeChangeListener

public static void addDebugBridgeChangeListener (AndroidDebugBridge.IDebugBridgeChangeListener listener)

Ajoute l'écouteur à la collection d'écouteurs qui seront avertis lorsqu'un nouveau AndroidDebugBridge est connecté, en lui envoyant l'un des messages définis dans l'interface IDebugBridgeChangeListener.

Paramètres
listener AndroidDebugBridge.IDebugBridgeChangeListener : écouteur à notifier.

addDeviceChangeListener

public static void addDeviceChangeListener (AndroidDebugBridge.IDeviceChangeListener listener)

Ajoute l'écouteur à la collection d'écouteurs qui seront avertis lorsqu'un IDevice est connecté ou déconnecté, ou lorsque ses propriétés ou sa liste ClientImpl ont changé, en lui envoyant l'un des messages définis dans l'interface IDeviceChangeListener.

Paramètres
listener AndroidDebugBridge.IDeviceChangeListener : écouteur à notifier.

clientChanged

public static void clientChanged (ClientImpl client, 
                int changeMask)

Avertissez l'écouteur d'un ClientImpl modifié.

La notification des écouteurs est effectuée dans un bloc synchronisé. Il est important de s'attendre à ce que les écouteurs puissent accéder à différentes méthodes de IDevice ainsi qu'à getDevices() qui utilisent des verrous internes.

Paramètres
client ClientImpl : Client modifié.

changeMask int : masque indiquant ce qui a changé dans Client

createBridge

public static AndroidDebugBridge createBridge (long timeout, 
                TimeUnit unit)

Crée un AndroidDebugBridge qui n'est lié à aucun exécutable particulier.

Ce pont s'attend à ce qu'adb soit en cours d'exécution. Il ne pourra pas démarrer, arrêter ni redémarrer adb.

Si un pont a déjà été démarré, il est renvoyé directement sans aucune modification (comme si vous appeliez getBridge()).

Paramètres
timeout long

unit TimeUnit

Renvoie
AndroidDebugBridge un pont connecté, ou null si des erreurs se sont produites lors de la création ou de la connexion au pont.

createBridge

public static AndroidDebugBridge createBridge (String osLocation, 
                boolean forceNewBridge)

Cette méthode est obsolète.
Cette méthode peut se bloquer si ADB ne répond pas. Utilisez createBridge(String, boolean, long, TimeUnit) à la place.

Crée un pont de débogage à partir de l'emplacement de l'outil de ligne de commande.

Tout serveur existant sera déconnecté, sauf si l'emplacement est le même et que forceNewBridge est défini sur "false".

Paramètres
osLocation String : emplacement de l'outil de ligne de commande "adb".

forceNewBridge boolean : force la création d'un pont, même si un pont avec le même emplacement existe déjà.

Renvoie
AndroidDebugBridge un pont connecté, ou null si des erreurs se sont produites lors de la création ou de la connexion au pont.

createBridge

public static AndroidDebugBridge createBridge ()

Cette méthode est obsolète.
Cette méthode peut se bloquer si ADB ne répond pas. Utilisez createBridge(long, TimeUnit) à la place.

Crée un AndroidDebugBridge qui n'est lié à aucun exécutable particulier.

Ce pont s'attend à ce qu'adb soit en cours d'exécution. Il ne pourra pas démarrer, arrêter ni redémarrer adb.

Si un pont a déjà été démarré, il est renvoyé directement sans aucune modification (comme si vous appeliez getBridge()).

Renvoie
AndroidDebugBridge un pont connecté, ou null si des erreurs se sont produites lors de la création ou de la connexion au pont.

createBridge

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

Crée un pont de débogage à partir de l'emplacement de l'outil de ligne de commande.

Tout serveur existant sera déconnecté, sauf si l'emplacement est le même et que forceNewBridge est défini sur "false".

Paramètres
osLocation String : emplacement de l'outil de ligne de commande "adb".

forceNewBridge boolean : force la création d'un pont, même si un pont avec le même emplacement existe déjà.

timeout long : temps d'attente maximal

unit TimeUnit : unité de temps de l'argument timeout

Renvoie
AndroidDebugBridge un pont connecté, ou null si des erreurs se sont produites lors de la création ou de la connexion au pont.

deviceChanged

public static void deviceChanged (IDevice device, 
                int changeMask)

Avertissez l'écouteur d'un IDevice modifié.

La notification des écouteurs est effectuée dans un bloc synchronisé. Il est important de s'attendre à ce que les écouteurs puissent accéder à différentes méthodes de IDevice ainsi qu'à getDevices() qui utilisent des verrous internes.

Paramètres
device IDevice : IDevice modifié.

changeMask int

deviceConnected

public static void deviceConnected (IDevice device)

Notifier l'auditeur d'un nouveau IDevice.

La notification des écouteurs est effectuée dans un bloc synchronisé. Il est important de s'attendre à ce que les écouteurs puissent accéder à différentes méthodes de IDevice ainsi qu'à getDevices() qui utilisent des verrous internes.

Paramètres
device IDevice : le nouveau IDevice.

deviceDisconnected

public static void deviceDisconnected (IDevice device)

Avertissez l'écouteur d'un IDevice déconnecté.

La notification des écouteurs est effectuée dans un bloc synchronisé. Il est important de s'attendre à ce que les écouteurs puissent accéder à différentes méthodes de IDevice ainsi qu'à getDevices() qui utilisent des verrous internes.

Paramètres
device IDevice : IDevice déconnecté.

disableFakeAdbServerMode

public static void disableFakeAdbServerMode ()

disconnectBridge

public static void disconnectBridge ()

Cette méthode est obsolète.
Cette méthode peut se bloquer si ADB ne répond pas. Utilisez disconnectBridge(long, TimeUnit) à la place.

Déconnecte le pont de débogage actuel et détruit l'objet. Un nouvel objet devra être créé avec createBridge(String, boolean).

Cela arrête également le serveur hôte adb actuel.

disconnectBridge

public static boolean disconnectBridge (long timeout, 
                TimeUnit unit)

Déconnecte le pont de débogage actuel et détruit l'objet. Un nouvel objet devra être créé avec createBridge(String, boolean).

Cela arrête également le serveur hôte adb actuel.

Paramètres
timeout long

unit TimeUnit

Renvoie
boolean true si la méthode réussit dans le délai spécifié.

enableFakeAdbServerMode

public static void enableFakeAdbServerMode (int port)

Paramètres
port int

getAdbVersion

public static ListenableFuture<AdbVersion> getAdbVersion (File adb)

Paramètres
adb File

Renvoie
ListenableFuture<AdbVersion>

getBridge

public static AndroidDebugBridge getBridge ()

Renvoie le pont de débogage actuel. Peut être null si aucun n'a été créé.

Renvoie
AndroidDebugBridge

getClientSupport

public static boolean getClientSupport ()

Indique si ddmlib est configuré pour surveiller les ClientImpl exécutés sur les IDevice et interagir avec eux.

Renvoie
boolean

getConnectionAttemptCount

public int getConnectionAttemptCount ()

Renvoie le nombre de fois où l'objet AndroidDebugBridge a tenté de se connecter au démon adb.

Renvoie
int

getDebugBridgeChangeListenerCount

public static int getDebugBridgeChangeListenerCount ()

Renvoie
int

getDeviceChangeListenerCount

public static int getDeviceChangeListenerCount ()

Renvoie
int

getDevices

public IDevice[] getDevices ()

Retourne les appareils.

Renvoie
IDevice[]

Voir aussi :

getRawDeviceList

public ListenableFuture<> getRawDeviceList ()

Renvoie l'ensemble des appareils signalés par la ligne de commande adb. Cette méthode est principalement destinée à l'assistant de connexion ou à d'autres outils de diagnostic qui doivent valider l'état de la liste getDevices() via un autre canal. Le code qui n'a besoin que d'accéder à la liste des appareils doit appeler getDevices() à la place.

Renvoie
ListenableFuture<>

getRestartAttemptCount

public int getRestartAttemptCount ()

Renvoie le nombre de fois où l'objet AndroidDebugBridge a tenté de redémarrer le daemon adb.

Renvoie
int

getSocketAddress

public static InetSocketAddress getSocketAddress ()

Cette méthode est obsolète.
Cette méthode renvoie une adresse de serveur de bouclage qui ne correspond pas forcément à celle utilisée par le serveur ADB. Par exemple, la JVM peut être en mode IPv4 alors que le serveur ADB est hébergé sur l'adresse de bouclage IPv6. Préférez openConnection() lors de l'ouverture d'une connexion au serveur ADB.

Renvoie l'adresse du socket du serveur ADB sur l'hôte.

Cette méthode tentera de renvoyer une adresse de socket qui fonctionne en ouvrant un canal de socket vers le serveur ADB. Les adresses de bouclage IPv4 et IPv6 seront utilisées. Si aucun des deux ne peut se connecter, cette méthode renvoie l'adresse de bouclage préférée par la JVM. Cette logique de secours est nécessaire pour éviter toute défaillance de l'API.

Si le mode faux serveur ADB est activé, cette méthode reviendra automatiquement à l'ancienne implémentation sans tenter de se connecter à ADB.

Renvoie
InetSocketAddress

getVirtualDeviceId

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

Paramètres
service ListeningExecutorService

adb File

device IDevice

Renvoie
ListenableFuture<String>

hasInitialDeviceList

public boolean hasInitialDeviceList ()

Indique si le pont a acquis la liste initiale à partir d'adb après sa création.

L'appel de getDevices() juste après createBridge(String, boolean) génère généralement une liste vide. Cela est dû au mécanisme de communication asynchrone interne avec adb, qui ne garantit pas que la liste IDevice a été créée avant l'appel à getDevices().

La méthode recommandée pour obtenir la liste des objets IDevice consiste à créer un objet IDeviceChangeListener.

Renvoie
boolean

init

public static void init (AdbInitOptions options)

Semblable à init(boolean), avec la possibilité de transmettre un ensemble personnalisé de variables d'environnement.

Paramètres
options AdbInitOptions

init

public static void init (boolean clientSupport)

Initialise la bibliothèque ddm.

Cette méthode doit être appelée une seule fois avant tout appel à createBridge(String, boolean).

Les préférences de ddmlib doivent également être initialisées avec les valeurs par défaut qui ont été modifiées.

Lorsque l'application quitte, terminate() doit être appelé.

Paramètres
clientSupport boolean : indique si la bibliothèque doit activer la surveillance et l'interaction avec les applications s'exécutant sur les appareils.

init

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

Semblable à init(boolean), avec la possibilité d'activer libusb et de transmettre un ensemble personnalisé de variables d'environnement.

Paramètres
clientSupport boolean

useLibusb boolean

env

initIfNeeded

public static void initIfNeeded (boolean clientSupport)

La bibliothèque n'est initialisée que si nécessaire. Elle est obsolète pour les utilisations non liées aux tests.

Paramètres
clientSupport boolean : indique si la bibliothèque doit activer la surveillance et l'interaction avec les applications s'exécutant sur les appareils.

Voir aussi :

isConnected

public boolean isConnected ()

Indique si l'objet AndroidDebugBridge est toujours connecté au démon adb.

Renvoie
boolean

isUserManagedAdbMode

public static boolean isUserManagedAdbMode ()

Renvoie
boolean Si vous utilisez le mode ADB géré par l'utilisateur, ddmlib ne gérera pas le serveur ADB et ne devrait pas le faire.

openConnection

public static SocketChannel openConnection ()

Tente de se connecter au serveur Android Debug Bridge local.

Renvoie
SocketChannel une socket connectée en cas de succès.

Génère
en cas d'erreur lors de l'ouverture de la connexion.

removeClientChangeListener

public static void removeClientChangeListener (AndroidDebugBridge.IClientChangeListener listener)

Supprime l'écouteur de la collection d'écouteurs qui seront avertis lorsqu'une propriété ClientImpl change.

Paramètres
listener AndroidDebugBridge.IClientChangeListener : écouteur qui ne doit plus recevoir de notifications.

removeDebugBridgeChangeListener

public static void removeDebugBridgeChangeListener (AndroidDebugBridge.IDebugBridgeChangeListener listener)

Supprime l'écouteur de la collection d'écouteurs qui seront avertis lorsqu'un nouveau AndroidDebugBridge est démarré.

Paramètres
listener AndroidDebugBridge.IDebugBridgeChangeListener : écouteur qui ne doit plus recevoir de notifications.

removeDeviceChangeListener

public static void removeDeviceChangeListener (AndroidDebugBridge.IDeviceChangeListener listener)

Supprime l'écouteur de la collection d'écouteurs qui seront avertis lorsqu'un IDevice est connecté ou déconnecté, ou lorsque ses propriétés ou sa liste ClientImpl ont changé.

Paramètres
listener AndroidDebugBridge.IDeviceChangeListener : écouteur qui ne doit plus recevoir de notifications.

redémarrer

public boolean restart (long timeout, 
                TimeUnit unit)

Redémarre adb, mais pas les services associés.

Paramètres
timeout long

unit TimeUnit

Renvoie
boolean "True" en cas de réussite.

redémarrer

public boolean restart ()

Cette méthode est obsolète.
Cette méthode peut se bloquer si ADB ne répond pas. Utilisez restart(long, TimeUnit) à la place.

Redémarre adb, mais pas les services associés.

Renvoie
boolean "True" en cas de réussite.

startAdb

public boolean startAdb (long timeout, 
                TimeUnit unit)

Démarre le serveur côté hôte adb. Cette méthode ne doit pas être utilisée lorsque vous utilisez un serveur ADB géré par l'utilisateur, car le cycle de vie du serveur doit être géré par l'utilisateur, et non par ddmlib.

Paramètres
timeout long

unit TimeUnit

Renvoie
boolean "true" en cas de réussite

finis

public static void terminate ()

Arrête la bibliothèque DDM. Cette méthode doit être appelée à la fin de l'application.