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(boolean) harus dipanggil sebelum ada tindakan yang dilakukan.

Ringkasan

Class bertingkat

interface AndroidDebugBridge.IClientChangeListener

Class yang mengimplementasikan antarmuka ini menyediakan metode yang menangani perubahan ClientImpl

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

Menambahkan pemroses ke kumpulan pemroses yang akan diberi tahu saat properti ClientImpl berubah, dengan mengirimkan salah satu pesan yang ditentukan dalam antarmuka IClientChangeListener.

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 ClientImpl-nya berubah, dengan mengirimkan salah satu pesan yang ditentukan dalam antarmuka IDeviceChangeListener.

static void clientChanged(ClientImpl client, int changeMask)

Memberi tahu pemroses ClientImpl yang diubah.

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 dapat terhenti jika ADB tidak merespons. Sebagai gantinya, gunakan createBridge(String, boolean, long, TimeUnit).

static AndroidDebugBridge createBridge()

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

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

Membuat jembatan debug baru dari lokasi alat command line.

static void deviceChanged(IDevice device, int changeMask)

Memberi tahu pemroses tentang 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 dapat 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.

static boolean getClientSupport()

Menampilkan apakah ddmlib disiapkan untuk mendukung pemantauan dan interaksi dengan ClientImpl yang berjalan di IDevice.

int getConnectionAttemptCount()

Menampilkan jumlah upaya objek AndroidDebugBridge untuk terhubung ke daemon adb.

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

Mengembalikan perangkat.

ListenableFuture<> 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 baik menggunakan 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(boolean), dengan kemampuan untuk meneruskan kumpulan env kustom.

static void init(boolean clientSupport)

Menginisialisasi library ddm.

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

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

static void initIfNeeded(boolean clientSupport)

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

Menghapus pemroses dari kumpulan pemroses yang akan diberi tahu saat properti ClientImpl berubah.

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 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 dapat 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

addClientChangeListener

public static void addClientChangeListener (AndroidDebugBridge.IClientChangeListener listener)

Menambahkan pemroses ke kumpulan pemroses yang akan diberi tahu saat properti ClientImpl berubah, dengan mengirimkan salah satu pesan yang ditentukan dalam antarmuka IClientChangeListener.

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

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 ClientImpl-nya berubah, dengan mengirimkan salah satu pesan yang ditentukan dalam antarmuka IDeviceChangeListener.

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

clientChanged

public static void clientChanged (ClientImpl client, 
                int changeMask)

Memberi tahu pemroses ClientImpl 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
client ClientImpl: Client yang diubah.

changeMask int: mask yang menunjukkan apa yang berubah di Client

createBridge

public static AndroidDebugBridge createBridge (long timeout, 
                TimeUnit unit)

Membuat AndroidDebugBridge yang tidak ditautkan ke executable tertentu.

Jembatan ini akan mengharapkan adb berjalan. Perangkat 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. Aplikasi ini 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

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

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

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

getClientSupport

public static boolean getClientSupport ()

Menampilkan apakah ddmlib disiapkan untuk mendukung pemantauan dan interaksi dengan ClientImpl yang berjalan di IDevice.

Hasil
boolean

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 ()

Mengembalikan perangkat.

Hasil
IDevice[]

getRawDeviceList

public ListenableFuture<> 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<>

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 memilih 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 channel soket ke server ADB. Loopback-address 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(boolean), dengan kemampuan untuk meneruskan kumpulan variabel env. kustom.

Parameter
options AdbInitOptions

init

public static void init (boolean clientSupport)

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.

Parameter
clientSupport boolean: Menunjukkan apakah library harus mengaktifkan pemantauan dan interaksi dengan aplikasi yang berjalan di perangkat.

init

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

Mirip dengan init(boolean), dengan kemampuan untuk mengaktifkan libusb dan meneruskan serangkaian variabel env. kustom.

Parameter
clientSupport boolean

useLibusb boolean

env

initIfNeeded

public static void initIfNeeded (boolean clientSupport)

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

Parameter
clientSupport boolean: Menunjukkan apakah library harus mengaktifkan pemantauan dan interaksi dengan aplikasi yang berjalan di perangkat.

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
jika terjadi error saat membuka koneksi

removeClientChangeListener

public static void removeClientChangeListener (AndroidDebugBridge.IClientChangeListener listener)

Menghapus pemroses dari kumpulan pemroses yang akan diberi tahu saat properti ClientImpl berubah.

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

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 boleh 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 ClientImpl-nya berubah.

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

mulai ulang

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.

mulai ulang

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

terminate

public static void terminate ()

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