โปรแกรมจัดการอุปกรณ์

public class DeviceManager
extends Object implements IDeviceManager

java.lang.Object
com.android.tradefed.device.DeviceManager


สรุป

ชั้นเรียนที่ซ้อนกัน

class DeviceManager.FastbootDevice

การแสดงภาพอุปกรณ์ใน Fastboot Mode 

ช่อง

public static final String UNKNOWN_DISPLAY_STRING

แสดงสตริงสำหรับพร็อพเพอร์ตี้ที่ไม่รู้จัก

protected DeviceMonitorMultiplexer mDvcMon

protected boolean mFastbootEnabled

ช่างก่อสร้างสาธารณะ

DeviceManager()

ควรดึงข้อมูล DeviceManager จาก GlobalConfiguration

วิธีการสาธารณะ

void addAvailableDevice(IDevice stubDevice)
void addDeviceMonitor(IDeviceMonitor mon)

เพิ่ม IDeviceMonitor

void addFastbootDevice(DeviceManager.FastbootDevice fastbootDevice)
void addFastbootListener(IDeviceManager.IFastbootListener listener)

แจ้งผู้จัดการว่าผู้ฟังสนใจการเปลี่ยนสถานะ Fastboot

void addMonitoringTcpFastbootDevice(String serial, String fastboot_serial)

เพิ่มอุปกรณ์ไปยัง Fastboot Monitor

ITestDevice allocateDevice(IDeviceSelection options, boolean isTemporary)

ขออุปกรณ์สำหรับการทดสอบที่ตรงกับเกณฑ์บางอย่าง

ITestDevice allocateDevice(IDeviceSelection options)

ขออุปกรณ์สำหรับการทดสอบที่ตรงกับเกณฑ์บางอย่าง

ITestDevice allocateDevice()

ขออุปกรณ์จริงเพื่อการทดสอบ

ITestDevice connectToTcpDevice(String ipAndPort)

เชื่อมต่อกับอุปกรณ์ที่มี adb-over-tcp

วิธีนี้จะจัดสรรอุปกรณ์ใหม่ ซึ่งท้ายที่สุดแล้วควรมีการปลดปล่อยผ่าน disconnectFromTcpDevice(com.android.tradefed.device.ITestDevice)

ITestDevice ที่แสดงผลจะออนไลน์ แต่อาจไม่มีการตอบสนอง

boolean disconnectFromTcpDevice(ITestDevice tcpDevice)

ยกเลิกการเชื่อมต่ออุปกรณ์ที่เชื่อมต่อ adb-over-tcp

void displayDevicesInfo(PrintWriter stream, boolean includeStub)

แสดงคำอธิบายที่ใช้งานง่ายซึ่งมีรายการอุปกรณ์ที่รู้จัก สถานะ และค่า สำหรับตัวเลือก IDeviceSelection ที่ใช้กันทั่วไป

CommandResult executeCmdOnAvailableDevice(String serial, String command, long timeout, TimeUnit timeUnit)

เมธอดตัวช่วยในการเรียกใช้คำสั่ง Shell ในอุปกรณ์ที่มีอยู่

String executeGlobalAdbCommand(String... cmdArgs)

เรียกใช้คำสั่ง adb ที่ไม่ได้กำหนดเป้าหมายไปยังอุปกรณ์ที่เฉพาะเจาะจง เช่น

ITestDevice forceAllocateDevice(String serial)

จัดสรรอุปกรณ์อย่างเหมาะสม แม้ว่าปัจจุบันจะใช้ไม่ได้ก็ตาม

void freeDevice(ITestDevice device, FreeDeviceState deviceState)

นำอุปกรณ์กลับไปยังสระว่ายน้ำ

ระบบจะไม่สนใจความพยายามในการส่งคืนอุปกรณ์ที่ไม่ได้รับการจัดสรรก่อนหน้านี้

String getAdbPath()

แสดงเส้นทางไปยังไบนารี adb ที่จะใช้

String getAdbVersion()

