IDeviceManager
public
interface
IDeviceManager
| com.android.tradefed.device.IDeviceManager |
用於管理可供測試的裝置組合。
摘要
巢狀類別 | |
|---|---|
interface |
IDeviceManager.IFastbootListener
快速啟動狀態變更的監聽器。 |
公用方法 | |
|---|---|
abstract
void
|
addDeviceMonitor(IDeviceMonitor mon)
|
abstract
void
|
addFastbootListener(IDeviceManager.IFastbootListener listener)
通知管理員監聽器對 Fastboot 狀態變更感興趣。 |
abstract
void
|
addMonitoringTcpFastbootDevice(String serial, String fastboot_serial)
將裝置新增至 Fastboot 監控器。 |
abstract
ITestDevice
|
allocateDevice(IDeviceSelection options, boolean isTemporary)
要求提供符合特定條件的測試裝置。 |
abstract
ITestDevice
|
allocateDevice(IDeviceSelection options)
要求提供符合特定條件的測試裝置。 |
abstract
ITestDevice
|
allocateDevice()
申請實體裝置進行測試 |
abstract
ITestDevice
|
connectToTcpDevice(String ipAndPort)
透過 adb-over-tcp 連線至裝置
這個方法會分配新裝置,最終應透過
傳回的 |
abstract
boolean
|
disconnectFromTcpDevice(ITestDevice tcpDevice)
中斷與透過 adb over TCP 連線的裝置連線。 |
abstract
void
|
displayDevicesInfo(PrintWriter printWriter, boolean includeStub)
輸出易於理解的說明,其中包含已知裝置清單、裝置狀態,以及常用 |
abstract
CommandResult
|
executeCmdOnAvailableDevice(String serial, String command, long timeout, TimeUnit timeUnit)
Helper method to execute shell command on available device. |
abstract
ITestDevice
|
forceAllocateDevice(String serial)
即使裝置目前無法使用,仍會粗略地分配裝置。 |
abstract
void
|
freeDevice(ITestDevice device, FreeDeviceState state)
將裝置返回集區 如果裝置先前未分配給使用者,系統會忽略退回要求。 |
abstract
String
|
getAdbPath()
傳回要使用的 adb 二進位檔路徑。 |
abstract
String
|
getAdbVersion()
取得裝置管理員目前使用的 adb 版本。 |
abstract
DeviceDescriptor
|
getDeviceDescriptor(String serial)
傳回具有指定序號的 DeviceDescriptor。 |
abstract
String
|
getFastbootPath()
傳回要使用的 Fastboot 二進位檔路徑。 |
abstract
void
|
init(IDeviceSelection globalDeviceFilter,
使用裝置篩選器初始化裝置管理工具。 |
abstract
void
|
init()
初始化裝置管理工具。 |
abstract
boolean
|
isEmulator(String serial)
判斷指定序號是否代表模擬器 |
default
boolean
|
isFileSystemMountCheckEnabled()
Returns whether or not we should check in |
abstract
boolean
|
isNullDevice(String serial)
判斷指定序號是否代表空值裝置 |
abstract
void
|
killEmulator(ITestDevice device)
關閉指定的模擬器。 |
abstract
void
|
launchEmulator(ITestDevice device, long bootTimeout, IRunUtil runUtil,
Helper method to launch emulator. |
abstract
|
listAllDevices(boolean shortDescriptor)
傳回所有已知裝置的 DeviceDescriptor 清單 |
abstract
|
listAllDevices()
傳回所有已知裝置的 DeviceDescriptor 清單 |
abstract
ITestDevice
|
reconnectDeviceToTcp(ITestDevice usbDevice)
這個輔助方法會將指定的 USB 裝置切換至透過 TCP 進行 ADB 偵錯的模式,然後透過 |
abstract
void
|
removeDeviceMonitor(IDeviceMonitor mon)
移除先前新增的 |
abstract
void
|
removeFastbootListener(IDeviceManager.IFastbootListener listener)
通知管理員監聽器不再對 Fastboot 狀態變更感興趣。 |
default
void
|
removeMonitoringTcpFastbootDevice(String serial)
|
abstract
void
|
restartAdbBridge()
重新啟動 (如果呼叫了 |
abstract
void
|
stopAdbBridge()
停止 ADB 橋接器和依附於 ADB 連線的服務。 |
abstract
void
|
terminate()
停止裝置監控服務,並終止 ddm 程式庫。 |
abstract
void
|
terminateDeviceMonitor()
停止裝置監控器。 |
abstract
void
|
terminateDeviceRecovery()
停止裝置復原執行緒。 |
default
void
|
terminateHard(String reason)
與「 |
abstract
void
|
terminateHard()
與 |
abstract
boolean
|
waitForFirstDeviceAdded(long timeout)
等待第一個實體裝置連線。 |
公用方法
addFastbootListener
public abstract void addFastbootListener (IDeviceManager.IFastbootListener listener)
通知管理員監聽器對 Fastboot 狀態變更感興趣。
目前,如果有一或多個有效監聽器,IDeviceManager 只會監控快速啟動模式下的裝置。
TODO:這有點像是權宜之計,請尋找更完善的解決方案
addMonitoringTcpFastbootDevice
public abstract void addMonitoringTcpFastbootDevice (String serial,
String fastboot_serial)將裝置新增至 Fastboot 監控器。快速啟動監控器會使用「fastboot_serial」與裝置通訊。
| 參數 | |
|---|---|
serial |
String:裝置的序號。 |
fastboot_serial |
String:裝置的快速啟動模式序號。 |
allocateDevice
public abstract ITestDevice allocateDevice (IDeviceSelection options, boolean isTemporary)
要求提供符合特定條件的測試裝置。
| 參數 | |
|---|---|
options |
IDeviceSelection:裝置應符合的 IDeviceSelection。 |
isTemporary |
boolean:是否應建立暫時的 NullDevice。 |
| 傳回 | |
|---|---|
ITestDevice |
用於測試的 ITestDevice,或 null (如果沒有可用的 ITestDevice) |
allocateDevice
public abstract ITestDevice allocateDevice (IDeviceSelection options)
要求提供符合特定條件的測試裝置。
| 參數 | |
|---|---|
options |
IDeviceSelection:裝置應符合的 IDeviceSelection。 |
| 傳回 | |
|---|---|
ITestDevice |
測試用的 ITestDevice,或 null (如果沒有測試用的 ITestDevice) |
allocateDevice
public abstract ITestDevice allocateDevice ()
要求提供實體裝置進行測試
| 傳回 | |
|---|---|
ITestDevice |
用於測試的 ITestDevice,或 null (如果沒有可用的 ITestDevice) |
connectToTcpDevice
public abstract ITestDevice connectToTcpDevice (String ipAndPort)
透過 adb-over-tcp 連線至裝置
這個方法會分配新裝置,最終應透過 disconnectFromTcpDevice(com.android.tradefed.device.ITestDevice)
傳回的 ITestDevice 會處於線上狀態,但可能沒有回應。
請注意,如果對已連線的 TCP 裝置執行重新啟動等動作,會中斷與該裝置的 TCP 連線,並導致 DeviceNotAvailableException
| 參數 | |
|---|---|
ipAndPort |
String:要連線的裝置原始 IP 位址和通訊埠 |
| 傳回 | |
|---|---|
ITestDevice |
如果無法建立 TCP 連線,則為 ITestDevice 或 null |
disconnectFromTcpDevice
public abstract boolean disconnectFromTcpDevice (ITestDevice tcpDevice)
中斷與透過 adb over TCP 連線的裝置連線。
將裝置切換回 USB 模式,並釋放裝置。
| 參數 | |
|---|---|
tcpDevice |
ITestDevice:目前處於 TCP 模式的裝置,先前透過 connectToTcpDevice(String) 分配 |
| 傳回 | |
|---|---|
boolean |
true 如果切換至 USB 模式成功 |
displayDevicesInfo
public abstract void displayDevicesInfo (PrintWriter printWriter,
boolean includeStub)輸出易於理解的說明,其中包含已知裝置清單、裝置狀態,以及常用 IDeviceSelection 選項的值。
| 參數 | |
|---|---|
printWriter |
PrintWriter:要輸出說明的 ERROR(/PrintWriter) |
includeStub |
boolean:是否也要顯示 Stub 裝置。 |
executeCmdOnAvailableDevice
public abstract CommandResult executeCmdOnAvailableDevice (String serial, String command, long timeout, TimeUnit timeUnit)
在可用裝置上執行殼層指令的輔助方法。
| 參數 | |
|---|---|
serial |
String:裝置序號。 |
command |
String:殼層指令。 |
timeout |
long:指令完成所需的時間長度。 |
timeUnit |
TimeUnit:逾時的單位。 |
| 傳回 | |
|---|---|
CommandResult |
A CommandResult。 |
forceAllocateDevice
public abstract ITestDevice forceAllocateDevice (String serial)
即使裝置目前無法使用,也會粗略地分配裝置。
如果裝置已分配,這項設定不會產生任何影響。
| 參數 | |
|---|---|
serial |
String:要分配的裝置序號 |
| 傳回 | |
|---|---|
ITestDevice |
ITestDevice,或 null (如果無法分配) |
freeDevice
public abstract void freeDevice (ITestDevice device, FreeDeviceState state)
將裝置返回集區
如果裝置先前未分配給使用者,系統會忽略退回要求。
| 參數 | |
|---|---|
device |
ITestDevice:ITestDevice 免費 |
state |
FreeDeviceState:FreeDeviceState。用於控管裝置是否會返回可用裝置集區。 |
getAdbPath
public abstract String getAdbPath ()
傳回要使用的 adb 二進位檔路徑。
| 傳回 | |
|---|---|
String |
|
getAdbVersion
public abstract String getAdbVersion ()
取得裝置管理員目前使用的 adb 版本。
| 傳回 | |
|---|---|
String |
|
getDeviceDescriptor
public abstract DeviceDescriptor getDeviceDescriptor (String serial)
傳回具有指定序號的 DeviceDescriptor。
| 參數 | |
|---|---|
serial |
String:要取得的裝置序號 |
| 傳回 | |
|---|---|
DeviceDescriptor |
所選裝置的 DeviceDescriptor,如果序號與已知裝置不符,則為空值。 |
getFastbootPath
public abstract String getFastbootPath ()
傳回要使用的 Fastboot 二進位檔路徑。
| 傳回 | |
|---|---|
String |
|
init
public abstract void init (IDeviceSelection globalDeviceFilter,deviceMonitors)
使用裝置篩選器初始化裝置管理員。這個篩選器可用於指示 DeviceManager 忽略特定連線裝置。
| 參數 | |
|---|---|
globalDeviceFilter |
IDeviceSelection:裝置篩選器 |
deviceMonitors |
|
init
public abstract void init ()
初始化裝置管理工具。呼叫任何其他方法之前,必須呼叫這個方法一次,且只能呼叫一次。
isEmulator
public abstract boolean isEmulator (String serial)
判斷指定序號是否代表模擬器
| 參數 | |
|---|---|
serial |
String |
| 傳回 | |
|---|---|
boolean |
|
isFileSystemMountCheckEnabled
public boolean isFileSystemMountCheckEnabled ()
Returns whether or not we should check in NativeDeviceStateMonitor the file system is
mounted properly.
| 傳回 | |
|---|---|
boolean |
|
isNullDevice
public abstract boolean isNullDevice (String serial)
判斷指定序號是否代表空值裝置
| 參數 | |
|---|---|
serial |
String |
| 傳回 | |
|---|---|
boolean |
|
killEmulator
public abstract void killEmulator (ITestDevice device)
關閉指定的模擬器。
封鎖作業會執行至模擬器從 adb 消失為止。如果模擬器已無法使用,這個指令就不會產生任何作用。
| 參數 | |
|---|---|
device |
ITestDevice:代表要關閉模擬器的 ITestDevice |
| 擲回 | |
|---|---|
DeviceNotAvailableException |
如果模擬器無法關機 |
launchEmulator
public abstract void launchEmulator (ITestDevice device, long bootTimeout, IRunUtil runUtil,emulatorArgs)
啟動模擬器的輔助方法。
啟動呼叫者指定的模擬器
| 參數 | |
|---|---|
device |
ITestDevice:代表已分配模擬器裝置的預留位置 ITestDevice |
bootTimeout |
long:等待模擬器啟動的時間 (以毫秒為單位) |
emulatorArgs |
:啟動模擬器的指令列引數 |
| 擲回 | |
|---|---|
DeviceNotAvailableException |
如果模擬器無法啟動或連線 |
listAllDevices
public abstractlistAllDevices (boolean shortDescriptor)
傳回所有已知裝置的 DeviceDescriptor 清單
| 參數 | |
|---|---|
shortDescriptor |
boolean:是否將描述元限制為最少資訊 |
| 傳回 | |
|---|---|
|
所有已知裝置的 DeviceDescriptor 清單 |
listAllDevices
public abstractlistAllDevices ()
傳回所有已知裝置的 DeviceDescriptor 清單
| 傳回 | |
|---|---|
|
所有已知裝置的 DeviceDescriptor 清單 |
reconnectDeviceToTcp
public abstract ITestDevice reconnectDeviceToTcp (ITestDevice usbDevice)
這個輔助方法會將指定的 USB 裝置切換至透過 TCP 進行 ADB 的模式,然後透過 connectToTcpDevice(String) 連線至該裝置。
| 參數 | |
|---|---|
usbDevice |
ITestDevice:裝置目前處於 USB 模式 |
| 傳回 | |
|---|---|
ITestDevice |
新分配的 ITestDevice (TCP 模式) 或 null (如果無法建立 TCP 連線) |
| 擲回 | |
|---|---|
DeviceNotAvailableException |
與 usbDevice 的連線中斷且無法復原 |
removeDeviceMonitor
public abstract void removeDeviceMonitor (IDeviceMonitor mon)
移除先前新增的 IDeviceMonitor。如果尚未新增 mon,這個指令就不會產生任何作用。
| 參數 | |
|---|---|
mon |
IDeviceMonitor |
removeFastbootListener
public abstract void removeFastbootListener (IDeviceManager.IFastbootListener listener)
通知管理員監聽器不再對 Fastboot 狀態變更感興趣。
removeMonitoringTcpFastbootDevice
public void removeMonitoringTcpFastbootDevice (String serial)
| 參數 | |
|---|---|
serial |
String |
restartAdbBridge
public abstract void restartAdbBridge ()
重新啟動 (如果呼叫了 stopAdbBridge()) adb 橋接器和服務,取決於 adb 連線。
stopAdbBridge
public abstract void stopAdbBridge ()
停止 adb 橋接器和依附於 adb 連線的服務。
終止
public abstract void terminate ()
停止裝置監控服務,並終止 ddm 程式庫。
應用程式終止時必須呼叫這個方法。
terminateDeviceMonitor
public abstract void terminateDeviceMonitor ()
停止裝置監控。
terminateDeviceRecovery
public abstract void terminateDeviceRecovery ()
停止裝置復原執行緒。
terminateHard
public void terminateHard (String reason)
與「terminateHard()」相似。
| 參數 | |
|---|---|
reason |
String:終止的選填原因。 |
waitForFirstDeviceAdded
public abstract boolean waitForFirstDeviceAdded (long timeout)
等待第一個實體裝置連線。如果裝置先前已連線,系統會直接傳回 True。如果沒有新增任何裝置,則會在逾時後傳回 false。
| 參數 | |
|---|---|
timeout |
long:傳回 false 前等待的時間 (以毫秒為單位)。 |
| 傳回 | |
|---|---|
boolean |
|