裝置經理

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

DeviceManager 應該從GlobalConfiguration中檢索

公共方法

void addAvailableDevice (IDevice stubDevice)
void addDeviceMonitor ( IDeviceMonitor mon)

添加IDeviceMonitor

void addFastbootListener ( IDeviceManager.IFastbootListener listener)

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

void addMonitoringTcpFastbootDevice (String serial, String fastboot_serial)

將設備添加到快速啟動監視器。

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)

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

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

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

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)

返回所有已知設備的 DeviceDescriptor 列表

listAllDevices ()

返回所有已知設備的 DeviceDescriptor 列表

ITestDevice reconnectDeviceToTcp ( ITestDevice usbDevice)

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

void removeDeviceMonitor ( IDeviceMonitor mon)

刪除以前添加的IDeviceMonitor

void removeFastbootListener ( IDeviceManager.IFastbootListener listener)

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

void restartAdbBridge ()

重新啟動(如果stopAdbBridge() ) adb 橋和服務依賴於 adb 連接。

void stopAdbBridge ()

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

void terminate ()

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

void terminateDeviceMonitor ()

停止設備監視器。

void terminateDeviceRecovery ()

停止設備恢復線程。

void terminateHard (String reason)

terminateHard()

void terminateHard ()

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

boolean waitForFirstDeviceAdded (long timeout)

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

字段

UNKNOWN_DISPLAY_STRING

public static final String UNKNOWN_DISPLAY_STRING

顯示未知屬性的字符串

mDvcMon

protected DeviceMonitorMultiplexer mDvcMon

mFastbootEnabled

protected boolean mFastbootEnabled

公共構造函數

裝置經理

public DeviceManager ()

DeviceManager 應該從GlobalConfiguration中檢索

公共方法

添加可用設備

public void addAvailableDevice (IDevice stubDevice)

參數
stubDevice IDevice

添加設備監視器

public void addDeviceMonitor (IDeviceMonitor mon)

添加IDeviceMonitor

參數
mon IDeviceMonitor

addFastbootListener

public void addFastbootListener (IDeviceManager.IFastbootListener listener)

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

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

TODO:這有點小技巧 - 找到更好的解決方案

addMonitoringTcpFastbootDevice

public void addMonitoringTcpFastbootDevice (String serial, 
                String fastboot_serial)

將設備添加到快速啟動監視器。 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

分配設備

public ITestDevice allocateDevice ()

請求物理設備進行測試

退貨
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 連接,則ITestDevicenull

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

執行CmdOnAvailableDevice

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

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

參數
serial String : 設備序列號。

command String :shell 命令。

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

timeUnit TimeUnit : 超時單位。

退貨
CommandResult一個CommandResult

執行GlobalAdbCommand

public String executeGlobalAdbCommand (String... cmdArgs)

執行不針對特定設備的 adb 命令,例如。 '亞行連接'

退貨
String如果命令成功,則 std 輸出 null 否則。

forceAllocateDevice

public ITestDevice forceAllocateDevice (String serial)

粗魯地分配設備,即使它當前不可用。

如果設備已分配,則無效。

參數
serial String : 要分配的設備序列號

退貨
ITestDevice ITestDevice ,如果無法分配,則返回null

免費設備

public void freeDevice (ITestDevice device, 
                FreeDeviceState deviceState)

將設備返回到池中

返回先前未分配的設備的嘗試將被忽略。

參數
device ITestDevice : 要釋放的ITestDevice

deviceState FreeDeviceStateFreeDeviceState 。用於控制設備是否返回到可用設備池。

獲取AdbPath

public String getAdbPath ()

返回要使用的 adb 二進製文件的路徑。

退貨
String

獲取AdbVersion

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

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

列出所有設備

public  listAllDevices (boolean shortDescriptor)

返回所有已知設備的 DeviceDescriptor 列表

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

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

列出所有設備

public  listAllDevices ()

返回所有已知設備的 DeviceDescriptor 列表

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

重新連接DeviceToTcp

public ITestDevice reconnectDeviceToTcp (ITestDevice usbDevice)

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

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

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

投擲
DeviceNotAvailableException

刪除設備監視器

public void removeDeviceMonitor (IDeviceMonitor mon)

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

參數
mon IDeviceMonitor

移除FastbootListener

public void removeFastbootListener (IDeviceManager.IFastbootListener listener)

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

重啟AdbBridge

public void restartAdbBridge ()

重新啟動(如果stopAdbBridge() ) adb 橋和服務依賴於 adb 連接。

停止AdbBridge

public void stopAdbBridge ()

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

終止

public void terminate ()

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

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

終止設備監視器

public void terminateDeviceMonitor ()

停止設備監視器。

終止設備恢復

public void terminateDeviceRecovery ()

停止設備恢復線程。

硬終止

public void terminateHard (String reason)

terminateHard()

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

硬終止

public void terminateHard ()

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

waitForFirstDeviceAdded

public boolean waitForFirstDeviceAdded (long timeout)

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

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

退貨
boolean