ดูเวอร์ชัน adb ที่โปรแกรมจัดการอุปกรณ์ใช้อยู่

DeviceDescriptor getDeviceDescriptor(String serial)

แสดงผล DeviceDescriptor ด้วยอนุกรมที่ระบุ

String getFastbootPath()

แสดงเส้นทางไปยังไบนารีของ Fastboot ที่จะใช้

void init(IDeviceSelection globalDeviceFilter, globalDeviceMonitors, IManagedTestDeviceFactory deviceFactory)

เริ่มต้นโปรแกรมจัดการอุปกรณ์

void init(IDeviceSelection globalDeviceFilter, globalDeviceMonitors)

เริ่มต้นโปรแกรมจัดการอุปกรณ์

void init()

เริ่มต้นโปรแกรมจัดการอุปกรณ์

boolean isEmulator(String serial)

ตรวจสอบว่าซีเรียลที่ระบุแสดงถึงโปรแกรมจำลองหรือไม่

boolean isFileSystemMountCheckEnabled()

ส่งคืนว่าเราควรตรวจสอบใน NativeDeviceStateMonitor ระบบไฟล์หรือไม่ อย่างถูกต้อง

boolean isNullDevice(String serial)

ระบุว่าซีเรียลที่ระบุแสดงถึงอุปกรณ์ Null หรือไม่

void killEmulator(ITestDevice device)

ปิดโปรแกรมจำลองที่ระบุ

void launchEmulator(ITestDevice device, long bootTimeout, IRunUtil runUtil, emulatorArgs)

เมธอด Helper ในการเปิดโปรแกรมจำลอง

listAllDevices(boolean shortDescriptor)

แสดงรายการ DeviceDescriptor สำหรับอุปกรณ์ที่รู้จักทั้งหมด

listAllDevices()

แสดงรายการ DeviceDescriptor สำหรับอุปกรณ์ที่รู้จักทั้งหมด

ITestDevice reconnectDeviceToTcp(ITestDevice usbDevice)

เมธอดตัวช่วยที่เปลี่ยนอุปกรณ์ USB ที่ระบุให้เป็นโหมด adb-over-tcp จากนั้นเชื่อมต่อกับ ผ่าน connectToTcpDevice(String)

void removeDeviceMonitor(IDeviceMonitor mon)

นำ IDeviceMonitor ที่เพิ่มไว้ก่อนหน้านี้ออก

void removeFastbootListener(IDeviceManager.IFastbootListener listener)

แจ้งผู้จัดการว่า Listener ไม่สนใจการเปลี่ยนแปลงสถานะการ Fastboot อีกต่อไป

void restartAdbBridge()

รีสตาร์ท (หากมีการเรียก stopAdbBridge()) adb Bridge และบริการขึ้นอยู่กับ adb การเชื่อมต่อ

void stopAdbBridge()

หยุด adb Bridge และบริการขึ้นอยู่กับการเชื่อมต่อ adb

void terminate()

หยุดบริการตรวจสอบอุปกรณ์ และสิ้นสุดไลบรารี DDM

void terminateDeviceMonitor()

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

void terminateDeviceRecovery()

หยุดเทรดการกู้คืนอุปกรณ์

void terminateHard(String reason)

เช่น terminateHard()

void terminateHard()

เหมือน terminate() แต่พยายามปิด adb อย่างแรงด้วย

boolean waitForFirstDeviceAdded(long timeout)

รอจนกว่าจะเชื่อมต่ออุปกรณ์จริงเครื่องแรก

ช่อง

สตริงที่ไม่รู้จัก

public static final String UNKNOWN_DISPLAY_STRING

แสดงสตริงสำหรับพร็อพเพอร์ตี้ที่ไม่รู้จัก

mDvcMon

protected DeviceMonitorMultiplexer mDvcMon

mFastbootEnabled

protected boolean mFastbootEnabled

ช่างก่อสร้างสาธารณะ

โปรแกรมจัดการอุปกรณ์

