AndroidDebugBridge

public class AndroidDebugBridge
extends Object

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


Koneksi ke Android Debug Bridge (ADB) sisi host

Ini adalah titik pusat untuk berkomunikasi dengan perangkat, emulator, atau aplikasi yang berjalan di dalamnya.

init() harus dipanggil sebelum ada tindakan yang dilakukan.

Ringkasan

Class bertingkat

interface AndroidDebugBridge.IDebugBridgeChangeListener

Class yang mengimplementasikan antarmuka ini menyediakan metode yang menangani perubahan AndroidDebugBridge (termasuk memulai ulang). 

interface AndroidDebugBridge.IDeviceChangeListener

Class yang mengimplementasikan antarmuka ini menyediakan metode yang menangani penambahan, penghapusan, dan perubahan IDevice

Konstanta

int DEFAULT_START_ADB_TIMEOUT_MILLIS

Waktu tunggu default yang digunakan saat memulai server ADB

Kolom

public static final AdbVersion MIN_ADB_VERSION

Versi minimum dan maksimum adb yang didukung.

Metode publik

static void addDebugBridgeChangeListener(AndroidDebugBridge.IDebugBridgeChangeListener listener)

Menambahkan pemroses ke kumpulan pemroses yang akan diberi tahu saat AndroidDebugBridge baru terhubung, dengan mengirimkan salah satu pesan yang ditentukan dalam antarmuka IDebugBridgeChangeListener.

static void addDeviceChangeListener(AndroidDebugBridge.IDeviceChangeListener listener)

Menambahkan pemroses ke kumpulan pemroses yang akan diberi tahu saat IDevice terhubung, terputus, atau saat properti atau daftar ERROR(/ClientImpl)-nya berubah, dengan mengirimkan salah satu pesan yang ditentukan dalam antarmuka IDeviceChangeListener.

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

Membuat jembatan debug baru dari lokasi alat command line.

static AndroidDebugBridge createBridge(long timeout, TimeUnit unit)

Membuat AndroidDebugBridge yang tidak ditautkan ke executable tertentu.

static AndroidDebugBridge createBridge(String osLocation, boolean forceNewBridge)

Metode ini tidak digunakan lagi. Metode ini mungkin terhenti jika ADB tidak merespons. Sebagai gantinya, gunakan createBridge(String,boolean,long,TimeUnit).

static AndroidDebugBridge createBridge()

Metode ini tidak digunakan lagi. Metode ini mungkin terhenti jika ADB tidak merespons. Sebagai gantinya, gunakan createBridge(long,TimeUnit).

static void deviceChanged(IDevice device, int changeMask)

Memberi tahu pemroses IDevice yang diubah.

static void deviceConnected(IDevice device)

Memberi tahu pemroses tentang IDevice baru.

static void deviceDisconnected(IDevice device)

Memberi tahu pemroses tentang IDevice yang terputus.

static void disableFakeAdbServerMode()
static void disconnectBridge()

Metode ini tidak digunakan lagi. Metode ini mungkin terhenti jika ADB tidak merespons. Sebagai gantinya, gunakan disconnectBridge(long,TimeUnit).

static boolean disconnectBridge(long timeout, TimeUnit unit)

Memutus koneksi jembatan debug saat ini, dan menghancurkan objek.

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

Menampilkan jembatan debug saat ini.

int getConnectionAttemptCount()

Menampilkan jumlah upaya objek AndroidDebugBridge untuk terhubung ke daemon adb.

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

Menampilkan perangkat.

ListenableFuture<List<AdbDevice>> getRawDeviceList()

Menampilkan kumpulan perangkat yang dilaporkan oleh command line adb.

int getRestartAttemptCount()

Menampilkan jumlah upaya objek AndroidDebugBridge untuk memulai ulang daemon adb.

static InetSocketAddress getSocketAddress()

