ID設備管理器

public interface IDeviceManager

com.android.tradefed.device.IDeviceManager


用於管理用於測試的可用設備集的界面。

概括

嵌套類

interface IDeviceManager.IFastbootListener

fastboot 狀態變化的偵聽器。

公共方法

abstract void addDeviceMonitor ( IDeviceMonitor mon)

添加一個IDeviceMonitor

abstract void addFastbootListener ( IDeviceManager.IFastbootListener listener)

通知管理器偵聽器對快速啟動狀態更改感興趣。

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 連接到設備

此方法分配一個新設備,最終應通過disconnectFromTcpDevice(com.android.tradefed.device.ITestDevice)釋放該設備

返回的ITestDevice將在線,但可能沒有響應。

abstract boolean disconnectFromTcpDevice ( ITestDevice tcpDevice)

斷開與 adb-over-tcp 連接的設備的連接。

abstract void displayDevicesInfo (PrintWriter printWriter, boolean includeStub)

輸出一個用戶友好的描述,其中包含已知設備列表、它們的狀態以及常用IDeviceSelection選項的值。

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

返回我們是否應該在NativeDeviceStateMonitor中檢查文件系統是否已正確安裝。

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)

返回所有已知設備的設備描述符列表

abstract listAllDevices ()

返回所有已知設備的設備描述符列表

abstract ITestDevice reconnectDeviceToTcp ( ITestDevice usbDevice)

將給定的 usb 設備切換到 adb-over-tcp 模式,然後通過connectToTcpDevice(String)連接到它的輔助方法。

abstract void removeDeviceMonitor ( IDeviceMonitor mon)

刪除以前添加的IDeviceMonitor

abstract void removeFastbootListener ( IDeviceManager.IFastbootListener listener)

通知管理器偵聽器不再對 fastboot 狀態更改感興趣。

abstract void restartAdbBridge ()

重新啟動(如果調用了stopAdbBridge() )adb 橋和服務取決於 adb 連接。

abstract void stopAdbBridge ()

停止 adb 橋和服務依賴於 adb 連接。

abstract void terminate ()

停止設備監控服務,並終止 ddm 庫。

abstract void terminateDeviceMonitor ()

停止設備監視器。

abstract void terminateDeviceRecovery ()

停止設備恢復線程。

default void terminateHard (String reason)

terminateHard()

abstract void terminateHard ()

類似於terminate() ,但也試圖強制關閉 adb。

abstract boolean waitForFirstDeviceAdded (long timeout)

等到連接第一個物理設備。

公共方法

添加設備監視器

public abstract void addDeviceMonitor (IDeviceMonitor mon)

添加一個IDeviceMonitor

參數
mon IDeviceMonitor

添加FastbootListener

public abstract void addFastbootListener (IDeviceManager.IFastbootListener listener)

通知管理器偵聽器對快速啟動狀態更改感興趣。

目前,如果有一個或多個活動偵聽器, IDeviceManager將僅在 fastboot 中監視設備。

TODO:這有點 hack - 找到更好的解決方案

添加監控 TcpFastboot 設備

public abstract void addMonitoringTcpFastbootDevice (String serial, 
                String fastboot_serial)

將設備添加到 fastboot 監視器。 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 連接,則為ITestDevicenull

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 : 是否也顯示存根設備。

executeCmdOnAvailableDevice

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

在可用設備上執行 shell 命令的輔助方法。

參數
serial String :設備序列號。

command String :shell 命令。

timeout long :命令完成的時間量。

timeUnit TimeUnit :超時的單位。

退貨
CommandResult一個CommandResult

強制分配設備

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

獲取 Adb 版本

public abstract String getAdbVersion ()

獲取設備管理器當前使用的 adb 版本。

退貨
String

獲取設備描述符

public abstract DeviceDescriptor getDeviceDescriptor (String serial)

返回具有給定序列號的 DeviceDescriptor。

參數
serial String : 要獲取的設備序列號

退貨
DeviceDescriptor所選設備的DeviceDescriptor ,如果序列號與已知設備不匹配,則為 null。

getFastbootPath

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 abstract  listAllDevices (boolean shortDescriptor)

返回所有已知設備的設備描述符列表

參數
shortDescriptor boolean : 是否將描述符限制為最小信息

退貨
所有已知設備的DeviceDescriptor列表

列出所有設備

public abstract  listAllDevices ()

返回所有已知設備的設備描述符列表

退貨
所有已知設備的DeviceDescriptor列表

重新連接設備到 Tcp

public abstract ITestDevice reconnectDeviceToTcp (ITestDevice usbDevice)

將給定的 usb 設備切換到 adb-over-tcp 模式,然後通過connectToTcpDevice(String)連接到它的輔助方法。

參數
usbDevice ITestDevice : 當前處於 usb 模式的設備

退貨
ITestDevice在 tcp 模式下新分配的ITestDevicenull如果無法形成 tcp 連接

投擲
DeviceNotAvailableException如果與usbDevice連接丟失並且無法恢復

移除設備監視器

public abstract void removeDeviceMonitor (IDeviceMonitor mon)

刪除以前添加的IDeviceMonitor 。如果未添加 mon,則無效。

參數
mon IDeviceMonitor

移除FastbootListener

public abstract void removeFastbootListener (IDeviceManager.IFastbootListener listener)

通知管理器偵聽器不再對 fastboot 狀態更改感興趣。

重啟 AdbBridge

public abstract void restartAdbBridge ()

重新啟動(如果調用了stopAdbBridge() )adb 橋和服務取決於 adb 連接。

停止 AdbBridge

public abstract void stopAdbBridge ()

停止 adb 橋和服務依賴於 adb 連接。

終止

public abstract void terminate ()

停止設備監控服務,並終止 ddm 庫。

這必須在應用程序終止時調用。

也可以看看:

終止設備監視器

public abstract void terminateDeviceMonitor ()

停止設備監視器。

終止設備恢復

public abstract void terminateDeviceRecovery ()

停止設備恢復線程。

硬終止

public void terminateHard (String reason)

terminateHard()

參數
reason String :可選的終止原因。

硬終止

public abstract void terminateHard ()

類似於terminate() ,但也試圖強制關閉 adb。

等待第一個設備添加

public abstract boolean waitForFirstDeviceAdded (long timeout)

等到連接第一個物理設備。如果之前連接過設備,則直接返回True。如果沒有添加設備,則在超時後返回 false。

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

退貨
boolean