public DeviceManager ()

ควรดึงข้อมูล DeviceManager จาก GlobalConfiguration

วิธีการสาธารณะ

เพิ่มอุปกรณ์ที่พร้อมใช้งาน

public void addAvailableDevice (IDevice stubDevice)

พารามิเตอร์
stubDevice IDevice

เพิ่มการตรวจสอบอุปกรณ์

public void addDeviceMonitor (IDeviceMonitor mon)

เพิ่ม IDeviceMonitor

พารามิเตอร์
mon IDeviceMonitor

เพิ่ม FastbootDevice

public void addFastbootDevice (DeviceManager.FastbootDevice fastbootDevice)

พารามิเตอร์
fastbootDevice DeviceManager.FastbootDevice

addFastbootListener

public void addFastbootListener (IDeviceManager.IFastbootListener listener)

แจ้งผู้จัดการว่าผู้ฟังสนใจการเปลี่ยนสถานะ Fastboot

ปัจจุบัน IDeviceManager จะตรวจสอบอุปกรณ์ใน Fastboot ก็ต่อเมื่อมี ผู้ฟังที่มีความเคลื่อนไหวมากขึ้น

สิ่งที่ต้องทำ: นี่เป็นการแฮ็กเล็กน้อย - ค้นหาวิธีแก้ปัญหาที่ดีกว่านี้

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

public void addMonitoringTcpFastbootDevice (String serial, 
                String fastboot_serial)

เพิ่มอุปกรณ์ไปยัง Fastboot Monitor โปรแกรมตรวจสอบ Fastboot จะใช้ "fastboot_serial" ถึง สื่อสารกับอุปกรณ์

พารามิเตอร์
serial String: หมายเลขซีเรียลของอุปกรณ์

fastboot_serial String: หมายเลขซีเรียล Fastboot Mode ของอุปกรณ์

จัดสรรอุปกรณ์

public ITestDevice allocateDevice (IDeviceSelection options, 
                boolean isTemporary)

ขออุปกรณ์สำหรับการทดสอบที่ตรงกับเกณฑ์บางอย่าง

พารามิเตอร์
options IDeviceSelection: IDeviceSelection ที่อุปกรณ์ควรตรงตามที่กำหนด

isTemporary boolean: ควรสร้าง NullDevice ชั่วคราวหรือไม่

คิกรีเทิร์น
ITestDevice ITestDevice สำหรับการทดสอบ หรือ null หากไม่มี

จัดสรรอุปกรณ์

public ITestDevice allocateDevice (IDeviceSelection options)

ขออุปกรณ์สำหรับการทดสอบที่ตรงกับเกณฑ์บางอย่าง

พารามิเตอร์
options IDeviceSelection: IDeviceSelection ที่อุปกรณ์ควรตรงตามที่กำหนด

คิกรีเทิร์น
ITestDevice ITestDevice สำหรับการทดสอบ หรือ null หากมี ไม่พร้อมใช้งาน

จัดสรรอุปกรณ์

public ITestDevice allocateDevice ()

ขออุปกรณ์จริงเพื่อการทดสอบ

คิกรีเทิร์น
ITestDevice ITestDevice สำหรับการทดสอบ หรือ null หากไม่มี

เชื่อมต่อกับ TcpDevice

public ITestDevice connectToTcpDevice (String ipAndPort)

เชื่อมต่อกับอุปกรณ์ที่มี adb-over-tcp

วิธีนี้จะจัดสรรอุปกรณ์ใหม่ ซึ่งท้ายที่สุดแล้วควรมีการปลดปล่อยผ่าน disconnectFromTcpDevice(com.android.tradefed.device.ITestDevice)

ITestDevice ที่แสดงผลจะออนไลน์ แต่อาจไม่มีการตอบสนอง

โปรดทราบว่าการดำเนินการ เช่น การรีบูตอุปกรณ์ที่เชื่อมต่อกับ tcp จะแยก การเชื่อมต่อ tcp กับอุปกรณ์ และส่งผลให้เกิด DeviceNotAvailableException

