AdbHelper
public
final
class
AdbHelper
extends Object
| java.lang.Object
|
| ↳ |
com.android.tradefed.device.server.AdbHelper
|
Class helper untuk menangani permintaan dan koneksi ke adb.
AndroidDebugBridge adalah API publik untuk menghubungkan ke adb, sedangkan AdbHelper
melakukan hal-hal tingkat rendah.
Saat ini menggunakan I/O non-blocking spin-wait. Pemilih akan lebih efisien, tetapi tampaknya
berlebihan untuk apa yang kita lakukan di sini.
Ringkasan
Metode publik |
static
void
|
createForward(InetSocketAddress adbSockAddr, IDevice device, String localPortSpec, String remotePortSpec)
Membuat penerusan port antara port lokal dan jarak jauh.
|
static
AdbCommandRejectedException
|
createHiddenException(String message, boolean errorDuringDeviceSelection)
|
static
AdbCommandRejectedException
|
createHiddenException(String message)
|
static
byte[]
|
createJdwpForwardRequest(int pid)
Membuat permintaan penerusan port ke proses jdwp.
|
static
SocketChannel
|
createPassThroughConnection(InetSocketAddress adbSockAddr, String deviceSerialNumber, int pid)
Membuat dan menghubungkan soket teruskan baru, dari host ke port di perangkat.
|
static
void
|
createReverse(InetSocketAddress adbSockAddr, IDevice device, String remotePortSpec, String localPortSpec)
Membuat pembalikan port antara port jarak jauh dan port lokal.
|
static
void
|
executeRemoteCommand(InetSocketAddress adbSockAddr, String command, IDevice device, IShellOutputReceiver rcvr, long maxTimeToOutputResponse, TimeUnit maxTimeUnits)
Menjalankan perintah shell di perangkat dan mengambil output.
|
static
void
|
executeRemoteCommand(InetSocketAddress adbSockAddr, AdbHelper.AdbService adbService, String command, IDevice device, IShellOutputReceiver rcvr, long maxTimeout, long maxTimeToOutputResponse, TimeUnit maxTimeUnits, InputStream is)
Menjalankan perintah jarak jauh di perangkat dan mengambil output.
|
static
void
|
executeRemoteCommand(InetSocketAddress adbSockAddr, String command, IDevice device, IShellOutputReceiver rcvr, long maxTimeout, long maxTimeToOutputResponse, TimeUnit maxTimeUnits)
Menjalankan perintah shell di perangkat dan mengambil output.
|
static
byte[]
|
formAdbRequest(String payloadString)
Buat string ASCII yang diawali dengan empat digit hex.
|
static
String
|
getFeatures(IDevice device)
Mengirim kueri serangkaian fitur yang didukung dari perangkat.
|
static
RawImage
|
getFrameBuffer(InetSocketAddress adbSockAddr, IDevice device, long timeout, TimeUnit unit)
Mengambil frame buffer dari perangkat dengan waktu tunggu yang ditentukan.
|
static
String
|
getHostFeatures()
Mengirim kueri ke serangkaian fitur yang didukung dari host ADB.
|
static
SocketChannel
|
open(InetSocketAddress adbSockAddr, IDevice device, int devicePort)
Buat dan hubungkan soket teruskan baru, dari host ke port di perangkat.
|
static
SocketChannel
|
rawAdbService(InetSocketAddress socketAddress, IDevice device, String command, AdbHelper.AdbService service)
Panggil layanan di perangkat jarak jauh.
|
static
SocketChannel
|
rawExec(InetSocketAddress socketAddress, IDevice device, String executable, String[] parameters)
Panggil layanan host:exec di perangkat jarak jauh.
|
static
AdbHelper.AdbResponse
|
readAdbResponse(SocketChannel chan, boolean readDiagString)
Membaca respons dari ADB setelah perintah.
|
static
void
|
reboot(String into, InetSocketAddress adbSockAddr, IDevice device)
Boot ulang perangkat.
|
static
void
|
removeForward(InetSocketAddress adbSockAddr, IDevice device, String localPortSpec)
Menghapus penerusan port antara port lokal dan port jarak jauh.
|
static
void
|
removeReverse(InetSocketAddress adbSockAddr, IDevice device, String remotePortSpec)
Menghapus pembalikan port antara port jarak jauh dan lokal.
|
static
void
|
root(InetSocketAddress adbSockAddr, IDevice device)
Meminta daemon adb untuk menjadi root di perangkat.
|
static
void
|
setDevice(SocketChannel adbChan, IDevice device)
Mengingat IDevice mengambil nomor seri dan memberi tahu adb untuk berkomunikasi dengan perangkat tersebut.
|
static
void
|
setDevice(SocketChannel adbChan, String deviceSerialNumber)
memberi tahu adb untuk berkomunikasi dengan perangkat tertentu
|
static
void
|
write(SocketChannel chan, byte[] data, int length, int timeout)
Menulis hingga semua data dalam "data" ditulis, panjang opsional tercapai, waktu tunggu habis, atau koneksi gagal.
|
static
void
|
write(SocketChannel chan, byte[] data)
Menulis hingga semua data dalam "data" ditulis atau koneksi gagal atau waktu tunggu habis.
|
Konstanta
HOST_TRANSPORT
public static final String HOST_TRANSPORT
Nilai Konstanta:
"host:transport:"
Kolom
DEFAULT_CHARSET
public static final Charset DEFAULT_CHARSET
Metode publik
createForward
public static void createForward (InetSocketAddress adbSockAddr,
IDevice device,
String localPortSpec,
String remotePortSpec)
Membuat penerusan port antara port lokal dan jarak jauh.
| Parameter |
adbSockAddr |
InetSocketAddress: alamat soket untuk terhubung ke adb |
device |
IDevice: perangkat yang akan melakukan penerusan port |
localPortSpec |
String: spesifikasi port lokal yang akan diteruskan, harus dalam format
tcp: |
remotePortSpec |
String: spesifikasi port jarak jauh yang akan diteruskan, salah satunya: tcp:
localabstract: localreserved:
localfilesystem: dev: jdwp:
(khusus jarak jauh) |
createHiddenException
public static AdbCommandRejectedException createHiddenException (String message,
boolean errorDuringDeviceSelection)
| Parameter |
message |
String |
errorDuringDeviceSelection |
boolean |
createJdwpForwardRequest
public static byte[] createJdwpForwardRequest (int pid)
Membuat permintaan penerusan port ke proses jdwp. Tindakan ini akan menampilkan array yang berisi "####jwdp:{pid}".
| Parameter |
pid |
int: pid proses jdwp di perangkat. |
createPassThroughConnection
public static SocketChannel createPassThroughConnection (InetSocketAddress adbSockAddr,
String deviceSerialNumber,
int pid)
Membuat dan menghubungkan soket teruskan baru, dari host ke port di perangkat.
| Parameter |
deviceSerialNumber |
String: nomor seri perangkat yang akan dihubungkan. Dapat berupa null atau kosong jika koneksi akan dilakukan ke perangkat pertama yang tersedia. |
pid |
int: pid proses yang akan dihubungkan. |
createReverse
public static void createReverse (InetSocketAddress adbSockAddr,
IDevice device,
String remotePortSpec,
String localPortSpec)
Membuat pembalikan port antara port jarak jauh dan port lokal.
| Parameter |
adbSockAddr |
InetSocketAddress: alamat soket untuk terhubung ke adb |
device |
IDevice: perangkat yang akan melakukan pembalikan port |
remotePortSpec |
String: spesifikasi port jarak jauh yang akan dibalik, salah satunya: tcp:
localabstract: localreserved:
localfilesystem: dev: jdwp:
(khusus jarak jauh) |
localPortSpec |
String: spesifikasi port lokal, harus dalam format tcp: |
executeRemoteCommand
public static void executeRemoteCommand (InetSocketAddress adbSockAddr,
String command,
IDevice device,
IShellOutputReceiver rcvr,
long maxTimeToOutputResponse,
TimeUnit maxTimeUnits)
Menjalankan perintah shell di perangkat dan mengambil output. Output diserahkan ke
rcvr saat tiba.
| Parameter |
adbSockAddr |
InetSocketAddress: ERROR(/InetSocketAddress) ke adb. |
command |
String: perintah shell yang akan dijalankan |
device |
IDevice: IDevice tempat perintah akan dieksekusi. |
rcvr |
IShellOutputReceiver: IShellOutputReceiver yang akan menerima output perintah shell |
maxTimeToOutputResponse |
long: waktu maksimum antara output perintah. Jika lebih banyak waktu berlalu di antara
output perintah, metode akan menampilkan ShellCommandUnresponsiveException. Nilai
0 berarti metode akan menunggu output perintah selamanya dan tidak pernah memunculkan pengecualian. |
maxTimeUnits |
TimeUnit: Satuan untuk nilai maxTimeToOutputResponse bukan nol. |
public static void executeRemoteCommand (InetSocketAddress adbSockAddr,
AdbHelper.AdbService adbService,
String command,
IDevice device,
IShellOutputReceiver rcvr,
long maxTimeout,
long maxTimeToOutputResponse,
TimeUnit maxTimeUnits,
InputStream is)
Menjalankan perintah jarak jauh di perangkat dan mengambil output. Output diserahkan ke
rcvr saat tiba. Perintah dijalankan oleh layanan jarak jauh yang diidentifikasi oleh
parameter adbService.
| Parameter |
adbSockAddr |
InetSocketAddress: ERROR(/InetSocketAddress) ke adb. |
adbService |
AdbHelper.AdbService: AdbHelper.AdbService yang akan digunakan untuk menjalankan perintah. |
command |
String: perintah shell yang akan dijalankan |
device |
IDevice: IDevice tempat perintah akan dieksekusi. |
rcvr |
IShellOutputReceiver: IShellOutputReceiver yang akan menerima output perintah shell |
maxTimeout |
long: waktu tunggu maksimum agar perintah penuh dapat dieksekusi. Nilai 0 berarti tidak ada waktu tunggu. |
maxTimeToOutputResponse |
long: waktu maksimum antara output perintah. Jika lebih banyak waktu berlalu di antara
output perintah, metode akan menampilkan ShellCommandUnresponsiveException. Nilai
0 berarti metode akan menunggu output perintah selamanya dan tidak pernah memunculkan pengecualian. |
maxTimeUnits |
TimeUnit: Satuan untuk nilai maxTimeout dan maxTimeToOutputResponse
selain nol. |
is |
InputStream: ERROR(/InputStream) opsional yang akan di-streaming setelah memanggil perintah dan
sebelum mengambil respons. |
executeRemoteCommand
public static void executeRemoteCommand (InetSocketAddress adbSockAddr,
String command,
IDevice device,
IShellOutputReceiver rcvr,
long maxTimeout,
long maxTimeToOutputResponse,
TimeUnit maxTimeUnits)
Menjalankan perintah shell di perangkat dan mengambil output. Output diserahkan ke
rcvr saat tiba.
| Parameter |
adbSockAddr |
InetSocketAddress: ERROR(/InetSocketAddress) ke adb. |
command |
String: perintah shell yang akan dijalankan |
device |
IDevice: IDevice tempat perintah akan dieksekusi. |
rcvr |
IShellOutputReceiver: IShellOutputReceiver yang akan menerima output perintah shell |
maxTimeout |
long: waktu maksimum agar perintah dapat ditampilkan. Nilai 0 berarti tidak ada waktu tunggu maksimum yang akan diterapkan. |
maxTimeToOutputResponse |
long: waktu maksimum antara output perintah. Jika lebih banyak waktu berlalu di antara
output perintah, metode akan menampilkan ShellCommandUnresponsiveException. Nilai
0 berarti metode akan menunggu output perintah selamanya dan tidak pernah memunculkan pengecualian. |
maxTimeUnits |
TimeUnit: Satuan untuk nilai maxTimeout dan maxTimeToOutputResponse
selain nol. |
public static byte[] formAdbRequest (String payloadString)
Buat string ASCII yang diawali dengan empat digit hex. "####" di awal adalah panjang
string lainnya, yang dienkode sebagai hex ASCII (huruf besar/kecil tidak masalah).
| Parameter |
payloadString |
String |
getFeatures
public static String getFeatures (IDevice device)
Mengirim kueri serangkaian fitur yang didukung dari perangkat.
| Parameter |
device |
IDevice: perangkat yang akan melakukan penerusan port |
getFrameBuffer
public static RawImage getFrameBuffer (InetSocketAddress adbSockAddr,
IDevice device,
long timeout,
TimeUnit unit)
Mengambil frame buffer dari perangkat dengan waktu tunggu yang ditentukan. Waktu tunggu 0 menunjukkan
bahwa waktu tunggu akan berlangsung selamanya.
| Parameter |
adbSockAddr |
InetSocketAddress |
device |
IDevice |
timeout |
long |
unit |
TimeUnit |
getHostFeatures
public static String getHostFeatures ()
Mengirim kueri ke serangkaian fitur yang didukung dari host ADB.
buka
public static SocketChannel open (InetSocketAddress adbSockAddr,
IDevice device,
int devicePort)
Buat dan hubungkan soket teruskan baru, dari host ke port di perangkat.
| Parameter |
device |
IDevice: perangkat yang akan dihubungkan. Dapat berupa null, dalam hal ini koneksi akan dilakukan ke
perangkat pertama yang tersedia. |
devicePort |
int: port yang kita buka |
rawAdbService
public static SocketChannel rawAdbService (InetSocketAddress socketAddress,
IDevice device,
String command,
AdbHelper.AdbService service)
Panggil layanan di perangkat jarak jauh. Menampilkan saluran soket yang terhubung ke
proses yang sedang berjalan.
ddlmib melepaskan kepemilikan SocketChannel yang ditampilkan dan harus ditutup secara eksplisit setelah digunakan.
| Parameter |
device |
IDevice: perangkat yang akan dihubungkan. Dapat berupa null, dalam hal ini koneksi akan dilakukan ke
perangkat pertama yang tersedia. |
command |
String: perintah yang akan dijalankan |
service |
AdbHelper.AdbService: AdbHelper.AdbService yang akan digunakan untuk menjalankan perintah. |
rawExec
public static SocketChannel rawExec (InetSocketAddress socketAddress,
IDevice device,
String executable,
String[] parameters)
Panggil layanan host:exec di perangkat jarak jauh. Menampilkan saluran soket yang terhubung ke
proses yang sedang berjalan. Perhatikan bahwa layanan exec tidak membedakan stdout dan stderr, sehingga apa pun yang dibaca dari soket dapat berasal dari output mana pun dan diselingi.
ddlmib melepaskan kepemilikan SocketChannel yang ditampilkan dan harus ditutup secara eksplisit setelah digunakan.
| Parameter |
device |
IDevice: perangkat yang akan dihubungkan. Dapat berupa null, dalam hal ini koneksi akan dilakukan ke
perangkat pertama yang tersedia. |
executable |
String: jalur absolut dari file yang dapat dieksekusi untuk dijalankan |
parameters |
String: parameter yang akan diberikan saat menjalankan file yang dapat dieksekusi |
readAdbResponse
public static AdbHelper.AdbResponse readAdbResponse (SocketChannel chan,
boolean readDiagString)
Membaca respons dari ADB setelah perintah.
| Parameter |
chan |
SocketChannel: Saluran soket yang terhubung ke adb. |
readDiagString |
boolean: Jika benar (true), kita mengharapkan respons OKAY diikuti dengan
string diagnostik. Jika tidak, kami hanya mengharapkan string diagnostik mengikuti FAIL. |
| Menampilkan |
TimeoutException |
jika terjadi waktu tunggu habis pada koneksi. |
|
jika terjadi error I/O pada koneksi. |
mulai ulang
public static void reboot (String into,
InetSocketAddress adbSockAddr,
IDevice device)
Boot ulang perangkat.
| Parameter |
into |
String: apa yang akan di-reboot (pemulihan, bootloader). Atau null untuk memulai ulang saja. |
adbSockAddr |
InetSocketAddress |
device |
IDevice |
removeForward
public static void removeForward (InetSocketAddress adbSockAddr,
IDevice device,
String localPortSpec)
Menghapus penerusan port antara port lokal dan port jarak jauh.
| Parameter |
adbSockAddr |
InetSocketAddress: alamat soket untuk terhubung ke adb |
device |
IDevice: perangkat tempat penghapusan penerusan port dilakukan |
localPortSpec |
String: spesifikasi port lokal yang diteruskan, harus dalam format
tcp: |
removeReverse
public static void removeReverse (InetSocketAddress adbSockAddr,
IDevice device,
String remotePortSpec)
Menghapus pembalikan port antara port jarak jauh dan lokal.
| Parameter |
adbSockAddr |
InetSocketAddress: alamat soket untuk terhubung ke adb |
device |
IDevice: perangkat yang akan dihapus pembalikan portnya |
remotePortSpec |
String: spesifikasi port jarak jauh yang dibalik, salah satunya: tcp:
localabstract: localreserved:
localfilesystem: dev: jdwp:
(khusus jarak jauh) |
root
public static void root (InetSocketAddress adbSockAddr,
IDevice device)
Meminta daemon adb untuk menjadi root di perangkat. Tindakan ini mungkin gagal tanpa pemberitahuan, dan hanya dapat berhasil
pada build developer. Lihat "adb root" untuk mengetahui informasi selengkapnya. Jika Anda perlu mengetahui apakah berhasil,
Anda dapat memeriksa hasil executeRemoteCommand pada 'echo \$USER_ID', jika 0 maka adbd berjalan sebagai root.
| Parameter |
adbSockAddr |
InetSocketAddress |
device |
IDevice |
setDevice
public static void setDevice (SocketChannel adbChan,
IDevice device)
Mengingat IDevice mengambil nomor seri dan memberi tahu adb untuk berkomunikasi dengan perangkat tersebut.
| Parameter |
adbChan |
SocketChannel: koneksi soket ke adb. |
device |
IDevice: perangkat yang akan diajak bicara. |
setDevice
public static void setDevice (SocketChannel adbChan,
String deviceSerialNumber)
memberi tahu adb untuk berkomunikasi dengan perangkat tertentu
| Parameter |
adbChan |
SocketChannel: koneksi soket ke adb |
deviceSerialNumber |
String: serial perangkat yang akan diajak berkomunikasi, jika null, perangkat default
yang dipilih adalah perangkat yang dipilih oleh adb. |
menulis
public static void write (SocketChannel chan,
byte[] data,
int length,
int timeout)
Menulis hingga semua data dalam "data" ditulis, panjang opsional tercapai, waktu tunggu habis, atau koneksi gagal. Menampilkan "true" jika semua data telah ditulis.
| Parameter |
chan |
SocketChannel: soket yang dibuka untuk menulis. |
data |
byte: buffer yang akan dikirim. |
length |
int: panjang yang akan ditulis atau -1 untuk mengirim seluruh buffer. |
timeout |
int: Nilai waktu tunggu. Waktu tunggu nol berarti "tunggu selamanya". |
| Menampilkan |
TimeoutException |
jika terjadi waktu tunggu habis pada koneksi. |
|
jika terjadi error I/O pada koneksi. |
menulis
public static void write (SocketChannel chan,
byte[] data)
Menulis hingga semua data dalam "data" ditulis atau koneksi gagal atau waktu tunggu habis.
Tindakan ini menggunakan nilai waktu tunggu default.
| Parameter |
chan |
SocketChannel: soket yang dibuka untuk menulis. |
data |
byte: buffer yang akan dikirim. |
| Menampilkan |
TimeoutException |
jika terjadi waktu tunggu habis pada koneksi. |
|
jika terjadi error I/O pada koneksi. |