AdbHelper

public final class AdbHelper
extends Object

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


คลาส Helper เพื่อจัดการคำขอและการเชื่อมต่อกับ adb

AndroidDebugBridge คือ API สาธารณะสำหรับการเชื่อมต่อกับ adb ส่วน AdbHelper จะจัดการสิ่งต่างๆ ในระดับต่ำ

ปัจจุบันใช้ I/O แบบไม่บล็อกที่มีการรอแบบหมุน ตัวเลือกจะมีประสิทธิภาพมากกว่า แต่ดูเหมือน จะมากเกินไปสำหรับสิ่งที่เรากำลังทำที่นี่

สรุป

คลาสเรียนที่ซ้อนกัน

class AdbHelper.AdbResponse

การตอบกลับจาก ADB 

ค่าคงที่

String HOST_TRANSPORT

ช่อง

public static final Charset DEFAULT_CHARSET

เมธอดสาธารณะ

static void createForward(InetSocketAddress adbSockAddr, IDevice device, String localPortSpec, String remotePortSpec)

สร้างการส่งต่อพอร์ระหว่างพอร์ตในเครื่องกับพอร์ตระยะไกล

static AdbCommandRejectedException createHiddenException(String message, boolean errorDuringDeviceSelection)
static AdbCommandRejectedException createHiddenException(String message)
static byte[] createJdwpForwardRequest(int pid)

สร้างคำขอการส่งต่อพอร์ตไปยังกระบวนการ JDWP

static SocketChannel createPassThroughConnection(InetSocketAddress adbSockAddr, String deviceSerialNumber, int pid)

สร้างและเชื่อมต่อซ็อกเก็ตแบบส่งผ่านใหม่จากโฮสต์ไปยังพอร์ตในอุปกรณ์

static void createReverse(InetSocketAddress adbSockAddr, IDevice device, String remotePortSpec, String localPortSpec)

สร้างการย้อนกลับพอร์ระหว่างพอร์ตระยะไกลกับพอร์ตภายใน

static void executeRemoteCommand(InetSocketAddress adbSockAddr, String command, IDevice device, IShellOutputReceiver rcvr, long maxTimeToOutputResponse, TimeUnit maxTimeUnits)

เรียกใช้คำสั่งเชลล์ในอุปกรณ์และดึงข้อมูลเอาต์พุต

static void executeRemoteCommand(InetSocketAddress adbSockAddr, AdbHelper.AdbService adbService, String command, IDevice device, IShellOutputReceiver rcvr, long maxTimeout, long maxTimeToOutputResponse, TimeUnit maxTimeUnits, InputStream is)

เรียกใช้คำสั่งระยะไกลในอุปกรณ์และดึงข้อมูลเอาต์พุต

static void executeRemoteCommand(InetSocketAddress adbSockAddr, String command, IDevice device, IShellOutputReceiver rcvr, long maxTimeout, long maxTimeToOutputResponse, TimeUnit maxTimeUnits)

เรียกใช้คำสั่งเชลล์ในอุปกรณ์และดึงข้อมูลเอาต์พุต

static byte[] formAdbRequest(String payloadString)

สร้างสตริง ASCII ที่นำหน้าด้วยตัวเลขฐานสิบหก 4 หลัก

static String getFeatures(IDevice device)

ค้นหาชุดฟีเจอร์ที่รองรับจากอุปกรณ์

static RawImage getFrameBuffer(InetSocketAddress adbSockAddr, IDevice device, long timeout, TimeUnit unit)

เรียกข้อมูลเฟรมบัฟเฟอร์จากอุปกรณ์โดยมีระยะหมดเวลาที่ระบุ

static String getHostFeatures()

ค้นหาชุดฟีเจอร์ที่รองรับจากโฮสต์ ADB

static SocketChannel open(InetSocketAddress adbSockAddr, IDevice device, int devicePort)

สร้างและเชื่อมต่อซ็อกเก็ตส่งผ่านใหม่จากโฮสต์ไปยังพอร์ตในอุปกรณ์

