AndroidDebugBridge

public class AndroidDebugBridge
extends Object

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


połączenie z narzędziem Android Debug Bridge (adb) po stronie hosta;

Jest to centralny punkt komunikacji z dowolnymi urządzeniami, emulatorami lub aplikacjami działającymi na tych urządzeniach.

init() musi zostać wywołana przed wykonaniem jakichkolwiek działań.

Podsumowanie

Zagnieżdżone klasy

interface AndroidDebugBridge.IDebugBridgeChangeListener

Klasy, które implementują ten interfejs, udostępniają metodę obsługującą zmiany AndroidDebugBridge (w tym ponowne uruchomienia). 

interface AndroidDebugBridge.IDeviceChangeListener

Klasy, które implementują ten interfejs, udostępniają metody obsługujące IDevicedodawanie, usuwanie i zmiany. 

Stałe

int DEFAULT_START_ADB_TIMEOUT_MILLIS

Domyślny limit czasu używany podczas uruchamiania serwera ADB

Pola

public static final AdbVersion MIN_ADB_VERSION

Minimalna i maksymalna obsługiwana wersja adb.

Metody publiczne

static void addDebugBridgeChangeListener(AndroidDebugBridge.IDebugBridgeChangeListener listener)

Dodaje odbiorcę do kolekcji odbiorców, którzy będą otrzymywać powiadomienia o połączeniu nowego urządzenia AndroidDebugBridge. W tym celu wysyła do niego jedną z wiadomości zdefiniowanych w interfejsie IDebugBridgeChangeListener.

static void addDeviceChangeListener(AndroidDebugBridge.IDeviceChangeListener listener)

Dodaje odbiorcę do kolekcji odbiorców, którzy będą otrzymywać powiadomienia o połączeniu lub rozłączeniu IDevice, a także o zmianach jego właściwości lub listy ERROR(/ClientImpl). W tym celu wysyła do niego jeden z komunikatów zdefiniowanych w interfejsie IDeviceChangeListener.

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

Tworzy nowy most debugowania z lokalizacji narzędzia wiersza poleceń.

static AndroidDebugBridge createBridge(long timeout, TimeUnit unit)

Tworzy AndroidDebugBridge, który nie jest połączony z żadnym konkretnym plikiem wykonywalnym.

static AndroidDebugBridge createBridge(String osLocation, boolean forceNewBridge)

Ta metoda została wycofana. Jeśli ADB nie odpowiada, ta metoda może się zawiesić. Użyj w zamian zasady createBridge(String,boolean,long,TimeUnit).

static AndroidDebugBridge createBridge()

Ta metoda została wycofana. Jeśli ADB nie odpowiada, ta metoda może się zawiesić. Użyj w zamian zasady createBridge(long,TimeUnit).

static void deviceChanged(IDevice device, int changeMask)

Powiadom słuchacza o zmodyfikowanym IDevice.

static void deviceConnected(IDevice device)

Powiadom słuchacza o nowym IDevice.

static void deviceDisconnected(IDevice device)

Powiadom odbiorcę o odłączeniu IDevice.

static void disableFakeAdbServerMode()
static void disconnectBridge()

Ta metoda została wycofana. Jeśli ADB nie odpowiada, ta metoda może się zawiesić. Użyj w zamian zasady disconnectBridge(long,TimeUnit).

static boolean disconnectBridge(long timeout, TimeUnit unit)

Odłącza bieżący most debugowania i usuwa obiekt.

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

Zwraca bieżący most debugowania.

int getConnectionAttemptCount()

Zwraca liczbę prób połączenia obiektu AndroidDebugBridge z demonem adb.

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

Zwraca urządzenia.

ListenableFuture<List<AdbDevice>> getRawDeviceList()

Zwraca zestaw urządzeń zgłoszonych przez wiersz poleceń adb.

int getRestartAttemptCount()

Zwraca liczbę prób ponownego uruchomienia demona adb przez obiekt AndroidDebugBridge.

static InetSocketAddress getSocketAddress()

Ta metoda została wycofana. Ta metoda zwraca adres serwera zwrotnego, który może nie pasować do adresu używanego przez serwer ADB. Na przykład JVM może być w trybie IPv4, a serwer ADB może być hostowany pod adresem zwrotnym IPv6. Preferuj openConnection() podczas otwierania połączenia z serwerem ADB.

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