Metode ini tidak digunakan lagi. Metode ini menampilkan alamat server loopback yang mungkin tidak cocok dengan yang digunakan oleh server ADB. Artinya, JVM mungkin dalam mode IPv4, sedangkan server ADB dihosting di alamat loopback IPv6. Lebih memilih openConnection() saat membuka koneksi ke server ADB.

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

Menampilkan apakah jembatan telah memperoleh daftar awal dari adb setelah dibuat.

static void init(AdbInitOptions options)

Serupa dengan init(), dengan kemampuan untuk meneruskan kumpulan env kustom.

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

Serupa dengan init(), dengan kemampuan untuk mengaktifkan libusb dan meneruskan kumpulan env kustom.

static void init()

Menginisialisasi library ddm.

static void initIfNeeded()

Menginisialisasi library hanya jika diperlukan; tidak digunakan lagi untuk penggunaan non-pengujian.

boolean isConnected()

Menampilkan apakah objek AndroidDebugBridge masih terhubung ke daemon adb.

static boolean isUserManagedAdbMode()
static SocketChannel openConnection()

Mencoba terhubung ke server Android Debug Bridge lokal.

static void removeDebugBridgeChangeListener(AndroidDebugBridge.IDebugBridgeChangeListener listener)

Menghapus pemroses dari kumpulan pemroses yang akan diberi tahu saat AndroidDebugBridge baru dimulai.

static void removeDeviceChangeListener(AndroidDebugBridge.IDeviceChangeListener listener)

Menghapus pemroses dari kumpulan pemroses yang akan diberi tahu saat IDevice terhubung, terputus, atau saat properti atau daftar ERROR(/ClientImpl)-nya berubah.

boolean restart(long timeout, TimeUnit unit)

Memulai ulang adb, tetapi bukan layanan di sekitarnya.

boolean restart()

Metode ini tidak digunakan lagi. Metode ini mungkin terhenti jika ADB tidak merespons. Sebagai gantinya, gunakan restart(long,TimeUnit).

boolean startAdb(long timeout, TimeUnit unit)

Memulai server sisi host adb.

static void terminate()

Menghentikan library DDM.

Konstanta

DEFAULT_START_ADB_TIMEOUT_MILLIS

public static final int DEFAULT_START_ADB_TIMEOUT_MILLIS

Waktu tunggu default yang digunakan saat memulai server ADB

Nilai Konstanta: 20000 (0x00004e20)

Kolom

MIN_ADB_VERSION

public static final AdbVersion MIN_ADB_VERSION

Versi minimum dan maksimum adb yang didukung. Ini sesuai dengan ADB_SERVER_VERSION yang ditemukan di //device/tools/adb/adb.h

Metode publik

addDebugBridgeChangeListener

public static void addDebugBridgeChangeListener (AndroidDebugBridge.IDebugBridgeChangeListener listener)

Menambahkan pemroses ke kumpulan pemroses yang akan diberi tahu saat AndroidDebugBridge baru terhubung, dengan mengirimkan salah satu pesan yang ditentukan dalam antarmuka IDebugBridgeChangeListener.

Parameter
listener AndroidDebugBridge.IDebugBridgeChangeListener: Pemroses yang akan diberi tahu.

addDeviceChangeListener

public static void addDeviceChangeListener (AndroidDebugBridge.IDeviceChangeListener listener)

Menambahkan pemroses ke kumpulan pemroses yang akan diberi tahu saat IDevice terhubung, terputus, atau saat properti atau daftar ERROR(/ClientImpl)-nya berubah, dengan mengirimkan salah satu pesan yang ditentukan dalam antarmuka IDeviceChangeListener.

Parameter
listener AndroidDebugBridge.IDeviceChangeListener: Pemroses yang akan diberi tahu.

createBridge

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

Membuat jembatan debug baru dari lokasi alat command line.

Server yang ada akan terputus, kecuali jika lokasinya sama dan forceNewBridge disetel ke salah (false).

Parameter
osLocation String: lokasi alat command line 'adb'