static SocketChannel rawAdbService(InetSocketAddress socketAddress, IDevice device, String command, AdbHelper.AdbService service)

เรียกใช้บริการในอุปกรณ์ระยะไกล

static SocketChannel rawExec(InetSocketAddress socketAddress, IDevice device, String executable, String[] parameters)

เรียกใช้บริการ host:exec ในอุปกรณ์ระยะไกล

static AdbHelper.AdbResponse readAdbResponse(SocketChannel chan, boolean readDiagString)

อ่านการตอบกลับจาก ADB หลังจากคำสั่ง

static void reboot(String into, InetSocketAddress adbSockAddr, IDevice device)

รีบูตอุปกรณ์

static void removeForward(InetSocketAddress adbSockAddr, IDevice device, String localPortSpec)

นำการส่งต่อพอร์ตระหว่างพอร์ตในเครื่องกับพอร์ตระยะไกลออก

static void removeReverse(InetSocketAddress adbSockAddr, IDevice device, String remotePortSpec)

นำการย้อนกลับพอร์ตระหว่างพอร์ตระยะไกลและพอร์ตภายในออก

static void root(InetSocketAddress adbSockAddr, IDevice device)

ขอให้ adb demon กลายเป็นรูทในอุปกรณ์

static void setDevice(SocketChannel adbChan, IDevice device)

เมื่อระบุ IDevice แล้ว ให้ดึงหมายเลขซีเรียลและบอก adb ให้สื่อสารกับอุปกรณ์นั้น

static void setDevice(SocketChannel adbChan, String deviceSerialNumber)

บอกให้ adb สื่อสารกับอุปกรณ์ที่เฉพาะเจาะจง

static void write(SocketChannel chan, byte[] data, int length, int timeout)

เขียนจนกว่าจะเขียนข้อมูลทั้งหมดใน "data" แล้ว หรือถึงความยาวที่ไม่บังคับ หรือหมดเวลา หรือการเชื่อมต่อล้มเหลว

static void write(SocketChannel chan, byte[] data)

เขียนจนกว่าจะเขียนข้อมูลทั้งหมดใน "data" เสร็จ หรือการเชื่อมต่อล้มเหลวหรือหมดเวลา

ค่าคงที่

HOST_TRANSPORT

public static final String HOST_TRANSPORT

ค่าคงที่: "host:transport:"

ช่อง

DEFAULT_CHARSET

public static final Charset DEFAULT_CHARSET

เมธอดสาธารณะ

createForward

public static void createForward (InetSocketAddress adbSockAddr, 
                IDevice device, 
                String localPortSpec, 
                String remotePortSpec)

สร้างการส่งต่อพอร์ระหว่างพอร์ตในเครื่องกับพอร์ตระยะไกล

พารามิเตอร์
adbSockAddr InetSocketAddress: ที่อยู่ซ็อกเก็ตที่จะเชื่อมต่อกับ adb

device IDevice: อุปกรณ์ที่จะใช้ส่งต่อพอร์ต

localPortSpec String: ข้อกำหนดของพอร์ตในเครื่องที่จะส่งต่อ ควรมีรูปแบบ tcp:

remotePortSpec String: การระบุพอร์ตระยะไกลที่จะส่งต่อ ซึ่งมีดังนี้ tcp: localabstract: localreserved: localfilesystem: dev: jdwp: (ระยะไกลเท่านั้น)

การขว้าง
TimeoutException ในกรณีที่การเชื่อมต่อหมดเวลา
AdbCommandRejectedException หาก adb ปฏิเสธคำสั่ง
ในกรณีที่เกิดข้อผิดพลาด I/O ในการเชื่อมต่อ

createHiddenException

public static AdbCommandRejectedException createHiddenException (String message, 
                boolean errorDuringDeviceSelection)

พารามิเตอร์
message String

errorDuringDeviceSelection boolean

คิกรีเทิร์น
AdbCommandRejectedException

createHiddenException

