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(boolean) musi zostać wywołana przed wykonaniem jakichkolwiek działań.

Podsumowanie

Zagnieżdżone klasy

interface AndroidDebugBridge.IClientChangeListener

Klasy, które implementują ten interfejs, udostępniają metody obsługujące zmiany ClientImpl

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 IDevice dodawanie, usuwanie i zmiany. 

Stałe

int DEFAULT_START_ADB_TIMEOUT_MILLIS

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

Fieldsem

public static final AdbVersion MIN_ADB_VERSION

Minimalna i maksymalna obsługiwana wersja adb.

Metody publiczne

static void addClientChangeListener(AndroidDebugBridge.IClientChangeListener listener)

Dodaje odbiorcę do kolekcji odbiorców, którzy będą otrzymywać powiadomienia o zmianie właściwości ClientImpl. Powiadomienia te będą wysyłane w postaci jednego z komunikatów zdefiniowanych w interfejsie IClientChangeListener.

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, wysyłając 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 ClientImpl. W tym celu wysyła do niego jedną z wiadomości zdefiniowanych w interfejsie IDeviceChangeListener.

static void clientChanged(ClientImpl client, int changeMask)

Powiadom słuchacza o zmodyfikowanym ClientImpl.

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 AndroidDebugBridge createBridge(String osLocation, boolean forceNewBridge, long timeout, TimeUnit unit)

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

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.

static boolean getClientSupport()

Zwraca informację, czy biblioteka ddmlib jest skonfigurowana do obsługi monitorowania i interakcji z ClientImpluruchomionymi na IDevice.

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<> 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 pobrał on z adb początkową listę.

static void init(AdbInitOptions options)

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

static void init(boolean clientSupport)

Inicjuje bibliotekę ddm.

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

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

static void initIfNeeded(boolean clientSupport)

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 removeClientChangeListener(AndroidDebugBridge.IClientChangeListener listener)

Usuwa odbiorcę z kolekcji odbiorców, którzy będą powiadamiani o zmianach właściwości ClientImpl.

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 IDevice oraz o zmianach jego właściwości lub listy 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()

Kończy działanie biblioteki 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)

Fieldsem

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

addClientChangeListener

public static void addClientChangeListener (AndroidDebugBridge.IClientChangeListener listener)

Dodaje odbiorcę do kolekcji odbiorców, którzy będą otrzymywać powiadomienia o zmianie właściwości ClientImpl. Powiadomienia te będą wysyłane w postaci jednego z komunikatów zdefiniowanych w interfejsie IClientChangeListener.

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

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, wysyłając 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 ClientImpl. W tym celu wysyła do niego jedną z wiadomości zdefiniowanych w interfejsie IDeviceChangeListener.

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

clientChanged

public static void clientChanged (ClientImpl client, 
                int changeMask)

Powiadom słuchacza o zmodyfikowanym ClientImpl.

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
client ClientImpl: zmodyfikowany Client.

changeMask int: maska wskazująca, co się zmieniło w Client

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 będzie działać. Nie będzie można uruchamiać, zatrzymywać ani ponownie uruchamiać ADB.

Jeśli most został już utworzony, jest zwracany bezpośrednio bez zmian (podobnie jak w przypadku wywołania funkcji getBridge()).

Parametry
timeout long

unit TimeUnit

Zwroty
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.
Jeśli ADB nie odpowiada, ta metoda może się zawiesić. Zamiast niej użyj 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 fałsz.

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.

Zwroty
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.
Jeśli ADB nie odpowiada, ta metoda może się zawiesić. Zamiast niej użyj zasady createBridge(long, TimeUnit).

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

Most będzie oczekiwać, że adb będzie działać. Nie będzie można uruchamiać, zatrzymywać ani ponownie uruchamiać ADB.

Jeśli most został już utworzony, jest zwracany bezpośrednio bez zmian (podobnie jak w przypadku wywołania funkcji getBridge()).

Zwroty
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, 
                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 fałsz.

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

Zwroty
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łączone IDevice.

disableFakeAdbServerMode

public static void disableFakeAdbServerMode ()

disconnectBridge

public static void disconnectBridge ()

Ta metoda została wycofana.
Jeśli ADB nie odpowiada, ta metoda może się zawiesić. Zamiast niej użyj 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

Zwroty
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

Zwroty
ListenableFuture<AdbVersion>

getBridge

public static AndroidDebugBridge getBridge ()

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

Zwroty
AndroidDebugBridge

getClientSupport

public static boolean getClientSupport ()

Zwraca informację, czy biblioteka ddmlib jest skonfigurowana do obsługi monitorowania i interakcji z ClientImpluruchomionymi na IDevice.

Zwroty
boolean

getConnectionAttemptCount

public int getConnectionAttemptCount ()

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

Zwroty
int

getDebugBridgeChangeListenerCount

public static int getDebugBridgeChangeListenerCount ()

Zwroty
int

getDeviceChangeListenerCount

public static int getDeviceChangeListenerCount ()

Zwroty
int

getDevices

public IDevice[] getDevices ()

Zwraca urządzenia.

Zwroty
IDevice[]

Zobacz też:

getRawDeviceList

public ListenableFuture<> 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ą weryfikować stan listy getDevices() za pomocą innego kanału. Kod, który musi tylko uzyskać dostęp do listy urządzeń, powinien wywoływać getDevices().

Zwroty
ListenableFuture<>

getRestartAttemptCount

public int getRestartAttemptCount ()

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

Zwroty
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ę nawiązać połączenia, 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.

Zwroty
InetSocketAddress

getVirtualDeviceId

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

Parametry
service ListeningExecutorService

adb File

device IDevice

Zwroty
ListenableFuture<String>

hasInitialDeviceList

public boolean hasInitialDeviceList ()

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

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.

Zwroty
boolean

init

public static void init (AdbInitOptions options)

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

Parametry
options AdbInitOptions

init

public static void init (boolean clientSupport)

Inicjuje bibliotekę ddm.

Musisz wywołać tę funkcję przed każdym wywołaniem funkcji createBridge(String, boolean).

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

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

Parametry
clientSupport boolean: wskazuje, czy biblioteka powinna włączyć monitorowanie aplikacji działających na urządzeniach i interakcje z nimi.

init

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

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

Parametry
clientSupport boolean

useLibusb boolean

env

initIfNeeded

public static void initIfNeeded (boolean clientSupport)

Biblioteka jest inicjowana tylko w razie potrzeby. W przypadku zastosowań nietestowych jest to funkcja wycofana.

Parametry
clientSupport boolean: wskazuje, czy biblioteka powinna włączyć monitorowanie aplikacji działających na urządzeniach i interakcje z nimi.

Zobacz też:

isConnected

public boolean isConnected ()

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

Zwroty
boolean

isUserManagedAdbMode

public static boolean isUserManagedAdbMode ()

Zwroty
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.

Zwroty
SocketChannel połączone gniazdko, jeśli się uda;

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

removeClientChangeListener

public static void removeClientChangeListener (AndroidDebugBridge.IClientChangeListener listener)

Usuwa odbiorcę z kolekcji odbiorców, którzy będą powiadamiani o zmianach właściwości ClientImpl.

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

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 ClientImpl.

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

ponowne uruchomienie

public boolean restart (long timeout, 
                TimeUnit unit)

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

Parametry
timeout long

unit TimeUnit

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

ponowne uruchomienie

public boolean restart ()

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

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

Zwroty
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

Zwroty
boolean wartość true, jeśli operacja się powiodła

zakończyć

public static void terminate ()

Kończy działanie biblioteki DDM. Należy ją wywołać po zakończeniu działania aplikacji.