forceNewBridge boolean: memaksa pembuatan jembatan baru meskipun jembatan dengan lokasi yang sama sudah ada.

timeout long: waktu tunggu maksimum

unit TimeUnit: unit waktu argumen timeout

Hasil
AndroidDebugBridge bridge yang terhubung, atau null jika terjadi error saat membuat atau menghubungkan ke bridge

createBridge

public static AndroidDebugBridge createBridge (long timeout, 
                TimeUnit unit)

Membuat AndroidDebugBridge yang tidak ditautkan ke executable tertentu.

Jembatan ini akan mengharapkan adb berjalan. Tidak akan dapat memulai/menghentikan/memulai ulang adb.

Jika jembatan sudah dimulai, jembatan akan langsung ditampilkan tanpa perubahan (mirip dengan memanggil getBridge()).

Parameter
timeout long

unit TimeUnit

Hasil
AndroidDebugBridge bridge yang terhubung, atau null jika terjadi error saat membuat atau menghubungkan ke bridge

createBridge

public static AndroidDebugBridge createBridge (String osLocation, 
                boolean forceNewBridge)

Metode ini tidak digunakan lagi.
Metode ini dapat terhenti jika ADB tidak merespons. Gunakan createBridge(String,boolean,long,TimeUnit) sebagai gantinya.

Membuat jembatan debug baru dari lokasi alat command line.

Server yang ada akan terputus, kecuali jika lokasinya sama dan forceNewBridge disetel ke salah (false).

Parameter
osLocation String: lokasi alat command line 'adb'

forceNewBridge boolean: memaksa pembuatan jembatan baru meskipun jembatan dengan lokasi yang sama sudah ada.

Hasil
AndroidDebugBridge bridge yang terhubung, atau null jika terjadi error saat membuat atau menghubungkan ke bridge

createBridge

public static AndroidDebugBridge createBridge ()

Metode ini tidak digunakan lagi.
Metode ini dapat terhenti jika ADB tidak merespons. Gunakan createBridge(long,TimeUnit) sebagai gantinya.

Membuat AndroidDebugBridge yang tidak ditautkan ke executable tertentu.

Jembatan ini akan mengharapkan adb berjalan. Tidak akan dapat memulai/menghentikan/memulai ulang adb.

Jika jembatan sudah dimulai, jembatan akan langsung ditampilkan tanpa perubahan (mirip dengan memanggil getBridge()).

Hasil
AndroidDebugBridge bridge yang terhubung, atau null jika terjadi error saat membuat atau menghubungkan ke bridge

deviceChanged

public static void deviceChanged (IDevice device, 
                int changeMask)

Memberi tahu pemroses IDevice yang diubah.

Notifikasi pemroses dilakukan dalam blok yang disinkronkan. Penting untuk mengharapkan pemroses berpotensi mengakses berbagai metode IDevice serta getDevices() yang menggunakan kunci internal.

Parameter
device IDevice: IDevice yang diubah.

changeMask int

deviceConnected

public static void deviceConnected (IDevice device)

Memberi tahu pemroses tentang IDevice baru.

Notifikasi pemroses dilakukan dalam blok yang disinkronkan. Penting untuk mengharapkan pemroses berpotensi mengakses berbagai metode IDevice serta getDevices() yang menggunakan kunci internal.

Parameter
device IDevice: IDevice baru.

deviceDisconnected

public static void deviceDisconnected (IDevice device)

Memberi tahu pemroses tentang IDevice yang terputus.

Notifikasi pemroses dilakukan dalam blok yang disinkronkan. Penting untuk mengharapkan pemroses berpotensi mengakses berbagai metode IDevice serta getDevices() yang menggunakan kunci internal.

Parameter
device IDevice: IDevice yang tidak terhubung.

disableFakeAdbServerMode

public static void disableFakeAdbServerMode ()

disconnectBridge

public static void disconnectBridge ()