public static AdbCommandRejectedException createHiddenException (String message)

พารามิเตอร์
message String

คิกรีเทิร์น
AdbCommandRejectedException

createJdwpForwardRequest

public static byte[] createJdwpForwardRequest (int pid)

สร้างคำขอการส่งต่อพอร์ตไปยังกระบวนการ JDWP ซึ่งจะแสดงอาร์เรย์ที่มี "####jwdp:{pid}"

พารามิเตอร์
pid int: PID ของกระบวนการ JDWP ในอุปกรณ์

คิกรีเทิร์น
byte[]

createPassThroughConnection

public static SocketChannel createPassThroughConnection (InetSocketAddress adbSockAddr, 
                String deviceSerialNumber, 
                int pid)

สร้างและเชื่อมต่อซ็อกเก็ตแบบส่งผ่านใหม่จากโฮสต์ไปยังพอร์ตในอุปกรณ์

พารามิเตอร์
deviceSerialNumber String: หมายเลขซีเรียลของอุปกรณ์ที่จะเชื่อมต่อ อาจเป็นค่าว่างหรือไม่มีค่าใน ซึ่งในกรณีนี้ ระบบจะเชื่อมต่อกับอุปกรณ์แรกที่พร้อมใช้งาน

pid int: pid ของกระบวนการที่จะเชื่อมต่อ

คิกรีเทิร์น
SocketChannel

การขว้าง
TimeoutException ในกรณีที่การเชื่อมต่อหมดเวลา
AdbCommandRejectedException หาก adb ปฏิเสธคำสั่ง
ในกรณีที่เกิดข้อผิดพลาด I/O ในการเชื่อมต่อ

createReverse

public static void createReverse (InetSocketAddress adbSockAddr, 
                IDevice device, 
                String remotePortSpec, 
                String localPortSpec)

สร้างการย้อนกลับพอร์ทระหว่างพอร์ทระยะไกลกับพอร์ทภายใน

พารามิเตอร์
adbSockAddr InetSocketAddress: ที่อยู่ซ็อกเก็ตที่จะเชื่อมต่อกับ adb

device IDevice: อุปกรณ์ที่จะใช้ย้อนกลับพอร์ต

remotePortSpec String: การระบุพอร์ตระยะไกลที่จะย้อนกลับ ซึ่งมีดังนี้ tcp: localabstract: localreserved: localfilesystem: dev: jdwp: (ระยะไกลเท่านั้น)

localPortSpec String: ข้อกำหนดของพอร์ตภายใน ควรมีรูปแบบ tcp:

การขว้าง
TimeoutException ในกรณีที่การเชื่อมต่อหมดเวลา
AdbCommandRejectedException หาก adb ปฏิเสธคำสั่ง
ในกรณีที่เกิดข้อผิดพลาด I/O ในการเชื่อมต่อ

executeRemoteCommand

public static void executeRemoteCommand (InetSocketAddress adbSockAddr, 
                String command, 
                IDevice device, 
                IShellOutputReceiver rcvr, 
                long maxTimeToOutputResponse, 
                TimeUnit maxTimeUnits)

เรียกใช้คำสั่งเชลล์ในอุปกรณ์และดึงข้อมูลเอาต์พุต โดยจะส่งผลลัพธ์ให้แก่ rcvr ทันทีที่ได้รับ

พารามิเตอร์
adbSockAddr InetSocketAddress: ERROR(/InetSocketAddress) ไปยัง adb

command String: คำสั่งเชลล์ที่จะดำเนินการ

device IDevice: IDevice ที่จะใช้เรียกใช้คำสั่ง

rcvr IShellOutputReceiver: IShellOutputReceiver ที่จะรับเอาต์พุตของคำสั่งเชลล์

maxTimeToOutputResponse long: เวลาสูงสุดระหว่างเอาต์พุตคำสั่ง หากเวลาผ่านไปนานกว่านี้ระหว่างเอาต์พุตคำสั่ง เมธอดจะส่ง ShellCommandUnresponsiveException ค่า 0 หมายความว่าเมธอดจะรอเอาต์พุตคำสั่งไปเรื่อยๆ และไม่เคยส่งข้อยกเว้น

