AndroidDebugBridge
public
class
AndroidDebugBridge
extends Object
| java.lang.Object | |
| ↳ | com.android.tradefed.device.server.AndroidDebugBridge |
Una connessione ad Android Debug Bridge (ADB) lato host
Questo è il punto centrale per comunicare con qualsiasi dispositivo, emulatore o applicazione in esecuzione.
init(boolean) deve essere chiamato prima di qualsiasi altra operazione.
Riepilogo
Classi nidificate | |
|---|---|
interface |
AndroidDebugBridge.IClientChangeListener
Le classi che implementano questa interfaccia forniscono metodi che gestiscono le modifiche |
interface |
AndroidDebugBridge.IDebugBridgeChangeListener
Le classi che implementano questa interfaccia forniscono un metodo che gestisce le modifiche di |
interface |
AndroidDebugBridge.IDeviceChangeListener
Le classi che implementano questa interfaccia forniscono metodi che gestiscono l'aggiunta, l'eliminazione e le modifiche di |
Costanti | |
|---|---|
int |
DEFAULT_START_ADB_TIMEOUT_MILLIS
Timeout predefinito utilizzato all'avvio del server ADB |
Campi | |
|---|---|
public
static
final
AdbVersion |
MIN_ADB_VERSION
Versione minima e massima di adb supportata. |
Metodi pubblici | |
|---|---|
static
void
|
addClientChangeListener(AndroidDebugBridge.IClientChangeListener listener)
Aggiunge il listener alla raccolta di listener che riceveranno una notifica quando una proprietà |
static
void
|
addDebugBridgeChangeListener(AndroidDebugBridge.IDebugBridgeChangeListener listener)
Aggiunge l'ascoltatore alla raccolta di ascoltatori che riceveranno una notifica quando viene connesso un nuovo |
static
void
|
addDeviceChangeListener(AndroidDebugBridge.IDeviceChangeListener listener)
Aggiunge il listener alla raccolta di listener che riceveranno una notifica quando un |
static
void
|
clientChanged(ClientImpl client, int changeMask)
Notifica all'ascoltatore di un |
static
AndroidDebugBridge
|
createBridge(long timeout, TimeUnit unit)
Crea un |
static
AndroidDebugBridge
|
createBridge(String osLocation, boolean forceNewBridge)
Questo metodo è obsoleto.
Questo metodo potrebbe bloccarsi se ADB non risponde. Utilizza invece |
static
AndroidDebugBridge
|
createBridge()
Questo metodo è obsoleto.
Questo metodo potrebbe bloccarsi se ADB non risponde. Utilizza invece |
static
AndroidDebugBridge
|
createBridge(String osLocation, boolean forceNewBridge, long timeout, TimeUnit unit)
Crea un nuovo bridge di debug dalla posizione dello strumento a riga di comando. |
static
void
|
deviceChanged(IDevice device, int changeMask)
Notifica all'ascoltatore di un |
static
void
|
deviceConnected(IDevice device)
Notifica all'ascoltatore un nuovo |
static
void
|
deviceDisconnected(IDevice device)
Notifica all'ascoltatore la disconnessione di |
static
void
|
disableFakeAdbServerMode()
|
static
void
|
disconnectBridge()
Questo metodo è obsoleto.
Questo metodo potrebbe bloccarsi se ADB non risponde. Utilizza invece |
static
boolean
|
disconnectBridge(long timeout, TimeUnit unit)
Scollega il bridge di debug corrente e distrugge l'oggetto. |
static
void
|
enableFakeAdbServerMode(int port)
|
static
ListenableFuture<AdbVersion>
|
getAdbVersion(File adb)
|
static
AndroidDebugBridge
|
getBridge()
Restituisce il bridge di debug corrente. |
static
boolean
|
getClientSupport()
Restituisce un valore che indica se ddmlib è configurato per supportare il monitoraggio e l'interazione con i |
int
|
getConnectionAttemptCount()
Restituisce il numero di tentativi di connessione dell'oggetto |
static
int
|
getDebugBridgeChangeListenerCount()
|
static
int
|
getDeviceChangeListenerCount()
|
IDevice[]
|
getDevices()
Restituisce i dispositivi. |
ListenableFuture<
|
getRawDeviceList()
Restituisce l'insieme di dispositivi segnalati dalla riga di comando adb. |
int
|
getRestartAttemptCount()
Restituisce il numero di tentativi di riavvio del daemon adb dell'oggetto |
static
InetSocketAddress
|
getSocketAddress()
Questo metodo è obsoleto.
Questo metodo restituisce un indirizzo del server di loopback che potrebbe non corrispondere a quello utilizzato dal server ADB. Ad esempio, la JVM potrebbe essere in modalità IPv4, mentre il server ADB è ospitato sull'indirizzo di loopback IPv6. Preferisci |
static
ListenableFuture<String>
|
getVirtualDeviceId(ListeningExecutorService service, File adb, IDevice device)
|
boolean
|
hasInitialDeviceList()
Restituisce un valore che indica se il bridge ha acquisito l'elenco iniziale da adb dopo la creazione. |
static
void
|
init(AdbInitOptions options)
Simile a |
static
void
|
init(boolean clientSupport)
Inizializza la libreria |
static
void
|
init(boolean clientSupport, boolean useLibusb,
Simile a |
static
void
|
initIfNeeded(boolean clientSupport)
Inizializza la libreria solo se necessario; deprecata per utilizzi non di test. |
boolean
|
isConnected()
Restituisce un valore che indica se l'oggetto |
static
boolean
|
isUserManagedAdbMode()
|
static
SocketChannel
|
openConnection()
Tenta di connettersi al server Android Debug Bridge locale. |
static
void
|
removeClientChangeListener(AndroidDebugBridge.IClientChangeListener listener)
Rimuove il listener dalla raccolta di listener che riceveranno una notifica quando una proprietà |
static
void
|
removeDebugBridgeChangeListener(AndroidDebugBridge.IDebugBridgeChangeListener listener)
Rimuove il listener dalla raccolta di listener che riceveranno una notifica quando viene avviato un nuovo |
static
void
|
removeDeviceChangeListener(AndroidDebugBridge.IDeviceChangeListener listener)
Rimuove il listener dalla raccolta di listener che riceveranno una notifica quando un |
boolean
|
restart(long timeout, TimeUnit unit)
Riavvia adb, ma non i servizi correlati. |
boolean
|
restart()
Questo metodo è obsoleto.
Questo metodo potrebbe bloccarsi se ADB non risponde. Utilizza invece |
boolean
|
startAdb(long timeout, TimeUnit unit)
Avvia il server lato host adb. |
static
void
|
terminate()
Termina la libreria ddm. |
Costanti
DEFAULT_START_ADB_TIMEOUT_MILLIS
public static final int DEFAULT_START_ADB_TIMEOUT_MILLIS
Timeout predefinito utilizzato all'avvio del server ADB
Constant Value: 20000 (0x00004e20)
Campi
MIN_ADB_VERSION
public static final AdbVersion MIN_ADB_VERSION
Versione minima e massima di adb supportata. Corrisponde ad ADB_SERVER_VERSION trovato in //device/tools/adb/adb.h
Metodi pubblici
addClientChangeListener
public static void addClientChangeListener (AndroidDebugBridge.IClientChangeListener listener)
Aggiunge il listener alla raccolta di listener che riceveranno una notifica quando una proprietà ClientImpl cambia, inviando uno dei messaggi definiti nell'interfaccia IClientChangeListener.
| Parametri | |
|---|---|
listener |
AndroidDebugBridge.IClientChangeListener: il listener a cui inviare la notifica. |
addDebugBridgeChangeListener
public static void addDebugBridgeChangeListener (AndroidDebugBridge.IDebugBridgeChangeListener listener)
Aggiunge l'ascoltatore alla raccolta di ascoltatori che riceveranno una notifica quando viene connesso un nuovo AndroidDebugBridge, inviando uno dei messaggi definiti nell'interfaccia IDebugBridgeChangeListener.
| Parametri | |
|---|---|
listener |
AndroidDebugBridge.IDebugBridgeChangeListener: il listener a cui inviare la notifica. |
addDeviceChangeListener
public static void addDeviceChangeListener (AndroidDebugBridge.IDeviceChangeListener listener)
Aggiunge il listener alla raccolta di listener che riceveranno una notifica quando un IDevice
viene connesso, disconnesso o quando le sue proprietà o il suo elenco ClientImpl sono cambiati, inviando uno dei messaggi definiti nell'interfaccia IDeviceChangeListener.
| Parametri | |
|---|---|
listener |
AndroidDebugBridge.IDeviceChangeListener: il listener a cui inviare la notifica. |
clientChanged
public static void clientChanged (ClientImpl client, int changeMask)
Notifica all'ascoltatore di un ClientImpl modificato.
La notifica degli ascoltatori viene eseguita in un blocco sincronizzato. È importante
aspettarsi che gli ascoltatori possano accedere a vari metodi di IDevice, nonché
getDevices() che utilizzano serrature interne.
| Parametri | |
|---|---|
client |
ClientImpl: il Client modificato. |
changeMask |
int: la maschera che indica cosa è cambiato in Client |
createBridge
public static AndroidDebugBridge createBridge (long timeout, TimeUnit unit)
Crea un AndroidDebugBridge non collegato a nessun eseguibile specifico.
Questo bridge si aspetta che adb sia in esecuzione. Non sarà in grado di avviare/interrompere/riavviare adb.
Se un bridge è già stato avviato, viene restituito direttamente senza modifiche (in modo simile alla chiamata di getBridge()).
| Parametri | |
|---|---|
timeout |
long |
unit |
TimeUnit |
| Ritorni | |
|---|---|
AndroidDebugBridge |
un bridge connesso o null se si sono verificati errori durante la creazione o la connessione al bridge |
createBridge
public static AndroidDebugBridge createBridge (String osLocation, boolean forceNewBridge)
Questo metodo è obsoleto.
Questo metodo potrebbe bloccarsi se ADB non risponde. Utilizza invece createBridge(String, boolean, long, TimeUnit).
Crea un nuovo bridge di debug dalla posizione dello strumento a riga di comando.
Qualsiasi server esistente verrà disconnesso, a meno che la posizione non sia la stessa e
forceNewBridge sia impostato su false.
| Parametri | |
|---|---|
osLocation |
String: la posizione dello strumento a riga di comando "adb" |
forceNewBridge |
boolean: forza la creazione di un nuovo bridge anche se ne esiste già uno con la stessa posizione. |
| Ritorni | |
|---|---|
AndroidDebugBridge |
un bridge connesso o null se si sono verificati errori durante la creazione o la connessione al bridge |
createBridge
public static AndroidDebugBridge createBridge ()
Questo metodo è obsoleto.
Questo metodo potrebbe bloccarsi se ADB non risponde. Utilizza invece createBridge(long, TimeUnit).
Crea un AndroidDebugBridge non collegato a nessun eseguibile specifico.
Questo bridge si aspetta che adb sia in esecuzione. Non sarà in grado di avviare/interrompere/riavviare adb.
Se un bridge è già stato avviato, viene restituito direttamente senza modifiche (in modo simile alla chiamata di getBridge()).
| Ritorni | |
|---|---|
AndroidDebugBridge |
un bridge connesso o null se si sono verificati errori durante la creazione o la connessione al bridge |
createBridge
public static AndroidDebugBridge createBridge (String osLocation, boolean forceNewBridge, long timeout, TimeUnit unit)
Crea un nuovo bridge di debug dalla posizione dello strumento a riga di comando.
Qualsiasi server esistente verrà disconnesso, a meno che la posizione non sia la stessa e
forceNewBridge sia impostato su false.
| Parametri | |
|---|---|
osLocation |
String: la posizione dello strumento a riga di comando "adb" |
forceNewBridge |
boolean: forza la creazione di un nuovo bridge anche se ne esiste già uno con la stessa posizione. |
timeout |
long: il tempo massimo di attesa |
unit |
TimeUnit: l'unità di tempo dell'argomento timeout |
| Ritorni | |
|---|---|
AndroidDebugBridge |
un bridge connesso o null se si sono verificati errori durante la creazione o la connessione al bridge |
deviceChanged
public static void deviceChanged (IDevice device, int changeMask)
Notifica all'ascoltatore di un IDevice modificato.
La notifica degli ascoltatori viene eseguita in un blocco sincronizzato. È importante
aspettarsi che gli ascoltatori possano accedere a vari metodi di IDevice, nonché
getDevices() che utilizzano serrature interne.
| Parametri | |
|---|---|
device |
IDevice: la IDevice modificata. |
changeMask |
int |
deviceConnected
public static void deviceConnected (IDevice device)
Notifica all'ascoltatore un nuovo IDevice.
La notifica degli ascoltatori viene eseguita in un blocco sincronizzato. È importante
aspettarsi che gli ascoltatori possano accedere a vari metodi di IDevice, nonché
getDevices() che utilizzano serrature interne.
| Parametri | |
|---|---|
device |
IDevice: il nuovo IDevice. |
deviceDisconnected
public static void deviceDisconnected (IDevice device)
Notifica all'ascoltatore la disconnessione di IDevice.
La notifica degli ascoltatori viene eseguita in un blocco sincronizzato. È importante
aspettarsi che gli ascoltatori possano accedere a vari metodi di IDevice, nonché
getDevices() che utilizzano serrature interne.
| Parametri | |
|---|---|
device |
IDevice: il IDevice disconnesso. |
disableFakeAdbServerMode
public static void disableFakeAdbServerMode ()
disconnectBridge
public static void disconnectBridge ()
Questo metodo è obsoleto.
Questo metodo potrebbe bloccarsi se ADB non risponde. Utilizza invece disconnectBridge(long, TimeUnit).
Scollega il bridge di debug corrente e distrugge l'oggetto. Dovrà essere creato un nuovo oggetto con createBridge(String, boolean).
In questo modo, viene arrestato anche il server host adb corrente.
disconnectBridge
public static boolean disconnectBridge (long timeout,
TimeUnit unit)Scollega il bridge di debug corrente e distrugge l'oggetto. Dovrà essere creato un nuovo oggetto con createBridge(String, boolean).
In questo modo, viene arrestato anche il server host adb corrente.
| Parametri | |
|---|---|
timeout |
long |
unit |
TimeUnit |
| Ritorni | |
|---|---|
boolean |
true se il metodo ha esito positivo entro il timeout specificato. |
enableFakeAdbServerMode
public static void enableFakeAdbServerMode (int port)
| Parametri | |
|---|---|
port |
int |
getAdbVersion
public static ListenableFuture<AdbVersion> getAdbVersion (File adb)
| Parametri | |
|---|---|
adb |
File |
| Ritorni | |
|---|---|
ListenableFuture<AdbVersion> |
|
getBridge
public static AndroidDebugBridge getBridge ()
Restituisce il bridge di debug corrente. Può essere null se non ne è stato creato nessuno.
| Ritorni | |
|---|---|
AndroidDebugBridge |
|
getClientSupport
public static boolean getClientSupport ()
Restituisce un valore che indica se ddmlib è configurato per supportare il monitoraggio e l'interazione con i ClientImpl in esecuzione sui IDevice.
| Ritorni | |
|---|---|
boolean |
|
getConnectionAttemptCount
public int getConnectionAttemptCount ()
Restituisce il numero di tentativi di connessione dell'oggetto AndroidDebugBridge al
daemon adb.
| Ritorni | |
|---|---|
int |
|
getDebugBridgeChangeListenerCount
public static int getDebugBridgeChangeListenerCount ()
| Ritorni | |
|---|---|
int |
|
getDeviceChangeListenerCount
public static int getDeviceChangeListenerCount ()
| Ritorni | |
|---|---|
int |
|
getRawDeviceList
public ListenableFuture<> getRawDeviceList ()
Restituisce l'insieme di dispositivi segnalati dalla riga di comando adb. Questa funzionalità è pensata principalmente per l'assistente alla connessione o altri strumenti di diagnostica che devono convalidare lo stato dell'elenco getDevices() tramite un altro canale. Il codice che deve solo accedere all'elenco dei dispositivi
deve chiamare getDevices().
| Ritorni | |
|---|---|
ListenableFuture< |
|
getRestartAttemptCount
public int getRestartAttemptCount ()
Restituisce il numero di tentativi di riavvio del daemon adb dell'oggetto AndroidDebugBridge.
| Ritorni | |
|---|---|
int |
|
getSocketAddress
public static InetSocketAddress getSocketAddress ()
Questo metodo è obsoleto.
Questo metodo restituisce un indirizzo del server di loopback che potrebbe non corrispondere a quello utilizzato dal server ADB. Ad esempio, la JVM potrebbe essere in modalità IPv4, mentre il server ADB è ospitato sull'indirizzo di loopback IPv6. Preferisci openConnection() quando apri una connessione
al server ADB.
Restituisce l'indirizzo socket del server ADB sull'host.
Questo metodo tenterà di restituire un indirizzo socket noto per funzionare aprendo un canale socket al server ADB. Verrà tentato sia l'indirizzo di loopback IPv4 che IPv6. Nel caso in cui nessuno dei due riesca a connettersi, questo metodo tornerà a restituire l'indirizzo di loopback preferito dalla JVM. Questa logica di fallback è necessaria per evitare interruzioni dell'API.
Se la modalità server ADB fittizio è attivata, questo metodo eseguirà automaticamente il fallback all'implementazione legacy senza tentare di connettersi ad ADB.
| Ritorni | |
|---|---|
InetSocketAddress |
|
getVirtualDeviceId
public static ListenableFuture<String> getVirtualDeviceId (ListeningExecutorService service,
File adb,
IDevice device)| Parametri | |
|---|---|
service |
ListeningExecutorService |
adb |
File |
device |
IDevice |
| Ritorni | |
|---|---|
ListenableFuture<String> |
|
hasInitialDeviceList
public boolean hasInitialDeviceList ()
Restituisce un valore che indica se il bridge ha acquisito l'elenco iniziale da adb dopo la creazione.
Chiamare getDevices() subito dopo createBridge(String, boolean)
in genere restituisce un elenco vuoto. Ciò è dovuto al meccanismo di comunicazione asincrona interno con adb che non garantisce che l'elenco IDevice sia stato creato prima della chiamata a getDevices().
Il modo consigliato per ottenere l'elenco degli oggetti IDevice è creare un oggetto IDeviceChangeListener.
| Ritorni | |
|---|---|
boolean |
|
init
public static void init (AdbInitOptions options)
Simile a init(boolean), con la possibilità di passare un insieme personalizzato di variabili di ambiente.
| Parametri | |
|---|---|
options |
AdbInitOptions |
init
public static void init (boolean clientSupport)
Inizializza la libreria ddm.
Questo metodo deve essere chiamato una volta prima di qualsiasi chiamata a createBridge(String, boolean).
Anche le preferenze di ddmlib devono essere inizializzate con i valori predefiniti
modificati rispetto a quelli predefiniti.
Quando l'applicazione viene chiusa, deve essere chiamato terminate().
| Parametri | |
|---|---|
clientSupport |
boolean: indica se la libreria deve attivare il monitoraggio e
l'interazione con le applicazioni in esecuzione sui dispositivi. |
Vedi anche:
init
public static void init (boolean clientSupport,
boolean useLibusb,
env) Simile a init(boolean), con la possibilità di attivare libusb e passare un insieme personalizzato di
variabili di ambiente.
| Parametri | |
|---|---|
clientSupport |
boolean |
useLibusb |
boolean |
env |
|
initIfNeeded
public static void initIfNeeded (boolean clientSupport)
Inizializza la libreria solo se necessario; deprecata per utilizzi non di test.
| Parametri | |
|---|---|
clientSupport |
boolean: indica se la libreria deve attivare il monitoraggio e
l'interazione con le applicazioni in esecuzione sui dispositivi. |
Vedi anche:
isConnected
public boolean isConnected ()
Restituisce un valore che indica se l'oggetto AndroidDebugBridge è ancora connesso al daemon adb.
| Ritorni | |
|---|---|
boolean |
|
isUserManagedAdbMode
public static boolean isUserManagedAdbMode ()
| Ritorni | |
|---|---|
boolean |
Se operi in modalità ADB gestita dall'utente in cui ddmlib non gestirà e non deve gestire il server ADB. |
openConnection
public static SocketChannel openConnection ()
Tenta di connettersi al server Android Debug Bridge locale.
| Ritorni | |
|---|---|
SocketChannel |
una presa connessa in caso di esito positivo |
| Lanci | |
|---|---|
|
in caso di errori all'apertura della connessione |
removeClientChangeListener
public static void removeClientChangeListener (AndroidDebugBridge.IClientChangeListener listener)
Rimuove il listener dalla raccolta di listener che riceveranno una notifica quando una proprietà ClientImpl cambia.
| Parametri | |
|---|---|
listener |
AndroidDebugBridge.IClientChangeListener: il listener che non deve più ricevere notifiche. |
removeDebugBridgeChangeListener
public static void removeDebugBridgeChangeListener (AndroidDebugBridge.IDebugBridgeChangeListener listener)
Rimuove il listener dalla raccolta di listener che riceveranno una notifica quando viene avviato un nuovo AndroidDebugBridge.
| Parametri | |
|---|---|
listener |
AndroidDebugBridge.IDebugBridgeChangeListener: il listener che non deve più ricevere notifiche. |
removeDeviceChangeListener
public static void removeDeviceChangeListener (AndroidDebugBridge.IDeviceChangeListener listener)
Rimuove il listener dalla raccolta di listener che riceveranno una notifica quando un IDevice viene connesso, disconnesso o quando le sue proprietà o il suo elenco di ClientImpl
sono state modificate.
| Parametri | |
|---|---|
listener |
AndroidDebugBridge.IDeviceChangeListener: il listener che non deve più ricevere notifiche. |
riavvia
public boolean restart (long timeout,
TimeUnit unit)Riavvia adb, ma non i servizi correlati.
| Parametri | |
|---|---|
timeout |
long |
unit |
TimeUnit |
| Ritorni | |
|---|---|
boolean |
true se l'operazione è riuscita. |
riavvia
public boolean restart ()
Questo metodo è obsoleto.
Questo metodo potrebbe bloccarsi se ADB non risponde. Utilizza invece restart(long, TimeUnit).
Riavvia adb, ma non i servizi correlati.
| Ritorni | |
|---|---|
boolean |
true se l'operazione è riuscita. |
startAdb
public boolean startAdb (long timeout,
TimeUnit unit)Avvia il server lato host adb. Questo metodo non deve essere utilizzato quando si utilizza il server ADB gestito dall'utente, poiché il ciclo di vita del server deve essere gestito dall'utente, non da ddmlib.
| Parametri | |
|---|---|
timeout |
long |
unit |
TimeUnit |
| Ritorni | |
|---|---|
boolean |
true se success |
terminare
public static void terminate ()
Termina la libreria ddm. Deve essere chiamato al termine dell'applicazione.