裝置管理員

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()

應從 GlobalConfiguration 擷取 DeviceManager

公用方法

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 監視器。

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)

一種輔助方法,可在可用裝置上執行殼層指令。

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()

傳回要使用的 Quickboot 二進位檔路徑。

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)

判斷指定序列是否代表空值的裝置

void killEmulator(ITestDevice device)

關閉指定的模擬器。

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

啟動模擬器的輔助方法。

listAllDevices(boolean shortDescriptor)

傳回所有已知裝置的 DeviceDescriptors 清單

listAllDevices()

傳回所有已知裝置的 DeviceDescriptors 清單

ITestDevice reconnectDeviceToTcp(ITestDevice usbDevice)

一種輔助方法,可將給定的 usb 裝置切換為 adb-over-tcp 模式,然後連線至 透過 connectToTcpDevice(String) 即可。

void removeDeviceMonitor(IDeviceMonitor mon)

移除先前新增的 IDeviceMonitor

void removeFastbootListener(IDeviceManager.IFastbootListener listener)

通知管理員,監聽器不再對 Fastboot 狀態變更感興趣。

void restartAdbBridge()

重新啟動 (如果呼叫 stopAdbBridge()) ADB 橋接器,而服務依附於 ADB 連線狀態。

void stopAdbBridge()

停止 ADB 橋接器和服務需要 ADB 連線。

void terminate()

停止裝置監控服務,並終止 ddm 程式庫。

void terminateDeviceMonitor()

停止裝置監視器。

void terminateDeviceRecovery()

停止裝置復原執行緒。

void terminateHard(String reason)

例如「terminateHard()」。

void terminateHard()

terminate() 一樣,但也嘗試強制關閉 ADB。

boolean waitForFirstDeviceAdded(long timeout)

等待第一個實體裝置連線。

欄位

UNKNOWN_DISPLAY_STRING

public static final String UNKNOWN_DISPLAY_STRING

不明屬性的顯示字串

mDvcMon

protected DeviceMonitorMultiplexer mDvcMon

mFastbootEnabled

protected boolean mFastbootEnabled

公用建構函式

裝置管理員

public DeviceManager ()

應從 GlobalConfiguration 擷取 DeviceManager

公用方法

addAvailableDevice

public void addAvailableDevice (IDevice stubDevice)

參數
stubDevice IDevice

addDeviceMonitor

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 中監控裝置 聽眾的聽眾中

待辦事項:這有一些小妙招,尋找更好的解決方案

addMonitoringTcpFastbootDevice

public void addMonitoringTcpFastbootDevice (String serial, 
                String fastboot_serial)

將裝置新增至 Fastboot 監視器。Fastboot 監視器將使用「fastboot_serial」到 與裝置通訊

參數
serial String:裝置的序號。

fastboot_serial String:裝置的快速系統啟動模式序號。

分配裝置

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

ConnectToTcpDevice

public ITestDevice connectToTcpDevice (String ipAndPort)

使用 adb-over-tcp 連線至裝置

這個方法會分配新裝置,最終應透過 disconnectFromTcpDevice(com.android.tradefed.device.ITestDevice)

傳回的 ITestDevice 將在線上,但可能無法回應。

請注意,在 tcp 連線裝置上執行重新啟動等動作, 與裝置之間的 tcp 連線,並導致 DeviceNotAvailableException

參數
ipAndPort String:要連線的裝置原始 IP 位址和通訊埠

傳回
ITestDevice 在無法建立 tcp 連線的情況下傳回 ITestDevicenull

中斷連結 FromTcpDevice

public boolean disconnectFromTcpDevice (ITestDevice tcpDevice)

中斷 adb-over-tcp 連線裝置的連線。

將裝置切回 USB 模式並釋出。

參數
tcpDevice ITestDevice:裝置目前為 tcp 模式,先前是透過 connectToTcpDevice(String)

傳回
boolean 如果成功切換至 USB 模式,則為 true

顯示裝置資訊

public void displayDevicesInfo (PrintWriter stream, 
                boolean includeStub)

輸出使用者容易理解的說明,內容包含已知裝置、裝置狀態和值 常用的 IDeviceSelection 選項。

參數
stream PrintWriter:用於輸出說明的 ERROR(/PrintWriter)

includeStub boolean:是否一併顯示虛設常式裝置。

runCmdOnAvailableDevice

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

一種輔助方法,可在可用裝置上執行殼層指令。

參數
serial String:裝置序列。

command String:殼層指令。

timeout long:執行指令的時間長度。

timeUnit TimeUnit:逾時的單位。

傳回
CommandResult CommandResult

執行 GlobalAdbCommand

public String executeGlobalAdbCommand (String... cmdArgs)

執行未指定特定裝置的 ADB 指令,例如。ADB 連結

傳回
String std 輸出;否則,如果指令成功為空值,則輸出 null。

forceAllocateDevice

public ITestDevice forceAllocateDevice (String serial)

即使目前不提供裝置,也請謹慎配置裝置。

如果裝置已分配,將不會有任何作用。

參數
serial String:要配置的裝置序列

傳回
ITestDevice ITestDevice;如果無法分配,則為 null

免費裝置

public void freeDevice (ITestDevice device, 
                FreeDeviceState deviceState)

將裝置退回給泳池

如果您嘗試退回尚未分配的裝置,系統會予以忽略。