maxTimeUnits TimeUnit: หน่วยสำหรับค่า maxTimeToOutputResponse ที่ไม่ใช่ 0

การขว้าง
TimeoutException ในกรณีที่การเชื่อมต่อหมดเวลาเมื่อส่งคำสั่ง
AdbCommandRejectedException หาก adb ปฏิเสธคำสั่ง
ShellCommandUnresponsiveException ในกรณีที่คำสั่งเชลล์ไม่ส่งเอาต์พุตใดๆ เป็นระยะเวลานานกว่า maxTimeToOutputResponse
ในกรณีที่เกิดข้อผิดพลาด I/O ในการเชื่อมต่อ

ดูเพิ่มเติม:

executeRemoteCommand

public static void executeRemoteCommand (InetSocketAddress adbSockAddr, 
                AdbHelper.AdbService adbService, 
                String command, 
                IDevice device, 
                IShellOutputReceiver rcvr, 
                long maxTimeout, 
                long maxTimeToOutputResponse, 
                TimeUnit maxTimeUnits, 
                InputStream is)

เรียกใช้คำสั่งระยะไกลในอุปกรณ์และดึงข้อมูลเอาต์พุต โดยจะส่งผลลัพธ์ให้แก่ rcvr ทันทีที่ได้รับ คำสั่งนี้จะดำเนินการโดยบริการระยะไกลที่ระบุโดยพารามิเตอร์ adbService

พารามิเตอร์
adbSockAddr InetSocketAddress: ERROR(/InetSocketAddress) ไปยัง adb

adbService AdbHelper.AdbService: AdbHelper.AdbService ที่ใช้เรียกใช้คำสั่ง

command String: คำสั่งเชลล์ที่จะดำเนินการ

device IDevice: IDevice ที่จะใช้เรียกใช้คำสั่ง

rcvr IShellOutputReceiver: IShellOutputReceiver ที่จะรับเอาต์พุตของคำสั่งเชลล์

maxTimeout long: การหมดเวลาสูงสุดสำหรับการเรียกใช้คำสั่งทั้งหมด ค่า 0 หมายถึงไม่มีการหมดเวลา

maxTimeToOutputResponse long: เวลาสูงสุดระหว่างเอาต์พุตคำสั่ง หากเวลาผ่านไปนานกว่านี้ระหว่างเอาต์พุตคำสั่ง เมธอดจะส่ง ShellCommandUnresponsiveException ค่า 0 หมายความว่าเมธอดจะรอเอาต์พุตคำสั่งไปเรื่อยๆ และไม่เคยส่งข้อยกเว้น

maxTimeUnits TimeUnit: หน่วยสำหรับค่าที่ไม่ใช่ 0 ของ maxTimeout และ maxTimeToOutputResponse

is InputStream: ERROR(/InputStream)ที่ไม่บังคับซึ่งจะสตรีมขึ้นหลังจากเรียกใช้คำสั่งและ ก่อนที่จะดึงข้อมูลการตอบกลับ

การขว้าง
TimeoutException ในกรณีที่การเชื่อมต่อหมดเวลาเมื่อส่งคำสั่ง
AdbCommandRejectedException หาก adb ปฏิเสธคำสั่ง
ShellCommandUnresponsiveException ในกรณีที่คำสั่งเชลล์ไม่ส่งเอาต์พุตใดๆ เป็นระยะเวลานานกว่า maxTimeToOutputResponse
ในกรณีที่เกิดข้อผิดพลาด I/O ในการเชื่อมต่อ

ดูเพิ่มเติม:

executeRemoteCommand

public static void executeRemoteCommand (InetSocketAddress adbSockAddr, 
                String command, 
                IDevice device, 
                IShellOutputReceiver rcvr, 
                long maxTimeout, 
                long maxTimeToOutputResponse, 
                TimeUnit maxTimeUnits)