Metode ini tidak digunakan lagi.
Metode ini dapat terhenti jika ADB tidak merespons. Gunakan disconnectBridge(long,TimeUnit) sebagai gantinya.

Memutus koneksi jembatan debug saat ini, dan menghancurkan objek. Objek baru harus dibuat dengan createBridge(String,boolean).

Tindakan ini juga akan menghentikan server host adb saat ini.

disconnectBridge

public static boolean disconnectBridge (long timeout, 
                TimeUnit unit)

Memutus koneksi jembatan debug saat ini, dan menghancurkan objek. Objek baru harus dibuat dengan createBridge(String,boolean).

Tindakan ini juga akan menghentikan server host adb saat ini.

Parameter
timeout long

unit TimeUnit

Hasil
boolean true jika metode berhasil dalam waktu tunggu yang ditentukan.

enableFakeAdbServerMode

public static void enableFakeAdbServerMode (int port)

Parameter
port int

getAdbVersion

public static ListenableFuture<AdbVersion> getAdbVersion (File adb)

Parameter
adb File

Hasil
ListenableFuture<AdbVersion>

getBridge

public static AndroidDebugBridge getBridge ()

Menampilkan jembatan debug saat ini. Dapat berupa null jika tidak ada yang dibuat.

Hasil
AndroidDebugBridge

getConnectionAttemptCount

public int getConnectionAttemptCount ()

Menampilkan jumlah upaya objek AndroidDebugBridge untuk terhubung ke daemon adb.

Hasil
int

getDebugBridgeChangeListenerCount

public static int getDebugBridgeChangeListenerCount ()

Hasil
int

getDeviceChangeListenerCount

public static int getDeviceChangeListenerCount ()

Hasil
int

getDevices

public IDevice[] getDevices ()

Menampilkan perangkat.

Hasil
IDevice[]

getRawDeviceList

public ListenableFuture<List<AdbDevice>> getRawDeviceList ()

Menampilkan kumpulan perangkat yang dilaporkan oleh command line adb. Hal ini terutama ditujukan untuk Connection Assistant atau alat diagnostik lainnya yang perlu memvalidasi status daftar getDevices() melalui saluran lain. Kode yang hanya perlu mengakses daftar perangkat harus memanggil getDevices().

Hasil
ListenableFuture<List<AdbDevice>>

getRestartAttemptCount

public int getRestartAttemptCount ()

Menampilkan jumlah upaya objek AndroidDebugBridge untuk memulai ulang daemon adb.

Hasil
int

getSocketAddress

public static InetSocketAddress getSocketAddress ()

Metode ini tidak digunakan lagi.
Metode ini menampilkan alamat server loopback yang mungkin tidak cocok dengan yang digunakan oleh server ADB. Artinya, JVM mungkin dalam mode IPv4, sedangkan server ADB dihosting di alamat loopback IPv6. Lebih baik menggunakan openConnection() saat membuka koneksi ke server ADB.

Menampilkan alamat soket server ADB di host.

Metode ini akan mencoba menampilkan alamat soket yang diketahui berfungsi dengan membuka saluran soket ke server ADB. Alamat loopback IPv4 dan IPv6 akan dicoba. Jika keduanya tidak dapat terhubung, metode ini akan melakukan penggantian untuk menampilkan alamat loopback yang disukai oleh JVM. Logika penggantian ini diperlukan untuk mencegah kerusakan API.

Jika mode server ADB palsu diaktifkan, metode ini akan otomatis melakukan penggantian ke implementasi lama tanpa mencoba terhubung ke ADB.

Hasil
InetSocketAddress

getVirtualDeviceId

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

Parameter
service ListeningExecutorService

adb File

device IDevice

Hasil
ListenableFuture<String>

hasInitialDeviceList

public boolean hasInitialDeviceList ()

Menampilkan apakah jembatan telah memperoleh daftar awal dari adb setelah dibuat.

