裝置經理
public class DeviceManager
extends Object
implements IDeviceManager
java.lang.Object | |
↳ | com.android.tradefed.device.DeviceManager |
概括
嵌套類 | |
---|---|
class | DeviceManager.FastbootDevice Fastboot 模式下設備的表示。 |
字段 | |
---|---|
public static final String | UNKNOWN_DISPLAY_STRING 顯示未知屬性的字符串 |
protected DeviceMonitorMultiplexer | mDvcMon |
protected boolean | mFastbootEnabled
|
公共構造函數 | |
---|---|
DeviceManager () 應從 |
公共方法 | |
---|---|
void | addAvailableDevice (IDevice stubDevice) |
void | addDeviceMonitor ( IDeviceMonitor mon) 添加一個 |
void | addFastbootDevice ( DeviceManager.FastbootDevice fastbootDevice) |
void | addFastbootListener ( IDeviceManager.IFastbootListener listener) 通知管理器偵聽器對快速啟動狀態更改感興趣。 |
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) 輸出一個用戶友好的描述,其中包含已知設備列表、它們的狀態以及常用 |
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) init ( IDeviceSelection globalDeviceFilter, globalDeviceMonitors, IManagedTestDeviceFactory deviceFactory) 初始化設備管理器。 |
void | init ( IDeviceSelection globalDeviceFilter, globalDeviceMonitors) init ( IDeviceSelection globalDeviceFilter, globalDeviceMonitors) 初始化設備管理器。 |
void | init () 初始化設備管理器。 |
boolean | isEmulator (String serial) 確定給定的序列號是否代表模擬器 |
boolean | isFileSystemMountCheckEnabled () 返回我們是否應該在 |
boolean | isNullDevice (String serial) 確定給定序列號是否代表空設備 |
void | killEmulator ( ITestDevice device) 關閉給定的模擬器。 |
void | launchEmulator ( ITestDevice device, long bootTimeout, IRunUtil runUtil, emulatorArgs) launchEmulator ( ITestDevice device, long bootTimeout, IRunUtil runUtil, emulatorArgs) 啟動模擬器的輔助方法。 |
listAllDevices (boolean shortDescriptor) 返回所有已知設備的設備描述符列表 | |
listAllDevices () 返回所有已知設備的設備描述符列表 | |
ITestDevice | reconnectDeviceToTcp ( ITestDevice usbDevice) 將給定的 usb 設備切換到 adb-over-tcp 模式,然後通過 |
void | removeDeviceMonitor ( IDeviceMonitor mon) 刪除以前添加的 |
void | removeFastbootListener ( IDeviceManager.IFastbootListener listener) 通知管理器偵聽器不再對 fastboot 狀態更改感興趣。 |
void | restartAdbBridge () 重新啟動(如果調用了 |
void | stopAdbBridge () 停止 adb 橋和服務依賴於 adb 連接。 |
void | terminate () 停止設備監控服務,並終止 ddm 庫。 |
void | terminateDeviceMonitor () 停止設備監視器。 |
void | terminateDeviceRecovery () 停止設備恢復線程。 |
void | terminateHard (String reason) |
void | terminateHard () 類似於 |
boolean | waitForFirstDeviceAdded (long timeout) 等到連接第一個物理設備。 |
字段
UNKNOWN_DISPLAY_STRING
public static final String UNKNOWN_DISPLAY_STRING
顯示未知屬性的字符串
mDvcMon
protected DeviceMonitorMultiplexer mDvcMon
mFastbootEnabled
protected boolean mFastbootEnabled
公共構造函數
公共方法
添加可用設備
public void addAvailableDevice (IDevice stubDevice)
參數 | |
---|---|
stubDevice | IDevice |
添加FastbootDevice
public void addFastbootDevice (DeviceManager.FastbootDevice fastbootDevice)
參數 | |
---|---|
fastbootDevice | DeviceManager.FastbootDevice |
添加FastbootListener
public void addFastbootListener (IDeviceManager.IFastbootListener listener)
通知管理器偵聽器對快速啟動狀態更改感興趣。
目前,如果有一個或多個活動偵聽器,IDeviceManager
將僅在 fastboot 中監視設備。 TODO:這有點 hack - 找到更好的解決方案添加監控 TcpFastboot 設備
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 |
connectToTcpDevice
public 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 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 : 是否也顯示存根設備。 |
executeCmdOnAvailableDevice
public CommandResult executeCmdOnAvailableDevice (String serial, String command, long timeout, TimeUnit timeUnit)
在可用設備上執行 shell 命令的輔助方法。
參數 | |
---|---|
serial | String :設備序列號。 |
command | String :shell 命令。 |
timeout | long :命令完成的時間量。 |
timeUnit | TimeUnit :超時的單位。 |
退貨 | |
---|---|
CommandResult | 一個CommandResult 。 |
executeGlobalAdbCommand
public String executeGlobalAdbCommand (String... cmdArgs)
執行不針對特定設備的 adb 命令,例如。 '亞行連接'
退貨 | |
---|---|
String | 如果命令成功則為標準輸出,否則為空。 |
強制分配設備
public ITestDevice forceAllocateDevice (String serial)
粗魯地分配設備,即使它當前不可用。
如果設備已經分配,則不會有任何影響。參數 | |
---|---|
serial | String : 要分配的設備序列號 |
退貨 | |
---|---|
ITestDevice | ITestDevice ,如果無法分配則為null |
免費設備
public void freeDevice (ITestDevice device, FreeDeviceState deviceState)
將設備返回到池中
嘗試返回之前未分配的設備將被忽略。參數 | |
---|---|
device | ITestDevice :要釋放的ITestDevice |
deviceState | FreeDeviceState : FreeDeviceState 。用於控制設備是否返回可用設備池。 |
獲取 AdbPath
public String getAdbPath ()
返回要使用的 adb 二進製文件的路徑。
退貨 | |
---|---|
String |
獲取 Adb 版本
public String getAdbVersion ()
獲取設備管理器當前使用的 adb 版本。
退貨 | |
---|---|
String |
獲取設備描述符
public DeviceDescriptor getDeviceDescriptor (String serial)
返回具有給定序列號的 DeviceDescriptor。
參數 | |
---|---|
serial | String : 要獲取的設備序列號 |
退貨 | |
---|---|
DeviceDescriptor | 所選設備的DeviceDescriptor ,如果序列號與已知設備不匹配,則為 null。 |
getFastbootPath
public String getFastbootPath ()
返回要使用的 fastboot 二進製文件的路徑。
退貨 | |
---|---|
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 ()
初始化設備管理器。這必須在調用任何其他方法之前調用一次且僅調用一次。
是模擬器
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 |
列出所有設備
publiclistAllDevices (boolean shortDescriptor)
返回所有已知設備的設備描述符列表
參數 | |
---|---|
shortDescriptor | boolean : 是否將描述符限制為最小信息 |
退貨 | |
---|---|
所有已知設備的DeviceDescriptor 列表 |
重新連接設備到 Tcp
public ITestDevice reconnectDeviceToTcp (ITestDevice usbDevice)
將給定的 usb 設備切換到 adb-over-tcp 模式,然後通過connectToTcpDevice(String)
連接到它的輔助方法。
參數 | |
---|---|
usbDevice | ITestDevice : 當前處於 usb 模式的設備 |
退貨 | |
---|---|
ITestDevice | 在 tcp 模式下新分配的ITestDevice 或null 如果無法形成 tcp 連接 |
投擲 | |
---|---|
DeviceNotAvailableException |
移除設備監視器
public void removeDeviceMonitor (IDeviceMonitor mon)
刪除以前添加的IDeviceMonitor
。如果未添加 mon,則無效。
參數 | |
---|---|
mon | IDeviceMonitor |
移除FastbootListener
public void removeFastbootListener (IDeviceManager.IFastbootListener listener)
通知管理器偵聽器不再對 fastboot 狀態更改感興趣。
停止 AdbBridge
public void stopAdbBridge ()
停止 adb 橋和服務依賴於 adb 連接。
終止
public void terminate ()
停止設備監控服務,並終止 ddm 庫。
這必須在應用程序終止時調用。終止設備監視器
public void terminateDeviceMonitor ()
停止設備監視器。
終止設備恢復
public void terminateDeviceRecovery ()
停止設備恢復線程。
等待第一個設備添加
public boolean waitForFirstDeviceAdded (long timeout)
等到連接第一個物理設備。如果之前連接過設備,則直接返回True。如果沒有添加設備,則在超時後返回 false。
參數 | |
---|---|
timeout | long :返回 false 之前等待的時間(以毫秒為單位)。 |
退貨 | |
---|---|
boolean |
這個頁面中的內容和程式碼範例均受《內容授權》中的授權所規範。Java 與 OpenJDK 是 Oracle 和/或其關係企業的商標或註冊商標。
上次更新時間:2023-03-30 (世界標準時間)。