เรียกใช้คำสั่งเชลล์ในอุปกรณ์และดึงข้อมูลเอาต์พุต โดยจะส่งผลลัพธ์ให้แก่ rcvr ทันทีที่ได้รับ

พารามิเตอร์
adbSockAddr InetSocketAddress: ERROR(/InetSocketAddress) ไปยัง adb

command String: คำสั่งเชลล์ที่จะดำเนินการ

device IDevice: IDevice ที่จะใช้เรียกใช้คำสั่ง

rcvr IShellOutputReceiver: IShellOutputReceiver ที่จะรับเอาต์พุตของคำสั่งเชลล์

maxTimeout long: เวลาสูงสุดที่คำสั่งจะแสดงผล ค่า 0 หมายความว่าจะไม่มีการใช้ระยะหมดเวลาสูงสุด

maxTimeToOutputResponse long: เวลาสูงสุดระหว่างเอาต์พุตคำสั่ง หากเวลาผ่านไปนานกว่านี้ระหว่างเอาต์พุตคำสั่ง เมธอดจะส่ง ShellCommandUnresponsiveException ค่า 0 หมายความว่าเมธอดจะรอเอาต์พุตคำสั่งไปเรื่อยๆ และไม่เคยส่งข้อยกเว้น

maxTimeUnits TimeUnit: หน่วยสำหรับค่าที่ไม่ใช่ 0 ของ maxTimeout และ maxTimeToOutputResponse

การขว้าง
TimeoutException ในกรณีที่การเชื่อมต่อหมดเวลาเมื่อส่งคำสั่ง
AdbCommandRejectedException หาก adb ปฏิเสธคำสั่ง
ShellCommandUnresponsiveException ในกรณีที่คำสั่งเชลล์ไม่ส่งเอาต์พุตใดๆ เป็นระยะเวลานานกว่า maxTimeToOutputResponse
ในกรณีที่เกิดข้อผิดพลาด I/O ในการเชื่อมต่อ

ดูเพิ่มเติม:

formAdbRequest

public static byte[] formAdbRequest (String payloadString)

สร้างสตริง ASCII ที่นำหน้าด้วยตัวเลขฐานสิบหก 4 หลัก "####" ตอนต้นคือความยาวของสตริงที่เหลือ ซึ่งเข้ารหัสเป็นเลขฐานสิบหก ASCII (ตัวพิมพ์เล็กหรือตัวพิมพ์ใหญ่ก็ได้)

พารามิเตอร์
payloadString String

คิกรีเทิร์น
byte[]

getFeatures

public static String getFeatures (IDevice device)

ค้นหาชุดฟีเจอร์ที่รองรับจากอุปกรณ์

พารามิเตอร์
device IDevice: อุปกรณ์ที่จะใช้ส่งต่อพอร์ต

คิกรีเทิร์น
String

การขว้าง
TimeoutException ในกรณีที่การเชื่อมต่อหมดเวลา
AdbCommandRejectedException หาก adb ปฏิเสธคำสั่ง
ในกรณีที่เกิดข้อผิดพลาด I/O ในการเชื่อมต่อ

getFrameBuffer

public static RawImage getFrameBuffer (InetSocketAddress adbSockAddr, 
                IDevice device, 
                long timeout, 
                TimeUnit unit)

เรียกข้อมูลเฟรมบัฟเฟอร์จากอุปกรณ์โดยมีระยะหมดเวลาที่ระบุ การหมดเวลา 0 หมายความว่า จะรอตลอดไป

พารามิเตอร์
adbSockAddr InetSocketAddress

device IDevice

timeout long

unit TimeUnit

คิกรีเทิร์น
RawImage

การขว้าง
TimeoutException ในกรณีที่การเชื่อมต่อหมดเวลา
AdbCommandRejectedException หาก adb ปฏิเสธคำสั่ง
ในกรณีที่เกิดข้อผิดพลาด I/O ในการเชื่อมต่อ

