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 |
interface |
AndroidDebugBridge.IDebugBridgeChangeListener
Class yang mengimplementasikan antarmuka ini menyediakan metode yang menangani perubahan |
interface |
AndroidDebugBridge.IDeviceChangeListener
Class yang mengimplementasikan antarmuka ini menyediakan metode yang menangani penambahan, penghapusan, dan perubahan |
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 |
static
void
|
addDebugBridgeChangeListener(AndroidDebugBridge.IDebugBridgeChangeListener listener)
Menambahkan pemroses ke kumpulan pemroses yang akan diberi tahu saat |
static
void
|
addDeviceChangeListener(AndroidDebugBridge.IDeviceChangeListener listener)
Menambahkan pemroses ke kumpulan pemroses yang akan diberi tahu saat |
static
void
|
clientChanged(ClientImpl client, int changeMask)
Memberi tahu pemroses |
static
AndroidDebugBridge
|
createBridge(long timeout, TimeUnit unit)
Membuat |
static
AndroidDebugBridge
|
createBridge(String osLocation, boolean forceNewBridge)
Metode ini tidak digunakan lagi.
Metode ini dapat terhenti jika ADB tidak merespons. Sebagai gantinya, gunakan |
static
AndroidDebugBridge
|
createBridge()
Metode ini tidak digunakan lagi.
Metode ini dapat terhenti jika ADB tidak merespons. Sebagai gantinya, gunakan |
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 |
static
void
|
deviceConnected(IDevice device)
Memberi tahu pemroses tentang |
static
void
|
deviceDisconnected(IDevice device)
Memberi tahu pemroses tentang |
static
void
|
disableFakeAdbServerMode()
|
static
void
|
disconnectBridge()
Metode ini tidak digunakan lagi.
Metode ini dapat terhenti jika ADB tidak merespons. Sebagai gantinya, gunakan |
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 |
int
|
getConnectionAttemptCount()
Menampilkan jumlah upaya objek |
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 |
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 |
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 |
static
void
|
init(boolean clientSupport)
Menginisialisasi library |
static
void
|
init(boolean clientSupport, boolean useLibusb,
Serupa dengan |
static
void
|
initIfNeeded(boolean clientSupport)
Menginisialisasi library hanya jika diperlukan; tidak digunakan lagi untuk penggunaan non-pengujian. |
boolean
|
isConnected()
Menampilkan apakah objek |
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 |
static
void
|
removeDebugBridgeChangeListener(AndroidDebugBridge.IDebugBridgeChangeListener listener)
Menghapus pemroses dari kumpulan pemroses yang akan diberi tahu saat |
static
void
|
removeDeviceChangeListener(AndroidDebugBridge.IDeviceChangeListener listener)
Menghapus pemroses dari kumpulan pemroses yang akan diberi tahu saat |
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 |
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 |
|
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. |
Lihat juga:
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.