設備管理器
public interface IDeviceManager
com.android.tradefed.device.IDeviceManager |
用於管理用於測試的可用設備集的界面。
概括
嵌套類 | |
---|---|
interface | IDeviceManager.IFastbootListener 快速啟動狀態更改的偵聽器。 |
公共方法 | |
---|---|
abstract void | addDeviceMonitor ( IDeviceMonitor mon) |
abstract void | addFastbootListener ( IDeviceManager.IFastbootListener listener) 通知管理器偵聽器對快速啟動狀態更改感興趣。 |
abstract void | addMonitoringTcpFastbootDevice (String serial, String fastboot_serial) 將設備添加到快速啟動監視器。 |
abstract ITestDevice | allocateDevice ( IDeviceSelection options, boolean isTemporary) 申請符合特定標準的測試設備。 |
abstract ITestDevice | allocateDevice ( IDeviceSelection options) 申請符合特定標準的測試設備。 |
abstract ITestDevice | allocateDevice () 請求物理設備進行測試 |
abstract ITestDevice | connectToTcpDevice (String ipAndPort) 使用 adb-over-tcp 連接到設備 此方法分配一個新設備,最終應通過disconnectFromTcpDevice(com.android.tradefed.device.ITestDevice) 釋放返回的ITestDevice 將在線,但可能沒有響應。 |
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) 在可用設備上執行 shell 命令的輔助方法。 |
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, deviceMonitors) init ( IDeviceSelection globalDeviceFilter, deviceMonitors) 使用設備過濾器初始化設備管理器。 |
abstract void | init () 初始化設備管理器。 |
abstract boolean | isEmulator (String serial) 確定給定的序列號是否代表模擬器 |
default boolean | isFileSystemMountCheckEnabled () 返回我們是否應該在 |
abstract boolean | isNullDevice (String serial) 確定給定的序列號是否代表空設備 |
abstract void | killEmulator ( ITestDevice device) 關閉給定的模擬器。 |
abstract void | launchEmulator ( ITestDevice device, long bootTimeout, IRunUtil runUtil, emulatorArgs) launchEmulator ( ITestDevice device, long bootTimeout, IRunUtil runUtil, emulatorArgs) 啟動模擬器的輔助方法。 |
abstract | listAllDevices (boolean shortDescriptor) 返回所有已知設備的 DeviceDescriptor 列表 |
abstract | listAllDevices () 返回所有已知設備的 DeviceDescriptor 列表 |
abstract ITestDevice | reconnectDeviceToTcp ( ITestDevice usbDevice) 將給定的 USB 設備切換到 adb-over-tcp 模式的輔助方法,然後通過 |
abstract void | removeDeviceMonitor ( IDeviceMonitor mon) 刪除以前添加的 |
abstract void | removeFastbootListener ( IDeviceManager.IFastbootListener listener) 通知管理器偵聽器不再對快速啟動狀態更改感興趣。 |
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)
通知管理器偵聽器對快速啟動狀態更改感興趣。
目前,如果有一個或多個活動偵聽器,IDeviceManager
將僅在 fastboot 中監視設備。 TODO:這有點小技巧 - 找到更好的解決方案addMonitoringTcpFastbootDevice
public abstract void addMonitoringTcpFastbootDevice (String serial, String fastboot_serial)
將設備添加到快速啟動監視器。 fastboot 監視器將使用“fastboot_serial”與設備通信。
參數 | |
---|---|
serial | String :設備的序列號。 |
fastboot_serial | String : 設備的快速啟動模式序列號。 |
分配設備
public abstract ITestDevice allocateDevice (IDeviceSelection options, boolean isTemporary)
申請符合特定標準的測試設備。
參數 | |
---|---|
options | IDeviceSelection :設備應滿足的IDeviceSelection 。 |
isTemporary | boolean : 是否應該創建一個臨時的 NullDevice。 |
退貨 | |
---|---|
ITestDevice | 用於測試的ITestDevice ,如果不可用,則返回null |
分配設備
public abstract ITestDevice allocateDevice (IDeviceSelection options)
申請符合特定標準的測試設備。
參數 | |
---|---|
options | IDeviceSelection :設備應滿足的IDeviceSelection 。 |
退貨 | |
---|---|
ITestDevice | 用於測試的ITestDevice ,如果不可用,則返回null |
分配設備
public abstract ITestDevice allocateDevice ()
請求物理設備進行測試
退貨 | |
---|---|
ITestDevice | 用於測試的ITestDevice ,如果不可用,則返回null |
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 | 如果切換到 USB 模式成功,則為true |
顯示設備信息
public abstract void displayDevicesInfo (PrintWriter printWriter, boolean includeStub)
輸出一個用戶友好的描述,其中包含已知設備列表、它們的狀態和常用IDeviceSelection
選項的值。
參數 | |
---|---|
printWriter | PrintWriter : 將描述輸出到的ERROR(/PrintWriter) |
includeStub | boolean : 是否也顯示存根設備。 |
執行CmdOnAvailableDevice
public abstract CommandResult executeCmdOnAvailableDevice (String serial, String command, long timeout, TimeUnit timeUnit)
在可用設備上執行 shell 命令的輔助方法。
參數 | |
---|---|
serial | String : 設備序列號。 |
command | String :shell 命令。 |
timeout | long :命令完成的時間量。 |
timeUnit | TimeUnit : 超時單位。 |
退貨 | |
---|---|
CommandResult | 一個CommandResult 。 |
forceAllocateDevice
public abstract ITestDevice forceAllocateDevice (String serial)
粗魯地分配設備,即使它當前不可用。
如果設備已分配,則無效。參數 | |
---|---|
serial | String : 要分配的設備序列號 |
退貨 | |
---|---|
ITestDevice | ITestDevice ,如果無法分配,則返回null |
免費設備
public abstract void freeDevice (ITestDevice device, FreeDeviceState state)
將設備返回到池中
返回先前未分配的設備的嘗試將被忽略。參數 | |
---|---|
device | ITestDevice : 要釋放的ITestDevice |
state | FreeDeviceState : FreeDeviceState 。用於控制設備是否返回到可用設備池。 |
獲取AdbPath
public abstract String getAdbPath ()
返回要使用的 adb 二進製文件的路徑。
退貨 | |
---|---|
String |
獲取AdbVersion
public abstract String getAdbVersion ()
獲取設備管理器當前使用的 adb 版本。
退貨 | |
---|---|
String |
獲取設備描述符
public abstract DeviceDescriptor getDeviceDescriptor (String serial)
返回具有給定序列的 DeviceDescriptor。
參數 | |
---|---|
serial | String : 要獲取的設備序列號 |
退貨 | |
---|---|
DeviceDescriptor | 所選設備的DeviceDescriptor ,如果序列號與已知設備不匹配,則返回 null。 |
獲取快速啟動路徑
public abstract String getFastbootPath ()
返回要使用的 fastboot 二進製文件的路徑。
退貨 | |
---|---|
String |
在裡面
public abstract void init (IDeviceSelection globalDeviceFilter,deviceMonitors)
使用設備過濾器初始化設備管理器。此過濾器可用於指示 DeviceManager 忽略某些連接的設備。
參數 | |
---|---|
globalDeviceFilter | IDeviceSelection :設備過濾器 |
deviceMonitors |
在裡面
public abstract void init ()
初始化設備管理器。在調用任何其他方法之前,必須調用一次且僅調用一次。
是模擬器
public abstract boolean isEmulator (String serial)
確定給定的序列號是否代表模擬器
參數 | |
---|---|
serial | String |
退貨 | |
---|---|
boolean |
isFileSystemMountCheckEnabled
public boolean isFileSystemMountCheckEnabled ()
返回我們是否應該在NativeDeviceStateMonitor
中檢查文件系統是否正確安裝。
退貨 | |
---|---|
boolean |
isNullDevice
public abstract boolean isNullDevice (String serial)
確定給定的序列號是否代表空設備
參數 | |
---|---|
serial | String |
退貨 | |
---|---|
boolean |
殺戮模擬器
public abstract void killEmulator (ITestDevice device)
關閉給定的模擬器。
阻塞直到模擬器從 adb 中消失。如果模擬器已經不可用,將無效。參數 | |
---|---|
device | ITestDevice :表示要關閉的模擬器的ITestDevice |
投擲 | |
---|---|
DeviceNotAvailableException | 如果模擬器無法關閉 |
啟動模擬器
public abstract void launchEmulator (ITestDevice device, long bootTimeout, IRunUtil runUtil,emulatorArgs)
啟動模擬器的輔助方法。
將啟動調用者指定的模擬器參數 | |
---|---|
device | ITestDevice :佔位符ITestDevice 代表分配的模擬器設備 |
bootTimeout | long :等待模擬器啟動的時間(毫秒) |
emulatorArgs |
投擲 | |
---|---|
DeviceNotAvailableException | 如果模擬器無法啟動或上線 |
列出所有設備
public abstractlistAllDevices (boolean shortDescriptor)
返回所有已知設備的 DeviceDescriptor 列表
參數 | |
---|---|
shortDescriptor | boolean : 是否將描述符限制為最小信息 |
退貨 | |
---|---|
所有已知設備的DeviceDescriptor 列表 |
重新連接DeviceToTcp
public abstract ITestDevice reconnectDeviceToTcp (ITestDevice usbDevice)
將給定的 USB 設備切換到 adb-over-tcp 模式的輔助方法,然後通過connectToTcpDevice(String)
連接到它。
參數 | |
---|---|
usbDevice | ITestDevice : 當前處於 USB 模式的設備 |
退貨 | |
---|---|
ITestDevice | tcp 模式下新分配的ITestDevice 或null 如果無法形成 tcp 連接 |
投擲 | |
---|---|
DeviceNotAvailableException | 如果與usbDevice的連接丟失且無法恢復 |
刪除設備監視器
public abstract void removeDeviceMonitor (IDeviceMonitor mon)
刪除以前添加的IDeviceMonitor
。如果未添加 mon,則無效。
參數 | |
---|---|
mon | IDeviceMonitor |
移除FastbootListener
public abstract void removeFastbootListener (IDeviceManager.IFastbootListener listener)
通知管理器偵聽器不再對快速啟動狀態更改感興趣。
停止AdbBridge
public abstract void stopAdbBridge ()
停止 adb 橋和服務依賴於 adb 連接。
終止
public abstract void terminate ()
停止設備監控服務,並終止 ddm 庫。
這必須在應用程序終止時調用。終止設備監視器
public abstract void terminateDeviceMonitor ()
停止設備監視器。
終止設備恢復
public abstract void terminateDeviceRecovery ()
停止設備恢復線程。
waitForFirstDeviceAdded
public abstract boolean waitForFirstDeviceAdded (long timeout)
等到第一個物理設備被連接。如果之前連接過設備,則直接返回 True。如果沒有添加設備,超時後返回 false。
參數 | |
---|---|
timeout | long :在返回 false 之前等待的時間(以毫秒為單位)。 |
退貨 | |
---|---|
boolean |
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2022-11-07 UTC.