getHostFeatures

public static String getHostFeatures ()

ค้นหาชุดฟีเจอร์ที่รองรับจากโฮสต์ ADB

คิกรีเทิร์น
String

การขว้าง
TimeoutException ในกรณีที่การเชื่อมต่อหมดเวลา
AdbCommandRejectedException หาก adb ปฏิเสธคำสั่ง
ในกรณีที่เกิดข้อผิดพลาด I/O ในการเชื่อมต่อ

เปิด

public static SocketChannel open (InetSocketAddress adbSockAddr, 
                IDevice device, 
                int devicePort)

สร้างและเชื่อมต่อซ็อกเก็ตส่งผ่านใหม่จากโฮสต์ไปยังพอร์ตในอุปกรณ์

พารามิเตอร์
device IDevice: อุปกรณ์ที่จะเชื่อมต่อ อาจเป็นค่าว่าง ในกรณีนี้การเชื่อมต่อจะเป็นกับ อุปกรณ์แรกที่พร้อมใช้งาน

devicePort int: พอร์ตที่เราจะเปิด

คิกรีเทิร์น
SocketChannel

การขว้าง
TimeoutException ในกรณีที่การเชื่อมต่อหมดเวลา
ในกรณีที่เกิดข้อผิดพลาด I/O ในการเชื่อมต่อ
AdbCommandRejectedException หาก adb ปฏิเสธคำสั่ง

rawAdbService

public static SocketChannel rawAdbService (InetSocketAddress socketAddress, 
                IDevice device, 
                String command, 
                AdbHelper.AdbService service)

เรียกใช้บริการในอุปกรณ์ระยะไกล แสดงผลแชแนลซ็อกเก็ตที่เชื่อมต่อกับ กระบวนการที่กำลังดำเนินการ

ddlmib relinquishes ownership of the returned SocketChannel and must be explicitly closed after use.

พารามิเตอร์
device IDevice: อุปกรณ์ที่จะเชื่อมต่อ อาจเป็นค่าว่าง ในกรณีนี้การเชื่อมต่อจะเป็นกับ อุปกรณ์แรกที่พร้อมใช้งาน

command String: คำสั่งที่จะดำเนินการ

service AdbHelper.AdbService: AdbHelper.AdbService ที่ใช้เรียกใช้คำสั่ง

คิกรีเทิร์น
SocketChannel

การขว้าง
IOException
com.android.ddmlib.TimeoutException
com.android.ddmlib.AdbCommandRejectedException
AdbCommandRejectedException
TimeoutException

rawExec

public static SocketChannel rawExec (InetSocketAddress socketAddress, 
                IDevice device, 
                String executable, 
                String[] parameters)

เรียกใช้บริการ host:exec ในอุปกรณ์ระยะไกล แสดงผลแชแนลซ็อกเก็ตที่เชื่อมต่อกับ กระบวนการที่กำลังดำเนินการ โปรดทราบว่าบริการ exec ไม่ได้แยกความแตกต่างระหว่าง stdout และ stderr ดังนั้น สิ่งที่อ่านจากซ็อกเก็ตอาจมาจากเอาต์พุตใดก็ได้และอาจมีการสลับกัน

ddlmib relinquishes ownership of the returned SocketChannel and must be explicitly closed after use.

พารามิเตอร์
device IDevice: อุปกรณ์ที่จะเชื่อมต่อ อาจเป็นค่าว่าง ในกรณีนี้การเชื่อมต่อจะเป็นกับ อุปกรณ์แรกที่พร้อมใช้งาน

executable String: เส้นทางแบบสัมบูรณ์ของไฟล์ปฏิบัติการที่จะเรียกใช้

parameters String: พารามิเตอร์ที่จะได้รับเมื่อเรียกใช้ไฟล์ที่เรียกใช้งานได้

คิกรีเทิร์น
SocketChannel

การขว้าง
IOException
com.android.ddmlib.TimeoutException
com.android.ddmlib.AdbCommandRejectedException
AdbCommandRejectedException
TimeoutException