Zwraca informację, czy po utworzeniu mostu uzyskał on początkową listę z adb.

static void init(AdbInitOptions options)

Podobne do init(), z możliwością przekazywania niestandardowego zestawu zmiennych środowiskowych.

static void init(boolean useLibusb, Map<String, String> env)

Podobna do init(), z możliwością włączenia libusb i przekazania niestandardowego zestawu zmiennych środowiskowych.

static void init()

Inicjuje bibliotekę ddm.

static void initIfNeeded()

Inicjowanie biblioteki tylko w razie potrzeby; wycofane w przypadku zastosowań nietestowych.

boolean isConnected()

Zwraca informację, czy obiekt AndroidDebugBridge jest nadal połączony z demonem adb.

static boolean isUserManagedAdbMode()
static SocketChannel openConnection()

Próbuje połączyć się z lokalnym serwerem Android Debug Bridge.

static void removeDebugBridgeChangeListener(AndroidDebugBridge.IDebugBridgeChangeListener listener)

Usuwa odbiorcę z kolekcji odbiorców, którzy będą otrzymywać powiadomienia o rozpoczęciu nowego AndroidDebugBridge.

static void removeDeviceChangeListener(AndroidDebugBridge.IDeviceChangeListener listener)

Usuwa odbiorcę z kolekcji odbiorców, którzy będą otrzymywać powiadomienia o połączeniu lub odłączeniu urządzenia IDevice oraz o zmianach jego właściwości lub listy ERROR(/ClientImpl).

boolean restart(long timeout, TimeUnit unit)

Ponownie uruchamia adb, ale nie usługi powiązane.

boolean restart()

Ta metoda została wycofana. Jeśli ADB nie odpowiada, ta metoda może się zawiesić. Użyj w zamian zasady restart(long,TimeUnit).

boolean startAdb(long timeout, TimeUnit unit)

Uruchamia serwer po stronie hosta adb.

static void terminate()

Zamyka bibliotekę DDM.

Stałe

DEFAULT_START_ADB_TIMEOUT_MILLIS

public static final int DEFAULT_START_ADB_TIMEOUT_MILLIS

Domyślny limit czasu używany podczas uruchamiania serwera ADB

Wartość stała: 20000 (0x00004e20)

Pola

MIN_ADB_VERSION

public static final AdbVersion MIN_ADB_VERSION

Minimalna i maksymalna obsługiwana wersja adb. Odpowiada to zmiennej ADB_SERVER_VERSION w pliku //device/tools/adb/adb.h

Metody publiczne

addDebugBridgeChangeListener

public static void addDebugBridgeChangeListener (AndroidDebugBridge.IDebugBridgeChangeListener listener)

Dodaje odbiorcę do kolekcji odbiorców, którzy będą otrzymywać powiadomienia o połączeniu nowego urządzenia AndroidDebugBridge. W tym celu wysyła do niego jedną z wiadomości zdefiniowanych w interfejsie IDebugBridgeChangeListener.

Parametry
listener AndroidDebugBridge.IDebugBridgeChangeListener: odbiornik, który ma otrzymać powiadomienie.

addDeviceChangeListener

public static void addDeviceChangeListener (AndroidDebugBridge.IDeviceChangeListener listener)

Dodaje odbiorcę do kolekcji odbiorców, którzy będą otrzymywać powiadomienia o połączeniu lub rozłączeniu IDevice, a także o zmianach jego właściwości lub listy ERROR(/ClientImpl). W tym celu wysyła do niego jeden z komunikatów zdefiniowanych w interfejsie IDeviceChangeListener.

Parametry
listener AndroidDebugBridge.IDeviceChangeListener: odbiornik, który ma otrzymać powiadomienie.

createBridge

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

Tworzy nowy most debugowania z lokalizacji narzędzia wiersza poleceń.

Wszystkie istniejące serwery zostaną odłączone, chyba że lokalizacja jest taka sama, a wartość parametru forceNewBridge to „false”.

Parametry
osLocation String: lokalizacja narzędzia wiersza poleceń „adb”

