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, 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 void executeRemoteCommand(InetSocketAddress adbSockAddr, String command, IDevice device, IShellOutputReceiver rcvr, 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)

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

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, String deviceSerialNumber)

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

static void setDevice(SocketChannel adbChan, IDevice device)

เมื่อ IDevice แล้ว ให้จดหมายเลขซีเรียลและบอก 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: (ระยะไกลเท่านั้น)

ส่ง
AdbCommandRejectedException หาก adb ปฏิเสธคำสั่ง
TimeoutException ในกรณีที่การเชื่อมต่อหมดเวลา
IOException ในกรณีที่เกิดข้อผิดพลาดเกี่ยวกับ 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: หมายเลขซีเรียลของอุปกรณ์ที่จะเชื่อมต่อ อาจเป็น Null หรือว่างเปล่า ในกรณีนี้การเชื่อมต่อจะเป็นกับอุปกรณ์แรกที่พร้อมใช้งาน

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

การคืนสินค้า
SocketChannel

ส่ง
AdbCommandRejectedException หาก adb ปฏิเสธคำสั่ง
TimeoutException ในกรณีที่การเชื่อมต่อหมดเวลา
IOException ในกรณีที่เกิดข้อผิดพลาดเกี่ยวกับ 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:

ส่ง
AdbCommandRejectedException หาก adb ปฏิเสธคำสั่ง
TimeoutException ในกรณีที่การเชื่อมต่อหมดเวลา
IOException ในกรณีที่เกิดข้อผิดพลาดเกี่ยวกับ 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: InetSocketAddress ไปยัง adb

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

command String: คำสั่ง Shell ที่จะเรียกใช้

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

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

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

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

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

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

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

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

executeRemoteCommand

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

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

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

command String: คำสั่ง Shell ที่จะเรียกใช้

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

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

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

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

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

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

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

executeRemoteCommand

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

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

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

command String: คำสั่ง Shell ที่จะเรียกใช้

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

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

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

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

ส่ง
AdbCommandRejectedException หาก adb ปฏิเสธคำสั่ง
ShellCommandUnresponsiveException ในกรณีที่คำสั่งเชลล์ไม่ส่งเอาต์พุตใดๆ เป็นระยะเวลานานกว่า maxTimeToOutputResponse
TimeoutException ในกรณีที่การเชื่อมต่อหมดเวลาเมื่อส่งคำสั่ง
IOException ในกรณีที่เกิดข้อผิดพลาดเกี่ยวกับ 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

ส่ง
AdbCommandRejectedException หาก adb ปฏิเสธคำสั่ง
TimeoutException ในกรณีที่การเชื่อมต่อหมดเวลา
IOException ในกรณีที่เกิดข้อผิดพลาดเกี่ยวกับ 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

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

getHostFeatures

public static String getHostFeatures ()

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

การคืนสินค้า
String

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

เปิด

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

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

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

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

การคืนสินค้า
SocketChannel

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

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: อุปกรณ์ที่จะเชื่อมต่อ อาจเป็นค่า Null ในกรณีที่การเชื่อมต่อจะเป็นการเชื่อมต่อกับ อุปกรณ์แรกที่พร้อมใช้งาน

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

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

การคืนสินค้า
SocketChannel

ส่ง
com.android.ddmlib.AdbCommandRejectedException
com.android.ddmlib.TimeoutException
java.io.IOException
AdbCommandRejectedException
IOException
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: อุปกรณ์ที่จะเชื่อมต่อ อาจเป็นค่า Null ในกรณีที่การเชื่อมต่อจะเป็นการเชื่อมต่อกับ อุปกรณ์แรกที่พร้อมใช้งาน

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

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

การคืนสินค้า
SocketChannel

ส่ง
com.android.ddmlib.AdbCommandRejectedException
com.android.ddmlib.TimeoutException
java.io.IOException
AdbCommandRejectedException
IOException
TimeoutException

readAdbResponse

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

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

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

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

การคืนสินค้า
AdbHelper.AdbResponse

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

เริ่มต้นใหม่

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

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

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

adbSockAddr InetSocketAddress

device IDevice

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

removeForward

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

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

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

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

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

ส่ง
AdbCommandRejectedException หาก adb ปฏิเสธคำสั่ง
TimeoutException ในกรณีที่การเชื่อมต่อหมดเวลา
IOException ในกรณีที่เกิดข้อผิดพลาดเกี่ยวกับ 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: (ระยะไกลเท่านั้น)

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

รูท

public static void root (InetSocketAddress adbSockAddr, 
                IDevice device)

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

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

device IDevice

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

setDevice

public static void setDevice (SocketChannel adbChan, 
                String deviceSerialNumber)

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

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

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

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

setDevice

public static void setDevice (SocketChannel adbChan, 
                IDevice device)

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

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

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

ส่ง
AdbCommandRejectedException หาก adb ปฏิเสธคำสั่ง
TimeoutException ในกรณีที่การเชื่อมต่อหมดเวลา
IOException ในกรณีที่เกิดข้อผิดพลาดเกี่ยวกับ 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 ในกรณีที่การเชื่อมต่อหมดเวลา
IOException ในกรณีที่เกิดข้อผิดพลาดเกี่ยวกับ I/O ในการเชื่อมต่อ

เขียน

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

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

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

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

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

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