readAdbResponse

public static AdbHelper.AdbResponse readAdbResponse (SocketChannel chan, 
                boolean readDiagString)

อ่านการตอบกลับจาก ADB หลังจากคำสั่ง

พารามิเตอร์
chan SocketChannel: ช่องซ็อกเก็ตที่เชื่อมต่อกับ adb

readDiagString boolean: หากเป็นจริง เราคาดหวังว่าการตอบกลับ OKAY จะตามด้วยสตริงการวินิจฉัย ไม่เช่นนั้น เราคาดหวังให้สตริงการวินิจฉัยมีสถานะเป็น "ไม่สำเร็จ" เท่านั้น

คิกรีเทิร์น
AdbHelper.AdbResponse

การขว้าง
TimeoutException ในกรณีที่การเชื่อมต่อหมดเวลา
ในกรณีที่เกิดข้อผิดพลาด I/O ในการเชื่อมต่อ

รีบูต

public static void reboot (String into, 
                InetSocketAddress adbSockAddr, 
                IDevice device)

รีบูตอุปกรณ์

พารามิเตอร์
into String: สิ่งที่จะรีบูต (การกู้คืน, Bootloader) หรือ null เพื่อรีบูตเท่านั้น

adbSockAddr InetSocketAddress

device IDevice

การขว้าง
TimeoutException ในกรณีที่การเชื่อมต่อหมดเวลา
AdbCommandRejectedException หาก adb ปฏิเสธคำสั่ง
ในกรณีที่เกิดข้อผิดพลาด I/O ในการเชื่อมต่อ

removeForward

public static void removeForward (InetSocketAddress adbSockAddr, 
                IDevice device, 
                String localPortSpec)

นำการส่งต่อพอร์ตระหว่างพอร์ตในเครื่องกับพอร์ตระยะไกลออก

พารามิเตอร์
adbSockAddr InetSocketAddress: ที่อยู่ซ็อกเก็ตที่จะเชื่อมต่อกับ adb

device IDevice: อุปกรณ์ที่จะนำการส่งต่อพอร์ตออก

localPortSpec String: ข้อกำหนดของพอร์ตภายในที่ส่งต่อ ควรมีรูปแบบ tcp:

การขว้าง
TimeoutException ในกรณีที่การเชื่อมต่อหมดเวลา
AdbCommandRejectedException หาก adb ปฏิเสธคำสั่ง
ในกรณีที่เกิดข้อผิดพลาด I/O ในการเชื่อมต่อ

removeReverse

public static void removeReverse (InetSocketAddress adbSockAddr, 
                IDevice device, 
                String remotePortSpec)

นำการย้อนกลับพอร์ตระหว่างพอร์ตระยะไกลและพอร์ตภายในออก

พารามิเตอร์
adbSockAddr InetSocketAddress: ที่อยู่ซ็อกเก็ตที่จะเชื่อมต่อกับ adb

device IDevice: อุปกรณ์ที่จะนำการกลับพอร์ตออก

remotePortSpec String: การระบุพอร์ตระยะไกลที่ย้อนกลับไปยังพอร์ตใดพอร์ตหนึ่งต่อไปนี้ tcp: localabstract: localreserved: localfilesystem: dev: jdwp: (ระยะไกลเท่านั้น)

การขว้าง
TimeoutException ในกรณีที่การเชื่อมต่อหมดเวลา
AdbCommandRejectedException หาก adb ปฏิเสธคำสั่ง
ในกรณีที่เกิดข้อผิดพลาด I/O ในการเชื่อมต่อ

รูท

public static void root (InetSocketAddress adbSockAddr, 
                IDevice device)

ขอให้ adb demon กลายเป็นรูทในอุปกรณ์ การดำเนินการนี้อาจล้มเหลวโดยไม่มีการแจ้งเตือน และจะสำเร็จได้ ในบิลด์สำหรับนักพัฒนาแอปเท่านั้น ดูข้อมูลเพิ่มเติมได้ที่ "adb root" หากต้องการทราบว่าสำเร็จหรือไม่ คุณสามารถตรวจสอบผลลัพธ์ของ executeRemoteCommand ใน "echo \$USER_ID" ได้ หากเป็น 0 แสดงว่า adbd ทำงานในฐานะรูท