Memanggil getDevices() tepat setelah createBridge(String,boolean) umumnya akan menghasilkan daftar kosong. Hal ini disebabkan oleh mekanisme komunikasi asinkron internal dengan adb yang tidak menjamin bahwa daftar IDevice telah dibuat sebelum panggilan ke getDevices().

Cara yang direkomendasikan untuk mendapatkan daftar objek IDevice adalah dengan membuat objek IDeviceChangeListener.

Hasil
boolean

init

public static void init (AdbInitOptions options)

Mirip dengan init(), dengan kemampuan untuk meneruskan kumpulan variabel env. kustom.

Parameter
options AdbInitOptions

init

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

Mirip dengan init(), dengan kemampuan untuk mengaktifkan libusb dan meneruskan kumpulan env kustom. variabel kategorik Anda.

Parameter
useLibusb boolean

env Map

init

public static void init ()

Menginisialisasi library ddm.

Fungsi ini harus dipanggil sekali sebelum panggilan ke createBridge(String,boolean).

Preferensi ddmlib juga harus diinisialisasi dengan nilai default apa pun yang diubah dari nilai default.

Saat aplikasi keluar, terminate() harus dipanggil.

initIfNeeded

public static void initIfNeeded ()

Menginisialisasi library hanya jika diperlukan; tidak digunakan lagi untuk penggunaan non-pengujian.

Lihat juga:

isConnected

public boolean isConnected ()

Menampilkan apakah objek AndroidDebugBridge masih terhubung ke daemon adb.

Hasil
boolean

isUserManagedAdbMode

public static boolean isUserManagedAdbMode ()

Hasil
boolean Jika beroperasi dalam mode ADB yang dikelola pengguna, ddmlib tidak akan dan tidak boleh mengelola server ADB.

openConnection

public static SocketChannel openConnection ()

Mencoba terhubung ke server Android Debug Bridge lokal.

Hasil
SocketChannel soket yang terhubung jika berhasil

Menampilkan
IOException jika terjadi error saat membuka koneksi

removeDebugBridgeChangeListener

public static void removeDebugBridgeChangeListener (AndroidDebugBridge.IDebugBridgeChangeListener listener)

Menghapus pemroses dari kumpulan pemroses yang akan diberi tahu saat AndroidDebugBridge baru dimulai.

Parameter
listener AndroidDebugBridge.IDebugBridgeChangeListener: Pemroses yang tidak lagi diberi tahu.

removeDeviceChangeListener

public static void removeDeviceChangeListener (AndroidDebugBridge.IDeviceChangeListener listener)

Menghapus pemroses dari kumpulan pemroses yang akan diberi tahu saat IDevice terhubung, terputus, atau saat properti atau daftar ERROR(/ClientImpl)-nya berubah.

Parameter
listener AndroidDebugBridge.IDeviceChangeListener: Pemroses yang tidak boleh lagi diberi tahu.

restart

public boolean restart (long timeout, 
                TimeUnit unit)

Memulai ulang adb, tetapi bukan layanan di sekitarnya.

Parameter
timeout long

unit TimeUnit

Hasil
boolean benar jika berhasil.

restart

public boolean restart ()

Metode ini tidak digunakan lagi.
Metode ini dapat terhenti jika ADB tidak merespons. Gunakan restart(long,TimeUnit) sebagai gantinya.

Memulai ulang adb, tetapi bukan layanan di sekitarnya.

Hasil
boolean benar jika berhasil.

startAdb

public boolean startAdb (long timeout, 
                TimeUnit unit)

Memulai server sisi host adb. Metode ini tidak boleh digunakan saat menggunakan server ADB yang dikelola pengguna karena siklus proses server harus dikelola oleh pengguna, bukan ddmlib.

Parameter
timeout long

unit TimeUnit

Hasil
boolean benar jika berhasil

hentikan, menghentikan [use as per context]

public static void terminate ()

Menghentikan library ddm. Fungsi ini harus dipanggil saat penghentian aplikasi.