forceNewBridge boolean: wymusza utworzenie nowego mostu, nawet jeśli istnieje już most w tej samej lokalizacji.

timeout long: maksymalny czas oczekiwania

unit TimeUnit: jednostka czasu argumentu timeout

Zwraca
AndroidDebugBridge połączony mostek lub wartość null, jeśli podczas tworzenia mostka lub łączenia się z nim wystąpiły błędy.

createBridge

public static AndroidDebugBridge createBridge (long timeout, 
                TimeUnit unit)

Tworzy AndroidDebugBridge, który nie jest połączony z żadnym konkretnym plikiem wykonywalnym.

Most będzie oczekiwać, że adb jest uruchomiony. Nie będzie można uruchamiać, zatrzymywać ani ponownie uruchamiać narzędzia adb.

Jeśli połączenie zostało już rozpoczęte, jest ono zwracane bezpośrednio bez zmian (podobnie jak w przypadku wywołania getBridge()).

Parametry
timeout long

unit TimeUnit

Zwraca
AndroidDebugBridge połączony mostek lub wartość null, jeśli podczas tworzenia mostka lub łączenia się z nim wystąpiły błędy.

createBridge

public static AndroidDebugBridge createBridge (String osLocation, 
                boolean forceNewBridge)

Ta metoda została wycofana.
Ta metoda może się zawiesić, jeśli ADB nie odpowiada. Zamiast niej używaj zasady createBridge(String,boolean,long,TimeUnit).

Tworzy nowy most debugowania z lokalizacji narzędzia wiersza poleceń.

Wszystkie istniejące serwery zostaną odłączone, chyba że lokalizacja jest taka sama, a wartość parametru forceNewBridge to „false”.

Parametry
osLocation String: lokalizacja narzędzia wiersza poleceń „adb”

forceNewBridge boolean: wymusza utworzenie nowego mostu, nawet jeśli istnieje już most w tej samej lokalizacji.

Zwraca
AndroidDebugBridge połączony mostek lub wartość null, jeśli podczas tworzenia mostka lub łączenia się z nim wystąpiły błędy.

createBridge

public static AndroidDebugBridge createBridge ()

Ta metoda została wycofana.
Ta metoda może się zawiesić, jeśli ADB nie odpowiada. Zamiast niej używaj zasady createBridge(long,TimeUnit).

Tworzy AndroidDebugBridge, który nie jest połączony z żadnym konkretnym plikiem wykonywalnym.

Most będzie oczekiwać, że adb jest uruchomiony. Nie będzie można uruchamiać, zatrzymywać ani ponownie uruchamiać narzędzia adb.

Jeśli połączenie zostało już rozpoczęte, jest ono zwracane bezpośrednio bez zmian (podobnie jak w przypadku wywołania funkcji getBridge()).

Zwraca
AndroidDebugBridge połączony mostek lub wartość null, jeśli podczas tworzenia mostka lub łączenia się z nim wystąpiły błędy.

deviceChanged

public static void deviceChanged (IDevice device, 
                int changeMask)

Powiadom słuchacza o zmodyfikowanym IDevice.

Powiadamianie odbiorców odbywa się w zsynchronizowanym bloku. Pamiętaj, że słuchacze mogą korzystać z różnych metod IDevice oraz getDevices(), które używają wewnętrznych blokad.

Parametry
device IDevice: zmodyfikowany IDevice.

changeMask int

deviceConnected

public static void deviceConnected (IDevice device)

Powiadom słuchacza o nowym IDevice.

Powiadamianie odbiorców odbywa się w zsynchronizowanym bloku. Pamiętaj, że słuchacze mogą korzystać z różnych metod IDevice oraz getDevices(), które używają wewnętrznych blokad.

Parametry
device IDevice: nowy IDevice.

deviceDisconnected

public static void deviceDisconnected (IDevice device)

Powiadom odbiorcę o odłączeniu IDevice.

Powiadamianie odbiorców odbywa się w zsynchronizowanym bloku. Pamiętaj, że słuchacze mogą korzystać z różnych metod IDevice oraz getDevices(), które używają wewnętrznych blokad.

Parametry
device IDevice: odłączony IDevice.

disableFakeAdbServerMode

public static void disableFakeAdbServerMode ()

disconnectBridge

public static void disconnectBridge ()

