AndroidDebugBridge
public
class
AndroidDebugBridge
extends Object
| java.lang.Object | |
| ↳ | com.android.tradefed.device.server.AndroidDebugBridge |
Eine Verbindung zur Host-seitigen Android Debug Bridge (ADB)
Dies ist der zentrale Punkt für die Kommunikation mit Geräten, Emulatoren oder den darauf ausgeführten Anwendungen.
init() muss aufgerufen werden, bevor etwas anderes passiert.
Zusammenfassung
Verschachtelte Klassen | |
|---|---|
interface |
AndroidDebugBridge.IDebugBridgeChangeListener
Klassen, die diese Schnittstelle implementieren, bieten eine Methode, die sich mit |
interface |
AndroidDebugBridge.IDeviceChangeListener
Klassen, die diese Schnittstelle implementieren, bieten Methoden zum Hinzufügen, Löschen und Ändern von |
Konstanten | |
|---|---|
int |
DEFAULT_START_ADB_TIMEOUT_MILLIS
Standard-Zeitlimit beim Starten des ADB-Servers |
Felder | |
|---|---|
public
static
final
AdbVersion |
MIN_ADB_VERSION
Mindest- und Höchstversion von ADB, die unterstützt werden. |
Öffentliche Methoden | |
|---|---|
static
void
|
addDebugBridgeChangeListener(AndroidDebugBridge.IDebugBridgeChangeListener listener)
Fügt den Listener der Sammlung von Listenern hinzu, die benachrichtigt werden, wenn ein neues |
static
void
|
addDeviceChangeListener(AndroidDebugBridge.IDeviceChangeListener listener)
Fügt den Listener der Sammlung von Listenern hinzu, die benachrichtigt werden, wenn ein |
static
AndroidDebugBridge
|
createBridge(String osLocation, boolean forceNewBridge, long timeout, TimeUnit unit)
Erstellt eine neue Debug-Bridge am Speicherort des Befehlszeilentools. |
static
AndroidDebugBridge
|
createBridge(long timeout, TimeUnit unit)
Erstellt ein |
static
AndroidDebugBridge
|
createBridge(String osLocation, boolean forceNewBridge)
Diese Methode wurde eingestellt.
Diese Methode kann hängen bleiben, wenn ADB nicht reagiert. Verwenden Sie stattdessen |
static
AndroidDebugBridge
|
createBridge()
Diese Methode wurde eingestellt.
Diese Methode kann hängen bleiben, wenn ADB nicht reagiert. Verwenden Sie stattdessen |
static
void
|
deviceChanged(IDevice device, int changeMask)
Den Listener über eine geänderte |
static
void
|
deviceConnected(IDevice device)
Benachrichtige den Zuhörer über eine neue |
static
void
|
deviceDisconnected(IDevice device)
Den Listener über eine getrennte |
static
void
|
disableFakeAdbServerMode()
|
static
void
|
disconnectBridge()
Diese Methode wurde eingestellt.
Diese Methode kann hängen bleiben, wenn ADB nicht reagiert. Verwenden Sie stattdessen |
static
boolean
|
disconnectBridge(long timeout, TimeUnit unit)
Trennt die aktuelle Debug-Bridge und zerstört das Objekt. |
static
void
|
enableFakeAdbServerMode(int port)
|
static
ListenableFuture<AdbVersion>
|
getAdbVersion(File adb)
|
static
AndroidDebugBridge
|
getBridge()
Gibt die aktuelle Debug-Bridge zurück. |
int
|
getConnectionAttemptCount()
Gibt die Anzahl der Versuche des |
static
int
|
getDebugBridgeChangeListenerCount()
|
static
int
|
getDeviceChangeListenerCount()
|
IDevice[]
|
getDevices()
Gibt die Geräte zurück. |
ListenableFuture<List<AdbDevice>>
|
getRawDeviceList()
Gibt die Menge der Geräte zurück, die von der ADB-Befehlszeile gemeldet werden. |
int
|
getRestartAttemptCount()
Gibt die Anzahl der Versuche des |
static
InetSocketAddress
|
getSocketAddress()
Diese Methode wurde eingestellt.
Diese Methode gibt eine Loopback-Serveradresse zurück, die möglicherweise nicht mit der vom ADB-Server verwendeten Adresse übereinstimmt. Das heißt, die JVM befindet sich möglicherweise im IPv4-Modus, während der ADB-Server auf der IPv6-Loopback-Adresse gehostet wird. Verwenden Sie stattdessen |
static
ListenableFuture<String>
|
getVirtualDeviceId(ListeningExecutorService service, File adb, IDevice device)
|
boolean
|
hasInitialDeviceList()
Gibt zurück, ob die Bridge nach der Erstellung die erste Liste von adb abgerufen hat. |
static
void
|
init(AdbInitOptions options)
Ähnlich wie bei |
static
void
|
init(boolean useLibusb, Map<String, String> env)
Ähnlich wie |
static
void
|
init()
Initialisiert die |
static
void
|
initIfNeeded()
Die Bibliothek wurde nur bei Bedarf initialisiert. Die Verwendung für andere Zwecke als Tests ist nicht mehr zulässig. |
boolean
|
isConnected()
Gibt zurück, ob das |
static
boolean
|
isUserManagedAdbMode()
|
static
SocketChannel
|
openConnection()
Es wird versucht, eine Verbindung zum lokalen Android Debug Bridge-Server herzustellen. |
static
void
|
removeDebugBridgeChangeListener(AndroidDebugBridge.IDebugBridgeChangeListener listener)
Entfernt den Listener aus der Sammlung von Listenern, die benachrichtigt werden, wenn ein neuer |
static
void
|
removeDeviceChangeListener(AndroidDebugBridge.IDeviceChangeListener listener)
Entfernt den Listener aus der Sammlung von Listenern, die benachrichtigt werden, wenn ein |
boolean
|
restart(long timeout, TimeUnit unit)
Startet adb neu, aber nicht die zugehörigen Dienste. |
boolean
|
restart()
Diese Methode wurde eingestellt.
Diese Methode kann hängen bleiben, wenn ADB nicht reagiert. Verwenden Sie stattdessen |
boolean
|
startAdb(long timeout, TimeUnit unit)
Startet den ADB-Host-Server. |
static
void
|
terminate()
Beendet die DDM-Bibliothek. |
Konstanten
DEFAULT_START_ADB_TIMEOUT_MILLIS
public static final int DEFAULT_START_ADB_TIMEOUT_MILLIS
Standard-Zeitlimit beim Starten des ADB-Servers
Konstanter Wert: 20000 (0x00004e20)
Felder
MIN_ADB_VERSION
public static final AdbVersion MIN_ADB_VERSION
Mindest- und Höchstversion von ADB, die unterstützt werden. Das entspricht ADB_SERVER_VERSION in //device/tools/adb/adb.h.
Öffentliche Methoden
addDebugBridgeChangeListener
public static void addDebugBridgeChangeListener (AndroidDebugBridge.IDebugBridgeChangeListener listener)
Fügt den Listener der Sammlung von Listenern hinzu, die benachrichtigt werden, wenn ein neues AndroidDebugBridge verbunden wird. Dazu wird eine der im IDebugBridgeChangeListener-Interface definierten Nachrichten gesendet.
| Parameter | |
|---|---|
listener |
AndroidDebugBridge.IDebugBridgeChangeListener: Der Listener, der benachrichtigt werden soll. |
addDeviceChangeListener
public static void addDeviceChangeListener (AndroidDebugBridge.IDeviceChangeListener listener)
Fügt den Listener der Sammlung von Listenern hinzu, die benachrichtigt werden, wenn ein IDevice verbunden oder getrennt wird oder wenn sich seine Eigenschaften oder seine ERROR(/ClientImpl)-Liste ändert. Dazu wird eine der im IDeviceChangeListener-Interface definierten Nachrichten gesendet.
| Parameter | |
|---|---|
listener |
AndroidDebugBridge.IDeviceChangeListener: Der Listener, der benachrichtigt werden soll. |
createBridge
public static AndroidDebugBridge createBridge (String osLocation, boolean forceNewBridge, long timeout, TimeUnit unit)
Erstellt eine neue Debug-Bridge am Speicherort des Befehlszeilentools.
Alle vorhandenen Server werden getrennt, sofern der Standort nicht derselbe ist und
forceNewBridge auf „false“ gesetzt ist.
| Parameter | |
|---|---|
osLocation |
String: Speicherort des Befehlszeilentools „adb“ |
forceNewBridge |
boolean: Erzwingt die Erstellung einer neuen Bridge, auch wenn bereits eine mit demselben Standort vorhanden ist. |
timeout |
long: die maximale Wartezeit |
unit |
TimeUnit: die Zeiteinheit des Arguments timeout |
| Gibt Folgendes zurück: | |
|---|---|
AndroidDebugBridge |
eine verbundene Bridge oder „null“, wenn beim Erstellen oder Herstellen einer Verbindung zur Bridge Fehler aufgetreten sind |
createBridge
public static AndroidDebugBridge createBridge (long timeout, TimeUnit unit)
Erstellt ein AndroidDebugBridge, das nicht mit einer bestimmten ausführbaren Datei verknüpft ist.
Für diese Bridge muss ADB ausgeführt werden. adb kann nicht gestartet, beendet oder neu gestartet werden.
Wenn eine Bridge bereits gestartet wurde, wird sie ohne Änderungen zurückgegeben (ähnlich wie beim Aufrufen von getBridge()).
| Parameter | |
|---|---|
timeout |
long |
unit |
TimeUnit |
| Gibt Folgendes zurück: | |
|---|---|
AndroidDebugBridge |
eine verbundene Bridge oder „null“, wenn beim Erstellen oder Herstellen einer Verbindung zur Bridge Fehler aufgetreten sind |
createBridge
public static AndroidDebugBridge createBridge (String osLocation, boolean forceNewBridge)
Diese Methode wurde eingestellt.
Diese Methode kann hängen bleiben, wenn ADB nicht reagiert. Verwenden Sie stattdessen createBridge(String,boolean,long,TimeUnit).
Erstellt eine neue Debug-Bridge am Speicherort des Befehlszeilentools.
Alle vorhandenen Server werden getrennt, sofern der Standort nicht derselbe ist und
forceNewBridge auf „false“ gesetzt ist.
| Parameter | |
|---|---|
osLocation |
String: Speicherort des Befehlszeilentools „adb“ |
forceNewBridge |
boolean: Erzwingt die Erstellung einer neuen Bridge, auch wenn bereits eine mit demselben Standort vorhanden ist. |
| Gibt Folgendes zurück: | |
|---|---|
AndroidDebugBridge |
eine verbundene Bridge oder „null“, wenn beim Erstellen oder Herstellen einer Verbindung zur Bridge Fehler aufgetreten sind |
createBridge
public static AndroidDebugBridge createBridge ()
Diese Methode wurde eingestellt.
Diese Methode kann hängen bleiben, wenn ADB nicht reagiert. Verwenden Sie stattdessen createBridge(long,TimeUnit).
Erstellt ein AndroidDebugBridge, das nicht mit einer bestimmten ausführbaren Datei verknüpft ist.
Für diese Bridge muss ADB ausgeführt werden. adb kann nicht gestartet, beendet oder neu gestartet werden.
Wenn eine Bridge bereits gestartet wurde, wird sie ohne Änderungen zurückgegeben (ähnlich wie beim Aufrufen von getBridge()).
| Gibt Folgendes zurück: | |
|---|---|
AndroidDebugBridge |
eine verbundene Bridge oder „null“, wenn beim Erstellen oder Herstellen einer Verbindung zur Bridge Fehler aufgetreten sind |
deviceChanged
public static void deviceChanged (IDevice device, int changeMask)
Den Listener über eine geänderte IDevice benachrichtigen.
Die Benachrichtigung der Zuhörer erfolgt in einem synchronisierten Block. Es ist wichtig, dass Zuhörer möglicherweise auf verschiedene Methoden von IDevice sowie getDevices() zugreifen, die interne Sperren verwenden.
| Parameter | |
|---|---|
device |
IDevice: die geänderte IDevice. |
changeMask |
int |
deviceConnected
public static void deviceConnected (IDevice device)
Benachrichtige den Zuhörer über eine neue IDevice.
Die Benachrichtigung der Zuhörer erfolgt in einem synchronisierten Block. Es ist wichtig, dass Zuhörer möglicherweise auf verschiedene Methoden von IDevice sowie getDevices() zugreifen, die interne Sperren verwenden.
| Parameter | |
|---|---|
device |
IDevice: die neue IDevice. |
deviceDisconnected
public static void deviceDisconnected (IDevice device)
Den Listener über eine getrennte IDevice benachrichtigen.
Die Benachrichtigung der Zuhörer erfolgt in einem synchronisierten Block. Es ist wichtig, dass Zuhörer möglicherweise auf verschiedene Methoden von IDevice sowie getDevices() zugreifen, die interne Sperren verwenden.
| Parameter | |
|---|---|
device |
IDevice: die getrennte IDevice. |
disableFakeAdbServerMode
public static void disableFakeAdbServerMode ()
disconnectBridge
public static void disconnectBridge ()
Diese Methode wurde eingestellt.
Diese Methode kann hängen bleiben, wenn ADB nicht reagiert. Verwenden Sie stattdessen disconnectBridge(long,TimeUnit).
Trennt die aktuelle Debug-Bridge und zerstört das Objekt. Ein neues Objekt muss mit createBridge(String,boolean) erstellt werden.
Dadurch wird auch der aktuelle ADB-Hostserver beendet.
disconnectBridge
public static boolean disconnectBridge (long timeout,
TimeUnit unit)Trennt die aktuelle Debug-Bridge und zerstört das Objekt. Ein neues Objekt muss mit createBridge(String,boolean) erstellt werden.
Dadurch wird auch der aktuelle ADB-Hostserver beendet.
| Parameter | |
|---|---|
timeout |
long |
unit |
TimeUnit |
| Gibt Folgendes zurück: | |
|---|---|
boolean |
true, wenn die Methode innerhalb des angegebenen Zeitlimits erfolgreich ist. |
enableFakeAdbServerMode
public static void enableFakeAdbServerMode (int port)
| Parameter | |
|---|---|
port |
int |
getAdbVersion
public static ListenableFuture<AdbVersion> getAdbVersion (File adb)
| Parameter | |
|---|---|
adb |
File |
| Gibt Folgendes zurück: | |
|---|---|
ListenableFuture<AdbVersion> |
|
getBridge
public static AndroidDebugBridge getBridge ()
Gibt die aktuelle Debug-Bridge zurück. Kann null sein, wenn keine erstellt wurden.
| Gibt Folgendes zurück: | |
|---|---|
AndroidDebugBridge |
|
getConnectionAttemptCount
public int getConnectionAttemptCount ()
Gibt die Anzahl der Versuche des AndroidDebugBridge-Objekts zurück, eine Verbindung zum ADB-Daemon herzustellen.
| Gibt Folgendes zurück: | |
|---|---|
int |
|
getDebugBridgeChangeListenerCount
public static int getDebugBridgeChangeListenerCount ()
| Gibt Folgendes zurück: | |
|---|---|
int |
|
getDeviceChangeListenerCount
public static int getDeviceChangeListenerCount ()
| Gibt Folgendes zurück: | |
|---|---|
int |
|
getDevices
public IDevice[] getDevices ()
Gibt die Geräte zurück.
| Gibt Folgendes zurück: | |
|---|---|
IDevice[] |
|
Weitere Informationen
getRawDeviceList
public ListenableFuture<List<AdbDevice>> getRawDeviceList ()
Gibt die Menge der Geräte zurück, die von der ADB-Befehlszeile gemeldet werden. Diese Funktion ist hauptsächlich für den Verbindungsassistenten oder andere Diagnosetools gedacht, die den Status der getDevices()-Liste über einen anderen Kanal validieren müssen. Code, der nur auf die Liste der Geräte zugreifen muss, sollte stattdessen getDevices() aufrufen.
| Gibt Folgendes zurück: | |
|---|---|
ListenableFuture<List<AdbDevice>> |
|
getRestartAttemptCount
public int getRestartAttemptCount ()
Gibt die Anzahl der Versuche des AndroidDebugBridge-Objekts zurück, den ADB-Daemon neu zu starten.
| Gibt Folgendes zurück: | |
|---|---|
int |
|
getSocketAddress
public static InetSocketAddress getSocketAddress ()
Diese Methode wurde eingestellt.
Diese Methode gibt eine Loopback-Serveradresse zurück, die möglicherweise nicht mit der Adresse des ADB-Servers übereinstimmt. Das heißt, die JVM befindet sich möglicherweise im IPv4-Modus, während der ADB-Server auf der IPv6-Loopback-Adresse gehostet wird. Verwenden Sie stattdessen openConnection(), wenn Sie eine Verbindung zum ADB-Server öffnen.
Gibt die Socketadresse des ADB-Servers auf dem Host zurück.
Diese Methode versucht, eine Socketadresse zurückzugeben, die bekanntermaßen funktioniert, indem ein Socketkanal zum ADB-Server geöffnet wird. Es wird sowohl die IPv4- als auch die IPv6-Loopback-Adresse versucht. Wenn keine Verbindung hergestellt werden kann, wird mit dieser Methode die von der JVM bevorzugte Loopback-Adresse zurückgegeben. Diese Fallback-Logik ist erforderlich, um API-Fehler zu vermeiden.
Wenn der gefälschte ADB-Servermodus aktiviert ist, wird diese Methode automatisch auf die Legacy-Implementierung zurückgesetzt, ohne dass versucht wird, eine Verbindung zu ADB herzustellen.
| Gibt Folgendes zurück: | |
|---|---|
InetSocketAddress |
|
getVirtualDeviceId
public static ListenableFuture<String> getVirtualDeviceId (ListeningExecutorService service,
File adb,
IDevice device)| Parameter | |
|---|---|
service |
ListeningExecutorService |
adb |
File |
device |
IDevice |
| Gibt Folgendes zurück: | |
|---|---|
ListenableFuture<String> |
|
hasInitialDeviceList
public boolean hasInitialDeviceList ()
Gibt zurück, ob die Bridge nach der Erstellung die erste Liste von adb abgerufen hat.
Wenn Sie getDevices() direkt nach createBridge(String,boolean) aufrufen, erhalten Sie in der Regel eine leere Liste. Das liegt am internen asynchronen Kommunikationsmechanismus mit adb, der nicht garantiert, dass die Liste IDevice vor dem Aufruf von getDevices() erstellt wurde.
Wir empfehlen, ein IDeviceChangeListener-Objekt zu erstellen, um die Liste der IDevice-Objekte abzurufen.
| Gibt Folgendes zurück: | |
|---|---|
boolean |
|
init
public static void init (AdbInitOptions options)
Ähnlich wie init(), aber mit der Möglichkeit, einen benutzerdefinierten Satz von Umgebungsvariablen zu übergeben.
| Parameter | |
|---|---|
options |
AdbInitOptions |
init
public static void init (boolean useLibusb,
Map<String, String> env)Ähnlich wie init(), mit der Möglichkeit, libusb zu aktivieren und eine benutzerdefinierte Umgebung zu übergeben.
der kategorischen Variablen.
| Parameter | |
|---|---|
useLibusb |
boolean |
env |
Map |
init
public static void init ()
Initialisiert die ddm-Bibliothek.
Diese Methode muss einmal vor einem Aufruf von createBridge(String,boolean) aufgerufen werden.
Die Einstellungen von ddmlib sollten auch mit allen Standardwerten initialisiert werden, die von den Standardwerten geändert wurden.
Wenn die Anwendung beendet wird, sollte terminate() aufgerufen werden.
Weitere Informationen
initIfNeeded
public static void initIfNeeded ()
Die Bibliothek wurde nur bei Bedarf initialisiert. Die Verwendung für andere Zwecke als Tests ist nicht mehr zulässig.
Weitere Informationen
isConnected
public boolean isConnected ()
Gibt zurück, ob das AndroidDebugBridge-Objekt noch mit dem ADB-Daemon verbunden ist.
| Gibt Folgendes zurück: | |
|---|---|
boolean |
|
isUserManagedAdbMode
public static boolean isUserManagedAdbMode ()
| Gibt Folgendes zurück: | |
|---|---|
boolean |
Wenn der vom Nutzer verwaltete ADB-Modus verwendet wird, darf und soll ddmlib den ADB-Server nicht verwalten. |
openConnection
public static SocketChannel openConnection ()
Es wird versucht, eine Verbindung zum lokalen Android Debug Bridge-Server herzustellen.
| Gibt Folgendes zurück: | |
|---|---|
SocketChannel |
eine verbundene Steckdose, wenn die Verbindung erfolgreich hergestellt wurde |
| Löst aus | |
|---|---|
IOException |
sollten beim Öffnen der Verbindung Fehler auftreten. |
removeDebugBridgeChangeListener
public static void removeDebugBridgeChangeListener (AndroidDebugBridge.IDebugBridgeChangeListener listener)
Entfernt den Listener aus der Sammlung von Listenern, die benachrichtigt werden, wenn ein neuer AndroidDebugBridge gestartet wird.
| Parameter | |
|---|---|
listener |
AndroidDebugBridge.IDebugBridgeChangeListener: Der Listener, der nicht mehr benachrichtigt werden soll. |
removeDeviceChangeListener
public static void removeDeviceChangeListener (AndroidDebugBridge.IDeviceChangeListener listener)
Entfernt den Listener aus der Sammlung von Listenern, die benachrichtigt werden, wenn ein IDevice verbunden oder getrennt wird oder wenn sich seine Eigenschaften oder seine ERROR(/ClientImpl)-Liste ändern.
| Parameter | |
|---|---|
listener |
AndroidDebugBridge.IDeviceChangeListener: Der Listener, der nicht mehr benachrichtigt werden soll. |
restart
public boolean restart (long timeout,
TimeUnit unit)Startet adb neu, aber nicht die zugehörigen Dienste.
| Parameter | |
|---|---|
timeout |
long |
unit |
TimeUnit |
| Gibt Folgendes zurück: | |
|---|---|
boolean |
„true“, wenn erfolgreich. |
restart
public boolean restart ()
Diese Methode wurde eingestellt.
Diese Methode kann hängen bleiben, wenn ADB nicht reagiert. Verwenden Sie stattdessen restart(long,TimeUnit).
Startet adb neu, aber nicht die zugehörigen Dienste.
| Gibt Folgendes zurück: | |
|---|---|
boolean |
„true“, wenn erfolgreich. |
startAdb
public boolean startAdb (long timeout,
TimeUnit unit)Startet den ADB-Host-Server. Diese Methode sollte nicht verwendet werden, wenn ein vom Nutzer verwalteter ADB-Server verwendet wird, da der Lebenszyklus des Servers vom Nutzer und nicht von ddmlib verwaltet werden sollte.
| Parameter | |
|---|---|
timeout |
long |
unit |
TimeUnit |
| Gibt Folgendes zurück: | |
|---|---|
boolean |
„true“, wenn erfolgreich |
beenden
public static void terminate ()
Beendet die DDM-Bibliothek. Diese Funktion muss beim Beenden der Anwendung aufgerufen werden.