DeviceMonitor

public final class DeviceMonitor
extends Object implements ClientTracker

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


DeviceMonitor จะตรวจสอบอุปกรณ์ที่เชื่อมต่อกับ adb

ในเธรดหนึ่ง เธรดจะเรียกใช้ DeviceListMonitorTask ซึ่งจะสร้างการเชื่อมต่อซ็อกเก็ต กับโฮสต์ adb และออกคำสั่ง ERROR(/DeviceListMonitorTask.ADB_TRACK_DEVICES_COMMAND) จากนั้นจะ ตรวจสอบซ็อกเก็ตนั้นเพื่อดูการเปลี่ยนแปลงทั้งหมดเกี่ยวกับการเชื่อมต่ออุปกรณ์และสถานะอุปกรณ์ หากไม่ได้เปิดใช้ ::getClientSupport ระบบจะไม่เรียกใช้ DeviceClientMonitorTask และจะไม่ลงทะเบียนอุปกรณ์

ในเธรดอื่นจะเรียกใช้ DeviceClientMonitorTask ซึ่งจะสร้างการเชื่อมต่อซ็อกเก็ต กับโฮสต์ adb ต่ออุปกรณ์ที่ลงทะเบียนแต่ละเครื่องและออก ERROR(/DeviceClientMonitorTask.ADB_TRACK_JDWP_COMMAND) ในการเชื่อมต่อนี้ ระบบจะตรวจสอบไคลเอ็นต์ที่ใช้งานอยู่ ในอุปกรณ์ หมายเหตุ: เธรดเดียวจะตรวจสอบการเชื่อมต่อ JDWP จากอุปกรณ์ทั้งหมด การเชื่อมต่อซ็อกเก็ตที่แตกต่างกันกับ adb (1 รายการต่ออุปกรณ์) จะได้รับการมัลติเพล็กซ์ผ่านตัวเลือกเดียว

สรุป

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

class DeviceMonitor.DeviceListComparisonResult

 

เครื่องมือสร้างสาธารณะ

DeviceMonitor(AndroidDebugBridge server)

สร้างออบเจ็กต์ DeviceMonitor ใหม่และลิงก์กับออบเจ็กต์ AndroidDebugBridge ที่ทำงานอยู่

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

int getConnectionAttemptCount()
IDevice[] getDevices()

ส่งคืนอุปกรณ์

int getRestartAttemptCount()
boolean hasInitialDeviceList()
boolean isMonitoring()

แสดงว่าจอภาพเชื่อมต่อกับเซิร์ฟเวอร์ดีบักบริดจ์อยู่หรือไม่

void start()

เริ่มการตรวจสอบ

void stop()

หยุดการตรวจสอบ

void trackClientToDropAndReopen(ClientImpl client)

การเรียกกลับเพื่อระบุว่าไคลเอ็นต์ถูกตัดการเชื่อมต่อ แต่ควรพยายามเปิดการเชื่อมต่อกับไคลเอ็นต์อีกครั้ง

void trackDeviceToDropAndReopen(DeviceImpl device)

การเรียกกลับเพื่อระบุว่าอุปกรณ์ถูกทิ้ง

void trackDisconnectedClient(ClientImpl client)

การเรียกกลับเมื่อไคลเอ็นต์ยกเลิกการเชื่อมต่อ

เครื่องมือสร้างสาธารณะ

DeviceMonitor

public DeviceMonitor (AndroidDebugBridge server)

สร้างออบเจ็กต์ DeviceMonitor ใหม่และลิงก์กับออบเจ็กต์ AndroidDebugBridge ที่ทำงานอยู่

พารามิเตอร์
server AndroidDebugBridge: AndroidDebugBridge ที่กำลังทำงาน

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

getConnectionAttemptCount

public int getConnectionAttemptCount ()

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

getDevices

public IDevice[] getDevices ()

ส่งคืนอุปกรณ์

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

getRestartAttemptCount

public int getRestartAttemptCount ()

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

hasInitialDeviceList

public boolean hasInitialDeviceList ()

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

isMonitoring

public boolean isMonitoring ()

แสดงว่าจอภาพเชื่อมต่อกับเซิร์ฟเวอร์ดีบักบริดจ์อยู่หรือไม่

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

เริ่มต้น

public void start ()

เริ่มการตรวจสอบ

แวะพัก

public void stop ()

หยุดการตรวจสอบ

trackClientToDropAndReopen

public void trackClientToDropAndReopen (ClientImpl client)

การเรียกกลับเพื่อระบุว่าไคลเอ็นต์ถูกตัดการเชื่อมต่อ แต่ควรพยายามเปิดการเชื่อมต่อกับไคลเอ็นต์อีกครั้ง

พารามิเตอร์
client ClientImpl: ที่ถูกทิ้ง

trackDeviceToDropAndReopen

public void trackDeviceToDropAndReopen (DeviceImpl device)

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

พารามิเตอร์
device DeviceImpl: ที่ถูกทิ้ง

trackDisconnectedClient

public void trackDisconnectedClient (ClientImpl client)

การเรียกกลับเมื่อไคลเอ็นต์ยกเลิกการเชื่อมต่อ การเรียกกลับนี้มีไว้เพื่อแจ้งให้เธรดที่ถือการลงทะเบียนกับซ็อกเก็ตของไคลเอ็นต์ปล่อยซ็อกเก็ต

พารามิเตอร์
client ClientImpl: ที่ถูกหยุดให้บริการ