Ta metoda została wycofana.
Ta metoda może się zawiesić, jeśli ADB nie odpowiada. Zamiast niej używaj zasady disconnectBridge(long,TimeUnit).

Odłącza bieżący most debugowania i usuwa obiekt. Należy utworzyć nowy obiekt za pomocą createBridge(String,boolean).

Spowoduje to również zatrzymanie bieżącego serwera hosta adb.

disconnectBridge

public static boolean disconnectBridge (long timeout, 
                TimeUnit unit)

Odłącza bieżący most debugowania i usuwa obiekt. Należy utworzyć nowy obiekt za pomocą createBridge(String,boolean).

Spowoduje to również zatrzymanie bieżącego serwera hosta adb.

Parametry
timeout long

unit TimeUnit

Zwraca
boolean true, jeśli metoda zakończy się powodzeniem w określonym czasie oczekiwania.

enableFakeAdbServerMode

public static void enableFakeAdbServerMode (int port)

Parametry
port int

getAdbVersion

public static ListenableFuture<AdbVersion> getAdbVersion (File adb)

Parametry
adb File

Zwraca
ListenableFuture<AdbVersion>

getBridge

public static AndroidDebugBridge getBridge ()

Zwraca bieżący most debugowania. Może mieć wartość null, jeśli nie utworzono żadnych kont.

Zwraca
AndroidDebugBridge

getConnectionAttemptCount

public int getConnectionAttemptCount ()

Zwraca liczbę prób połączenia obiektu AndroidDebugBridge z demonem adb.

Zwraca
int

getDebugBridgeChangeListenerCount

public static int getDebugBridgeChangeListenerCount ()

Zwraca
int

getDeviceChangeListenerCount

public static int getDeviceChangeListenerCount ()

Zwraca
int

getDevices

public IDevice[] getDevices ()

Zwraca urządzenia.

Zwraca
IDevice[]

Zobacz też:

getRawDeviceList

public ListenableFuture<List<AdbDevice>> getRawDeviceList ()

Zwraca zestaw urządzeń zgłoszonych przez wiersz poleceń adb. Jest to przeznaczone głównie dla Asystenta połączeń lub innych narzędzi diagnostycznych, które muszą zweryfikować stan listy getDevices() za pomocą innego kanału. Kod, który musi tylko uzyskać dostęp do listy urządzeń, powinien wywoływać getDevices().

Zwraca
ListenableFuture<List<AdbDevice>>

getRestartAttemptCount

public int getRestartAttemptCount ()

Zwraca liczbę prób ponownego uruchomienia demona adb przez obiekt AndroidDebugBridge.

Zwraca
int

getSocketAddress

public static InetSocketAddress getSocketAddress ()

Ta metoda została wycofana.
Ta metoda zwraca adres serwera zwrotnego, który może nie być zgodny z adresem używanym przez serwer ADB. Na przykład JVM może być w trybie IPv4, a serwer ADB może być hostowany pod adresem zwrotnym IPv6. Podczas otwierania połączenia z serwerem ADB preferuj openConnection().

Zwraca adres gniazda serwera ADB na hoście.

Ta metoda próbuje zwrócić adres gniazda, który działa, otwierając kanał gniazda do serwera ADB. Próba zostanie podjęta w przypadku obu adresów zwrotnych IPv4 i IPv6. Jeśli nie uda się połączyć z żadnym z nich, ta metoda zwróci adres zwrotny preferowany przez JVM. Ta logika rezerwowa jest wymagana, aby zapobiec przerwaniu działania interfejsu API.

Jeśli tryb fałszywego serwera ADB jest włączony, ta metoda automatycznie przełączy się na starszą implementację bez próby połączenia z ADB.

Zwraca
InetSocketAddress

getVirtualDeviceId

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

Parametry
service ListeningExecutorService

adb File

device IDevice

Zwraca
ListenableFuture<String>

hasInitialDeviceList

public boolean hasInitialDeviceList ()

Zwraca informację, czy po utworzeniu mostu uzyskał on początkową listę z adb.

Wywołanie funkcji getDevices() bezpośrednio po createBridge(String,boolean) zwykle spowoduje zwrócenie pustej listy. Wynika to z wewnętrznego mechanizmu komunikacji asynchronicznej z adb, który nie gwarantuje, że lista IDevice zostanie utworzona przed wywołaniem getDevices().

