IDeviceManager

public interface IDeviceManager

com.android.tradefed.device.IDeviceManager


用于管理可用于测试的设备集的接口。

摘要

嵌套类

interface IDeviceManager.IFastbootListener

用于 fastboot 状态变化的监听器。 

公共方法

abstract void addDeviceMonitor(IDeviceMonitor mon)

添加了 IDeviceMonitor

abstract void addFastbootListener(IDeviceManager.IFastbootListener listener)

告知管理器监听器对 fastboot 状态变化感兴趣。

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)

使用设备过滤器初始化设备管理器。

abstract void init()

初始化设备管理器。

abstract boolean isEmulator(String serial)

确定给定序列是否代表模拟器

default boolean isFileSystemMountCheckEnabled()

返回是否应该在 NativeDeviceStateMonitor 中检查文件系统是否 正确安装

abstract boolean isNullDevice(String serial)

确定给定序列号是否表示 null 设备

abstract void killEmulator(ITestDevice device)

关闭给定模拟器。

abstract void 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 模式,然后连接到 通过 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)

等待第一个实体设备连接。

公共方法

addDeviceMonitor

public abstract void addDeviceMonitor (IDeviceMonitor mon)

添加了 IDeviceMonitor

参数
mon IDeviceMonitor

addFastbootListener

public abstract void addFastbootListener (IDeviceManager.IFastbootListener listener)

告知管理器监听器对 fastboot 状态变化感兴趣。