พารามิเตอร์
ipAndPort String: ที่อยู่ IP เดิมและพอร์ตของอุปกรณ์ที่จะเชื่อมต่อ

คิกรีเทิร์น
ITestDevice ITestDevice หรือ null หากสร้างการเชื่อมต่อ tcp ไม่ได้

ยกเลิกการเชื่อมต่อจาก TcpDevice

public boolean disconnectFromTcpDevice (ITestDevice tcpDevice)

ยกเลิกการเชื่อมต่ออุปกรณ์ที่เชื่อมต่อ adb-over-tcp

เปลี่ยนอุปกรณ์กลับเป็นโหมด USB และทำให้อุปกรณ์ว่าง

พารามิเตอร์
tcpDevice ITestDevice: อุปกรณ์ที่อยู่ในโหมด tcp ปัจจุบันมีการจัดสรรผ่าน วันที่ connectToTcpDevice(String)

คิกรีเทิร์น
boolean true หากเปลี่ยนเป็นโหมด USB สำเร็จแล้ว

แสดงข้อมูลอุปกรณ์

public void displayDevicesInfo (PrintWriter stream, 
                boolean includeStub)

แสดงคำอธิบายที่ใช้งานง่ายซึ่งมีรายการอุปกรณ์ที่รู้จัก สถานะ และค่า สำหรับตัวเลือก IDeviceSelection ที่ใช้กันทั่วไป

พารามิเตอร์
stream PrintWriter: ERROR(/PrintWriter) เพื่อแสดงคำอธิบาย

includeStub boolean: จะแสดงอุปกรณ์ต้นขั้วด้วยหรือไม่

ดำเนินการ CmdOnavailableDevice

public CommandResult executeCmdOnAvailableDevice (String serial, 
                String command, 
                long timeout, 
                TimeUnit timeUnit)

เมธอดตัวช่วยในการเรียกใช้คำสั่ง Shell ในอุปกรณ์ที่มีอยู่

พารามิเตอร์
serial String: หมายเลขซีเรียลของอุปกรณ์

command String: คำสั่ง Shell

timeout long: ระยะเวลาที่คำสั่งใช้ในการดำเนินการ

timeUnit TimeUnit: หน่วยสำหรับระยะหมดเวลา

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

เรียกใช้GlobalAdbCommand

public String executeGlobalAdbCommand (String... cmdArgs)

เรียกใช้คำสั่ง adb ที่ไม่ได้กำหนดเป้าหมายไปยังอุปกรณ์ที่เฉพาะเจาะจง เช่น "adb Connect"

คิกรีเทิร์น
String เอาต์พุต std หากคำสั่งสำเร็จเป็นค่าว่าง

บังคับจัดสรรอุปกรณ์

public ITestDevice forceAllocateDevice (String serial)

จัดสรรอุปกรณ์อย่างเหมาะสม แม้ว่าปัจจุบันจะใช้ไม่ได้ก็ตาม

จะไม่มีผลหากจัดสรรอุปกรณ์แล้ว

พารามิเตอร์
serial String: หมายเลขซีเรียลของอุปกรณ์ที่จะจัดสรร

คิกรีเทิร์น
ITestDevice ITestDevice หรือ null หากจัดสรรไม่ได้

อุปกรณ์ฟรี

public void freeDevice (ITestDevice device, 
                FreeDeviceState deviceState)

นำอุปกรณ์กลับไปยังสระว่ายน้ำ

ระบบจะไม่สนใจความพยายามในการส่งคืนอุปกรณ์ที่ไม่ได้รับการจัดสรรก่อนหน้านี้

พารามิเตอร์
device ITestDevice: ITestDevice ที่จะยกเลิก

deviceState FreeDeviceState: FreeDeviceState ใช้เพื่อควบคุมว่า อุปกรณ์กลับไปยังพูลอุปกรณ์ที่ใช้ได้

getAdbPath

public String getAdbPath ()