พารามิเตอร์
adbSockAddr InetSocketAddress

device IDevice

การขว้าง
TimeoutException ในกรณีที่การเชื่อมต่อหมดเวลา
AdbCommandRejectedException หาก adb ปฏิเสธคำสั่ง
ในกรณีที่เกิดข้อผิดพลาด I/O ในการเชื่อมต่อ

setDevice

public static void setDevice (SocketChannel adbChan, 
                IDevice device)

เมื่อระบุ IDevice แล้ว ให้ดึงหมายเลขซีเรียลและบอก adb ให้สื่อสารกับอุปกรณ์นั้น

พารามิเตอร์
adbChan SocketChannel: การเชื่อมต่อซ็อกเก็ตกับ adb

device IDevice: อุปกรณ์ที่จะพูดคุยด้วย

การขว้าง
TimeoutException ในกรณีที่การเชื่อมต่อหมดเวลา
AdbCommandRejectedException หาก adb ปฏิเสธคำสั่ง
ในกรณีที่เกิดข้อผิดพลาด I/O ในการเชื่อมต่อ

setDevice

public static void setDevice (SocketChannel adbChan, 
                String deviceSerialNumber)

บอกให้ adb สื่อสารกับอุปกรณ์ที่เฉพาะเจาะจง

พารามิเตอร์
adbChan SocketChannel: การเชื่อมต่อซ็อกเก็ตกับ adb

deviceSerialNumber String: ซีเรียลของอุปกรณ์ที่จะพูดด้วย หากเป็น null อุปกรณ์เริ่มต้น ที่เลือกคืออุปกรณ์ที่ adb เลือก

การขว้าง
TimeoutException ในกรณีที่การเชื่อมต่อหมดเวลา
AdbCommandRejectedException หาก adb ปฏิเสธคำสั่ง
ในกรณีที่เกิดข้อผิดพลาด I/O ในการเชื่อมต่อ

เขียนหน่อย

public static void write (SocketChannel chan, 
                byte[] data, 
                int length, 
                int timeout)

เขียนจนกว่าจะเขียนข้อมูลทั้งหมดใน "data" แล้ว หรือถึงความยาวที่ไม่บังคับ หรือหมดเวลา หรือการเชื่อมต่อล้มเหลว แสดงผล "จริง" หากเขียนข้อมูลทั้งหมด

พารามิเตอร์
chan SocketChannel: ซ็อกเก็ตที่เปิดเพื่อเขียน

data byte: บัฟเฟอร์ที่จะส่ง

length int: ความยาวที่จะเขียนหรือ -1 เพื่อส่งบัฟเฟอร์ทั้งหมด

timeout int: ค่าระยะหมดเวลา การหมดเวลาเป็น 0 หมายความว่า "รอตลอดไป"

การขว้าง
TimeoutException ในกรณีที่การเชื่อมต่อหมดเวลา
ในกรณีที่เกิดข้อผิดพลาด I/O ในการเชื่อมต่อ

เขียนหน่อย

public static void write (SocketChannel chan, 
                byte[] data)

เขียนจนกว่าจะเขียนข้อมูลทั้งหมดใน "data" เสร็จ หรือการเชื่อมต่อล้มเหลวหรือหมดเวลา

ซึ่งจะใช้ค่าหมดเวลาเริ่มต้น

พารามิเตอร์
chan SocketChannel: ซ็อกเก็ตที่เปิดเพื่อเขียน

data byte: บัฟเฟอร์ที่จะส่ง

การขว้าง
TimeoutException ในกรณีที่การเชื่อมต่อหมดเวลา
ในกรณีที่เกิดข้อผิดพลาด I/O ในการเชื่อมต่อ