目前,IDeviceManager 只会监控 fastboot 中的设备(如果存在或 更多处于活跃状态的监听器

待办事项:这有点小窍门 - 寻找更好的解决方案

addMonitoringTcpFastbootDevice

public abstract void addMonitoringTcpFastbootDevice (String serial, 
                String fastboot_serial)

将设备添加到 fastboot 监控。fastboot 监控器将使用“fastboot_serial”更改为 与设备通信

参数
serial String:设备的序列号。

fastboot_serial String:设备的 fastboot 模式序列号。

allocateDevice

public abstract ITestDevice allocateDevice (IDeviceSelection options, 
                boolean isTemporary)

请求测试符合特定条件的设备。

参数
options IDeviceSelection:设备应满足的 IDeviceSelection

isTemporary boolean:是否应创建临时 NullDevice。

返回
ITestDevice ITestDevice(用于测试),或 null(如果不可用)

allocateDevice

public abstract ITestDevice allocateDevice (IDeviceSelection options)

请求测试符合特定条件的设备。

参数
options IDeviceSelection:设备应满足的 IDeviceSelection

返回
ITestDevice ITestDevice(用于测试),或 null(如果有) 不可用

allocateDevice

public abstract ITestDevice allocateDevice ()

请求实体设备进行测试

返回
ITestDevice ITestDevice(用于测试),或 null(如果不可用)

连接到 TcpDevice

public abstract ITestDevice connectToTcpDevice (String ipAndPort)

使用 adb-over-tcp 连接到设备

此方法会分配新设备,该设备最终应通过 disconnectFromTcpDevice(com.android.tradefed.device.ITestDevice)

返回的ITestDevice将连接到网络,但可能没有响应。

请注意,在通过 tcp 连接的设备上执行重新启动等操作会切断 建立 TCP 连接,从而导致 DeviceNotAvailableException

参数
ipAndPort String:要连接的设备的原始 IP 地址和端口

返回
ITestDevice ITestDevicenull(如果无法建立 tcp 连接)

从 TcpDevice 断开连接

public abstract boolean disconnectFromTcpDevice (ITestDevice tcpDevice)

断开与 adb-over-tcp 连接的设备的连接。

将设备切换回 USB 模式,并将其释放。

参数
tcpDevice ITestDevice:当前处于 tcp 模式的设备,之前通过 connectToTcpDevice(String)

返回
boolean 如果成功切换到 USB 模式,则为 true

displayDevicesInfo

public abstract void displayDevicesInfo (PrintWriter printWriter, 
                boolean includeStub)

输出简单易懂的说明,其中包含已知设备、设备状态和值的列表 了解常用的 IDeviceSelection 选项。

参数
printWriter PrintWriter:用于输出说明的 ERROR(/PrintWriter)

includeStub boolean:是否也显示桩设备。

executeCmdOnAvailableDevice(执行 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(如果无法分配)

freeDevice

public abstract void freeDevice (ITestDevice device, 
                FreeDeviceState state)

将设备退回至设备池

如果尝试退回之前尚未分配的设备,则将被忽略。

参数
device ITestDevice:要释放的 ITestDevice

state FreeDeviceStateFreeDeviceState。用于控制是否 将设备恢复到可用设备池。

getAdbPath

public abstract String getAdbPath ()

返回要使用的 adb 二进制文件的路径。

返回
String

getAdbVersion

public abstract String getAdbVersion ()

获取设备管理器当前使用的 adb 版本。

返回
String

获取设备描述符

public abstract DeviceDescriptor getDeviceDescriptor (String serial)

返回具有指定序列号的 DeviceDescriptor。

参数
serial String:要获取的设备序列号

返回
DeviceDescriptor 所选设备的 DeviceDescriptor;如果序列号不是 与已知设备匹配。

getFastbootPath

public abstract String getFastbootPath ()

返回要使用的 fastboot 二进制文件的路径。

返回
String

init

public abstract void init (IDeviceSelection globalDeviceFilter, 
                 deviceMonitors)

使用设备过滤器初始化设备管理器。此过滤条件可用于指示 DeviceManager 忽略某些已连接的设备。

参数
globalDeviceFilter IDeviceSelection:设备过滤条件

deviceMonitors

init

public abstract void init ()

初始化设备管理器。此方法必须在调用任何其他方法之前调用一次且仅一次, 方法。

isEmulator

public abstract boolean isEmulator (String serial)

确定给定序列是否代表模拟器

参数
serial String

返回
boolean

isFileSystemMountCheckEnabled

public boolean isFileSystemMountCheckEnabled ()

返回是否应该在 NativeDeviceStateMonitor 中检查文件系统是否 正确安装

返回
boolean

isNullDevice

public abstract boolean isNullDevice (String serial)

确定给定序列号是否表示 null 设备

参数
serial String

返回
boolean

killEmulator

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)

返回所有已知设备的 DeviceDescriptor 列表

参数
shortDescriptor boolean:是否将描述符限制为最少信息

返回
所有已知设备的 DeviceDescriptor 列表

列出所有设备

public abstract  listAllDevices ()

返回所有已知设备的 DeviceDescriptor 列表

返回
所有已知设备的 DeviceDescriptor 列表

重新连接设备 ToTcp

public abstract ITestDevice reconnectDeviceToTcp (ITestDevice usbDevice)

一种辅助方法,用于将给定的 USB 设备切换到 adb-over-tcp 模式,然后连接到 通过 connectToTcpDevice(String) 上传。

参数
usbDevice ITestDevice:当前处于 USB 模式的设备

返回
ITestDevice 在 tcp 模式下新分配的 ITestDevice;如果使用 tcp 模式,则为 null 无法形成连接

抛出
DeviceNotAvailableException 如果与 usbDevice 的连接已断开,并且 无法恢复

removeDeviceMonitor

public abstract void removeDeviceMonitor (IDeviceMonitor mon)

移除之前添加的 IDeviceMonitor。如果尚未添加 mon,则不会产生任何影响。

参数
mon IDeviceMonitor

removefastbootListener

public abstract void removeFastbootListener (IDeviceManager.IFastbootListener listener)

告知管理器监听器不再关注 fastboot 状态变化。

重启 AdbBridge

public abstract void restartAdbBridge ()

重启(如果调用了 stopAdbBridge())adb 网桥和服务依赖于 adb 连接。

stopAdbridge

public abstract void stopAdbBridge ()

停止 adb 网桥和服务依赖于 adb 连接。

终止

public abstract void terminate ()

停止设备监控服务,并终止 ddm 库。

必须在应用终止时调用。

terminateDeviceMonitor

public abstract void terminateDeviceMonitor ()

停止设备监视器。

terminateDeviceRecovery

public abstract void terminateDeviceRecovery ()

停止设备恢复线程。

terminateHard

public void terminateHard (String reason)

terminateHard()类似。

参数
reason String:终止的可选原因。

terminateHard

public abstract void terminateHard ()

terminate() 类似,但也会尝试强制关闭 adb。

waitForFirstDeviceAdded

public abstract boolean waitForFirstDeviceAdded (long timeout)

等待第一个实体设备连接。如果某个设备之前连接过, 直接返回 True。如果未添加设备,则会在超时后返回 false。

参数
timeout long:在返回 false 之前等待的时间(以毫秒为单位)。

返回
boolean