參數
device ITestDevice:免付費的 ITestDevice

deviceState FreeDeviceStateFreeDeviceState。用於控制 則裝置就會回到可用的裝置集區中。

getAdbPath

public String getAdbPath ()

傳回要使用的 ADB 二進位檔路徑。

傳回
String

getAdbVersion

public String getAdbVersion ()

取得裝置管理員目前使用的 ADB 版本。

傳回
String

getDeviceDescriptor

public DeviceDescriptor getDeviceDescriptor (String serial)

傳回具有指定序列的 DeviceDescriptor。

參數
serial String:待取得裝置的序號

傳回
DeviceDescriptor 所選裝置的 DeviceDescriptor;如果序列沒有,則為空值 與已知裝置進行比對

取得快速系統啟動路徑 (FastbootPath)

public String getFastbootPath ()

傳回要使用的 Quickboot 二進位檔路徑。

傳回
String

初始

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

初始化裝置管理員。您必須呼叫一次,且僅呼叫一次 方法。

參數
globalDeviceFilter IDeviceSelection

globalDeviceMonitors

deviceFactory IManagedTestDeviceFactory

初始

public void init (IDeviceSelection globalDeviceFilter, 
                 globalDeviceMonitors)

初始化裝置管理員。您必須呼叫一次,且僅呼叫一次 方法。

參數
globalDeviceFilter IDeviceSelection:裝置篩選器

globalDeviceMonitors

初始

public void init ()

初始化裝置管理員。您必須呼叫一次,且僅呼叫一次 方法。

isEmulator

public boolean isEmulator (String serial)

判斷指定序列是否代表模擬器

參數
serial String

傳回
boolean

isFileSystemMountCheckEnabled

public boolean isFileSystemMountCheckEnabled ()

傳回是否應在 NativeDeviceStateMonitor 中檢查,系統是否已執行檔案系統 正確安裝

傳回
boolean

isNullDevice

public boolean isNullDevice (String serial)

判斷指定序列是否代表空值的裝置

參數
serial String

傳回
boolean

殺死魔法

public void killEmulator (ITestDevice device)

關閉指定的模擬器。

封鎖,直到模擬器從 ADB 消失為止。如果模擬器尚未生效,就不會有任何作用 廣告。

參數
device ITestDevice:代表要關閉的模擬器的 ITestDevice

擲回
DeviceNotAvailableException

啟動模擬器

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

啟動模擬器的輔助方法。

將依呼叫端指定的方式啟動模擬器

參數
device ITestDevice:代表已分配模擬器裝置的預留位置 ITestDevice

bootTimeout long:等待模擬器啟動的時間 (毫秒)

emulatorArgs :啟動模擬器的指令列引數

擲回
DeviceNotAvailableException

列出所有裝置

public  listAllDevices (boolean shortDescriptor)

傳回所有已知裝置的 DeviceDescriptors 清單

參數
shortDescriptor boolean:是否將描述元限制為最少資訊

傳回
所有已知裝置的 DeviceDescriptor 清單

列出所有裝置

public  listAllDevices ()

傳回所有已知裝置的 DeviceDescriptors 清單

傳回
所有已知裝置的 DeviceDescriptor 清單

重新連線裝置 ToTcp

public ITestDevice reconnectDeviceToTcp (ITestDevice usbDevice)

一種輔助方法,可將給定的 usb 裝置切換為 adb-over-tcp 模式,然後連線至 透過 connectToTcpDevice(String) 即可。

參數
usbDevice ITestDevice:裝置目前處於 USB 模式

傳回
ITestDevice 在 tcp 模式下新分配的 ITestDevice;如果使用 TCP,則設為 null 無法建立連線

擲回
DeviceNotAvailableException

移除裝置監視器

public void removeDeviceMonitor (IDeviceMonitor mon)

移除先前新增的 IDeviceMonitor。如果未新增 Mon,則不會有任何作用。

參數
mon IDeviceMonitor

移除 FastbootListener

public void removeFastbootListener (IDeviceManager.IFastbootListener listener)

通知管理員,監聽器不再對 Fastboot 狀態變更感興趣。

重啟 AdbBridge

public void restartAdbBridge ()

重新啟動 (如果呼叫 stopAdbBridge()) ADB 橋接器,而服務依附於 ADB 連線狀態。

StopAdbBridge

public void stopAdbBridge ()

停止 ADB 橋接器和服務需要 ADB 連線。

終止

public void terminate ()

停止裝置監控服務,並終止 ddm 程式庫。

應用程式終止時必須呼叫這個方法。

終止 DeviceMonitor

public void terminateDeviceMonitor ()

停止裝置監視器。

終止裝置復原

public void terminateDeviceRecovery ()

停止裝置復原執行緒。

EndHard

public void terminateHard (String reason)

例如「terminateHard()」。

參數
reason String:提供的終止原因 (選填)。

EndHard

public void terminateHard ()

terminate() 一樣,但也嘗試強制關閉 ADB。

waitForFirstDeviceAdded

public boolean waitForFirstDeviceAdded (long timeout)

等待第一個實體裝置連線。如果先前已連結過的裝置,則 會直接傳回 True如未新增裝置,則在逾時後傳回 false。

參數
timeout long:傳回 false 之前的等待時間 (單位為毫秒)。

傳回
boolean