แสดงเส้นทางไปยังไบนารี adb ที่จะใช้

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

เวอร์ชันของ getAdb

public String getAdbVersion ()

ดูเวอร์ชัน adb ที่โปรแกรมจัดการอุปกรณ์ใช้อยู่

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

getDeviceDescriptor

public DeviceDescriptor getDeviceDescriptor (String serial)

แสดงผล DeviceDescriptor ด้วยอนุกรมที่ระบุ

พารามิเตอร์
serial String: หมายเลขซีเรียลของอุปกรณ์ที่จะรับ

คิกรีเทิร์น
DeviceDescriptor DeviceDescriptor สำหรับอุปกรณ์ที่เลือก หรือเป็นค่าว่างหากซีเรียลไม่ ตรงกับอุปกรณ์ที่รู้จัก

getFastbootPath

public String getFastbootPath ()

แสดงเส้นทางไปยังไบนารีของ Fastboot ที่จะใช้

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

Init

public void init (IDeviceSelection globalDeviceFilter, 
                 globalDeviceMonitors, 
                IManagedTestDeviceFactory deviceFactory)

เริ่มต้นโปรแกรมจัดการอุปกรณ์ โดยจะต้องเรียกใช้ครั้งเดียวและเพียงครั้งเดียวก่อนการดำเนินการอื่นๆ จะเรียกเมธอด

พารามิเตอร์
globalDeviceFilter IDeviceSelection

globalDeviceMonitors

deviceFactory IManagedTestDeviceFactory

Init

public void init (IDeviceSelection globalDeviceFilter, 
                 globalDeviceMonitors)

เริ่มต้นโปรแกรมจัดการอุปกรณ์ โดยจะต้องเรียกใช้ครั้งเดียวและเพียงครั้งเดียวก่อนการดำเนินการอื่นๆ จะเรียกเมธอด

พารามิเตอร์
globalDeviceFilter IDeviceSelection: ตัวกรองอุปกรณ์

globalDeviceMonitors

Init

public void init ()

เริ่มต้นโปรแกรมจัดการอุปกรณ์ โดยจะต้องเรียกใช้ครั้งเดียวและเพียงครั้งเดียวก่อนการดำเนินการอื่นๆ จะเรียกเมธอด

isEmulator

public boolean isEmulator (String serial)

ตรวจสอบว่าซีเรียลที่ระบุแสดงถึงโปรแกรมจำลองหรือไม่

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

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

isFileSystemMountCheckEnabled

public boolean isFileSystemMountCheckEnabled ()

ส่งคืนว่าเราควรตรวจสอบใน NativeDeviceStateMonitor ระบบไฟล์หรือไม่ อย่างถูกต้อง

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

อุปกรณ์ isNull

public boolean isNullDevice (String serial)

ระบุว่าซีเรียลที่ระบุแสดงถึงอุปกรณ์ Null หรือไม่

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

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

KillEmulator

public void killEmulator (ITestDevice device)

ปิดโปรแกรมจำลองที่ระบุ

บล็อกจนกว่าโปรแกรมจำลองจะหายไปจาก adb จะไม่มีผลหากไม่มีตัวจำลอง พร้อมใช้งาน

พารามิเตอร์
device ITestDevice: ITestDevice ที่แสดงถึงโปรแกรมจำลองที่จะปิด

การขว้าง
DeviceNotAvailableException

LauncherEmulator

public void launchEmulator (ITestDevice device, 
                long bootTimeout, 
                IRunUtil runUtil, 
                 emulatorArgs)

เมธอด Helper ในการเปิดโปรแกรมจำลอง

จะเปิดโปรแกรมจำลองตามที่ผู้โทรระบุ

พารามิเตอร์
device ITestDevice: ตัวยึดตำแหน่ง ITestDevice ที่แสดงถึงอุปกรณ์โปรแกรมจำลองที่จัดสรร

bootTimeout long: เวลาในหน่วยมิลลิวินาทีในการรอให้โปรแกรมจำลองเปิดเครื่อง

