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