裝置經理
public class DeviceManager
extends Object
implements IDeviceManager
java.lang.Object | |
↳ | com.android.tradefed.device.DeviceManager |
概括
嵌套類 | |
---|---|
class | DeviceManager.FastbootDevice 處於快速啟動模式的設備的表示。 |
領域 | |
---|---|
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) 通知管理器偵聽器對 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) 輸出使用者友善的描述,其中包含已知設備的清單、其狀態以及常用 |
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) 通知管理器偵聽器不再對快速啟動狀態變更感興趣。 |
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
顯示未知屬性的字串
mFastboot啟用
protected boolean mFastbootEnabled
公共構造函數
公共方法
新增可用設備
public void addAvailableDevice (IDevice stubDevice)
參數 | |
---|---|
stubDevice | IDevice |
新增快速啟動設備
public void addFastbootDevice (DeviceManager.FastbootDevice fastbootDevice)
參數 | |
---|---|
fastbootDevice | DeviceManager.FastbootDevice |
新增FastbootListener
public void addFastbootListener (IDeviceManager.IFastbootListener listener)
通知管理器偵聽器對 fastboot 狀態變更感興趣。
目前,如果有一個或多個活動偵聽器,IDeviceManager
將只監視 fastboot 中的裝置。 TODO:這有點像駭客 - 找到更好的解決方案新增監控TcpFastbootDevice
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 |
連接到Tcp設備
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 |
斷開與Tcp設備的連接
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 :是否也顯示存根設備。 |
在可用裝置上執行Cmd
public CommandResult executeCmdOnAvailableDevice (String serial, String command, long timeout, TimeUnit timeUnit)
在可用設備上執行 shell 指令的輔助方法。
參數 | |
---|---|
serial | String :裝置序號。 |
command | String :shell 指令。 |
timeout | long :指令完成的時間量。 |
timeUnit | TimeUnit :超時的單位。 |
退貨 | |
---|---|
CommandResult | 一個CommandResult 。 |
執行GlobalAdb指令
public String executeGlobalAdbCommand (String... cmdArgs)
執行不針對特定設備的 adb 指令,例如。 '亞行連接'
退貨 | |
---|---|
String | 如果指令成功則 std 輸出,否則為 null。 |
強制分配設備
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。 |
取得快速啟動路徑
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 |
為空設備
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 ,如果無法形成 tcp 連線則null |
投擲 | |
---|---|
DeviceNotAvailableException |
刪除設備監視器
public void removeDeviceMonitor (IDeviceMonitor mon)
刪除先前新增的IDeviceMonitor
。如果未新增 mon,則無效。
參數 | |
---|---|
mon | IDeviceMonitor |
刪除FastbootListener
public void removeFastbootListener (IDeviceManager.IFastbootListener listener)
通知管理器偵聽器不再對快速啟動狀態變更感興趣。
停止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-12-01 (世界標準時間)。