emulatorArgs : อาร์กิวเมนต์บรรทัดคำสั่งเพื่อเปิดใช้โปรแกรมจำลอง

การขว้าง
DeviceNotAvailableException

รายการอุปกรณ์ทั้งหมด

public  listAllDevices (boolean shortDescriptor)

แสดงรายการ DeviceDescriptor สำหรับอุปกรณ์ที่รู้จักทั้งหมด

พารามิเตอร์
shortDescriptor boolean: ต้องการจำกัดตัวบ่งชี้ให้เหลือเพียงข้อมูลขั้นต่ำหรือไม่

คิกรีเทิร์น
ลิสต์DeviceDescriptorของอุปกรณ์ที่รู้จักทั้งหมด

รายการอุปกรณ์ทั้งหมด

public  listAllDevices ()

แสดงรายการ DeviceDescriptor สำหรับอุปกรณ์ที่รู้จักทั้งหมด

คิกรีเทิร์น
ลิสต์DeviceDescriptorของอุปกรณ์ที่รู้จักทั้งหมด

เชื่อมต่ออุปกรณ์กับ Tcp อีกครั้ง

public ITestDevice reconnectDeviceToTcp (ITestDevice usbDevice)

เมธอดตัวช่วยที่เปลี่ยนอุปกรณ์ USB ที่ระบุให้เป็นโหมด adb-over-tcp จากนั้นเชื่อมต่อกับ ผ่าน connectToTcpDevice(String)

พารามิเตอร์
usbDevice ITestDevice: อุปกรณ์อยู่ในโหมด USB ในขณะนี้

คิกรีเทิร์น
ITestDevice ITestDevice ที่จัดสรรใหม่ในโหมด tcp หรือ null หาก tcp ไม่สามารถสร้างการเชื่อมต่อ

การขว้าง
DeviceNotAvailableException

นำการตรวจสอบอุปกรณ์ออก

public void removeDeviceMonitor (IDeviceMonitor mon)

นำ IDeviceMonitor ที่เพิ่มไว้ก่อนหน้านี้ออก ไม่มีผลหากไม่ได้เพิ่ม mon

พารามิเตอร์
mon IDeviceMonitor

removeFastbootListener

public void removeFastbootListener (IDeviceManager.IFastbootListener listener)

แจ้งผู้จัดการว่า Listener ไม่สนใจการเปลี่ยนแปลงสถานะการ Fastboot อีกต่อไป

รีสตาร์ทAdbBbridge

public void restartAdbBridge ()

รีสตาร์ท (หากมีการเรียก stopAdbBridge()) adb Bridge และบริการขึ้นอยู่กับ adb การเชื่อมต่อ

StopAdbBridge

public void stopAdbBridge ()

หยุด adb Bridge และบริการขึ้นอยู่กับการเชื่อมต่อ adb

สิ้นสุด

public void terminate ()

หยุดบริการตรวจสอบอุปกรณ์ และสิ้นสุดไลบรารี DDM

โดยต้องแจ้งเมื่อมีการยุติการสมัคร

สิ้นสุดการตรวจสอบอุปกรณ์

public void terminateDeviceMonitor ()

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

สิ้นสุดการกู้คืนอุปกรณ์

public void terminateDeviceRecovery ()

หยุดเทรดการกู้คืนอุปกรณ์

สิ้นสุดได้ยาก

public void terminateHard (String reason)

เช่น terminateHard()

พารามิเตอร์
reason String: เหตุผล (ไม่บังคับ) สำหรับการสิ้นสุด

สิ้นสุดได้ยาก

public void terminateHard ()

เหมือน terminate() แต่พยายามปิด adb อย่างแรงด้วย

เพิ่มอุปกรณ์ครั้งแรกแล้ว

public boolean waitForFirstDeviceAdded (long timeout)

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

พารามิเตอร์
timeout long: เวลาที่ต้องรอในหน่วยมิลลิวินาทีก่อนแสดงผลเป็น false

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