Zalecanym sposobem uzyskania listy obiektów IDevice jest utworzenie obiektu IDeviceChangeListener.

Zwraca
boolean

init

public static void init (AdbInitOptions options)

Podobne do init(), ale z możliwością przekazywania niestandardowego zestawu zmiennych środowiskowych.

Parametry
options AdbInitOptions

init

public static void init (boolean useLibusb, 
                Map<String, String> env)

Podobna do init(), z możliwością włączenia libusb i przekazania niestandardowego zestawu zmiennych środowiskowych. zmienne.

Parametry
useLibusb boolean

env Map

init

public static void init ()

Inicjuje bibliotekę ddm.

Tę funkcję należy wywołać raz przed każdym wywołaniem funkcji createBridge(String,boolean).

Ustawienia ddmlib powinny być też inicjowane wartościami domyślnymi, które zostały zmienione.

Po zamknięciu aplikacji należy wywołać funkcję terminate().

initIfNeeded

public static void initIfNeeded ()

Inicjowanie biblioteki tylko w razie potrzeby; wycofane w przypadku zastosowań nietestowych.

Zobacz też:

isConnected

public boolean isConnected ()

Zwraca informację, czy obiekt AndroidDebugBridge jest nadal połączony z demonem adb.

Zwraca
boolean

isUserManagedAdbMode

public static boolean isUserManagedAdbMode ()

Zwraca
boolean Jeśli działa w trybie ADB zarządzanym przez użytkownika, w którym ddmlib nie będzie zarządzać serwerem ADB i nie powinien tego robić.

openConnection

public static SocketChannel openConnection ()

Próbuje połączyć się z lokalnym serwerem Android Debug Bridge.

Zwraca
SocketChannel połączone gniazdo, jeśli się uda;

Zgłasza
IOException w przypadku wystąpienia błędów podczas otwierania połączenia.

removeDebugBridgeChangeListener

public static void removeDebugBridgeChangeListener (AndroidDebugBridge.IDebugBridgeChangeListener listener)

Usuwa odbiorcę z kolekcji odbiorców, którzy będą otrzymywać powiadomienia o rozpoczęciu nowego AndroidDebugBridge.

Parametry
listener AndroidDebugBridge.IDebugBridgeChangeListener: odbiornik, który nie powinien już otrzymywać powiadomień.

removeDeviceChangeListener

public static void removeDeviceChangeListener (AndroidDebugBridge.IDeviceChangeListener listener)

Usuwa odbiorcę z kolekcji odbiorców, którzy będą otrzymywać powiadomienia o połączeniu lub odłączeniu urządzenia IDevice oraz o zmianach jego właściwości lub listy ERROR(/ClientImpl).

Parametry
listener AndroidDebugBridge.IDeviceChangeListener: odbiornik, który nie powinien już otrzymywać powiadomień.

uruchom ponownie

public boolean restart (long timeout, 
                TimeUnit unit)

Ponownie uruchamia adb, ale nie usługi powiązane.

Parametry
timeout long

unit TimeUnit

Zwraca
boolean Wartość true, jeśli operacja zakończyła się powodzeniem.

uruchom ponownie

public boolean restart ()

Ta metoda została wycofana.
Ta metoda może się zawiesić, jeśli ADB nie odpowiada. Zamiast niej używaj zasady restart(long,TimeUnit).

Ponownie uruchamia adb, ale nie usługi powiązane.

Zwraca
boolean Wartość true, jeśli operacja zakończyła się powodzeniem.

startAdb

public boolean startAdb (long timeout, 
                TimeUnit unit)

Uruchamia serwer po stronie hosta adb. Nie należy używać tej metody, gdy używasz serwera ADB zarządzanego przez użytkownika, ponieważ cyklem życia serwera powinien zarządzać użytkownik, a nie ddmlib.

Parametry
timeout long

unit TimeUnit

Zwraca
boolean wartość true, jeśli operacja zakończyła się powodzeniem.

zamknąć | usunąć

public static void terminate ()

Zamyka bibliotekę DDM. Należy ją wywołać po zakończeniu działania aplikacji.