IDeviceStateMonitor

public interface IDeviceStateMonitor

com.android.tradefed.device.IDeviceStateMonitor


提供用于监控 IDevice 状态的设施。

只有当以下四个事件均为 true 时,设备才会被视为“可用”: 1. 设备处于在线状态,即可通过 DDMS/adb 看到(waitForDeviceOnline() 2. 设备已设置 dev.bootcomplete 标志(@link #waitForBootComplete(long)} 3. 设备的软件包管理器响应迅速(可能无法运行) 4. 挂载设备的外部存储空间 3. 和 4. 属于 waitForDeviceAvailable()

摘要

公共方法

default void attachFinalState(TestDeviceState finalState)

附加最终状态以在达到时中止 waitForDeviceState。

abstract TestDeviceState getDeviceState()

获取设备状态。

abstract String getFastbootSerialNumber()

获取 fastboot 模式序列号。

abstract String getMountPoint(String mountName)

返回一个挂载点。

abstract String getSerialNumber()

获取设备的序列号。

abstract boolean isAdbTcp()
abstract void setDefaultAvailableTimeout(long timeoutMs)

waitForDeviceAvailable() 中设置等待设备可用的时间(以毫秒为单位)。

abstract void setDefaultOnlineTimeout(long timeoutMs)

waitForDeviceOnline() 中设置等待设备上线的时间(以毫秒为单位)。

abstract void setFastbootSerialNumber(String serial)

设置 fastboot 模式序列号。

abstract void setIDevice(IDevice device)

更新当前 IDevice。

abstract void setState(TestDeviceState deviceState)

设置设备当前状态。

abstract boolean waitForBootComplete(long waitTime)

阻塞,直到设备的启动完成标志设置完毕

abstract IDevice waitForDeviceAvailable(long waitTime)

等待设备响应并可供测试。

abstract IDevice waitForDeviceAvailable()

等待设备响应并可供测试。

default IDevice waitForDeviceAvailableInRecoverPath(long waitTime)

waitForDeviceAvailable(long) 的特殊变体,用于在恢复路径中调用以量身定制处理方式。

abstract boolean waitForDeviceBootloader(long waitTime)

等待设备进入引导加载程序。

abstract void waitForDeviceBootloaderStateUpdate()

等待设备引导加载程序状态刷新

abstract boolean waitForDeviceFastbootd(String fastbootPath, long waitTime)

等待设备进入 fastbootd 状态。

abstract IDevice waitForDeviceInRecovery()

使用标准启动超时等待设备进入恢复模式。

abstract boolean waitForDeviceInRecovery(long waitTime)

等待设备进入“adb recovery”状态

abstract boolean waitForDeviceInSideload(long waitTime)

等待设备处于“adb 侧加载”状态

abstract boolean waitForDeviceNotAvailable(long waitTime)

等待设备不可用

abstract IDevice waitForDeviceOnline()

使用标准启动超时等待设备上线。

abstract IDevice waitForDeviceOnline(long time)

等待设备上线。

abstract boolean waitForDeviceShell(long waitTime)

等待设备响应基本 adb shell 命令。

公共方法

attachFinalState

public void attachFinalState (TestDeviceState finalState)

附加最终状态,以便在达到时中止 waitForDeviceState。

参数
finalState TestDeviceState

getDeviceState

public abstract TestDeviceState getDeviceState ()

获取设备状态。

返回
TestDeviceState 设备的 TestDeviceState

getFastbootSerialNumber

public abstract String getFastbootSerialNumber ()

获取 fastboot 模式序列号。

返回
String

getMountPoint

public abstract String getMountPoint (String mountName)

返回一个挂载点。

如果 IDevice 中的缓存信息不可用,则直接查询设备。

TODO:将此行为移至 IDevice.getMountPoint(String)

参数
mountName String:挂载点的名称

返回
String 装载点或 null

抛出
DeviceNotAvailableException

getSerialNumber

public abstract String getSerialNumber ()

获取设备的序列号。

返回
String

isAdbTcp

public abstract boolean isAdbTcp ()

返回
boolean true(如果设备通过 TCP 连接到 adb)

setDefaultAvailableTimeout

public abstract void setDefaultAvailableTimeout (long timeoutMs)

waitForDeviceAvailable() 中设置等待设备可用的时间(以毫秒为单位)。

参数
timeoutMs long

setDefaultOnlineTimeout

public abstract void setDefaultOnlineTimeout (long timeoutMs)

waitForDeviceOnline() 中设置等待设备上线的时间(以毫秒为单位)。

参数
timeoutMs long

setFastbootSerialNumber

public abstract void setFastbootSerialNumber (String serial)

设置 fastboot 模式序列号。

参数
serial String

setIDevice

public abstract void setIDevice (IDevice device)

更新当前 IDevice。

setState

public abstract void setState (TestDeviceState deviceState)

设置设备当前状态。

waitForBootComplete

public abstract boolean waitForBootComplete (long waitTime)

阻塞,直到设备的启动完成标志设置完毕

参数
waitTime long:等待时间(以毫秒为单位)

返回
boolean

waitForDeviceAvailable

public abstract IDevice waitForDeviceAvailable (long waitTime)

等待设备响应并可供测试。目前,这意味着软件包管理器和外部存储空间可用。

参数
waitTime long:等待时间(以毫秒为单位)

返回
IDevice IDevice,如果设备在时间到期前上线。否则为 null

waitForDeviceAvailable

public abstract IDevice waitForDeviceAvailable ()

等待设备响应并可供测试。

等同于 waitForDeviceAvailable(long),但使用默认的设备启动超时设置。

返回
IDevice IDevice,如果设备在时间到期前上线。否则为 null

waitForDeviceAvailableInRecoverPath

public IDevice waitForDeviceAvailableInRecoverPath (long waitTime)

waitForDeviceAvailable(long) 的特殊变体,用于在恢复路径中调用以量身定制处理方式。

参数
waitTime long

返回
IDevice

抛出
DeviceNotAvailableException 设备处于不可用状态。

waitForDeviceBootloader

public abstract boolean waitForDeviceBootloader (long waitTime)

等待设备进入引导加载程序。

参数
waitTime long:等待的最长时间(以毫秒为单位)

返回
boolean true(如果设备在时间到期前处于引导加载程序中)

waitForDeviceBootloaderStateUpdate

public abstract void waitForDeviceBootloaderStateUpdate ()

等待设备引导加载程序状态刷新

waitForDeviceFastbootd

public abstract boolean waitForDeviceFastbootd (String fastbootPath, 
                long waitTime)

等待设备进入 fastbootd。

参数
fastbootPath String:要使用的 fastboot 二进制文件的路径。

waitTime long:等待的最长时间(以毫秒为单位)

返回
boolean 如果设备在时间到期前处于 fastbootd 状态,则为 true

waitForDeviceInRecovery

public abstract IDevice waitForDeviceInRecovery ()

使用标准启动超时等待设备进入恢复模式。

返回
IDevice IDevice(如果设备在超时之前进入恢复状态)。null 否则。

waitForDeviceInRecovery

public abstract boolean waitForDeviceInRecovery (long waitTime)

等待设备进入“adb recovery”状态

参数
waitTime long:等待的最长时间(以毫秒为单位)

返回
boolean 如果设备在超时之前处于恢复模式,则返回 True;否则返回 False。

waitForDeviceInSideload

public abstract boolean waitForDeviceInSideload (long waitTime)

等待设备处于“adb 侧加载”状态

参数
waitTime long:等待的最长时间(以毫秒为单位)

返回
boolean 如果设备在超时之前处于旁加载状态,则返回 true;否则返回 false。

waitForDeviceNotAvailable

public abstract boolean waitForDeviceNotAvailable (long waitTime)

等待设备不可用

参数
waitTime long:等待的最长时间(以毫秒为单位)

返回
boolean 如果设备变为不可用,则为 true

waitForDeviceOnline

public abstract IDevice waitForDeviceOnline ()

使用标准启动超时等待设备上线。

注意:当设备通过 DDMS 可见时,此方法将返回。这并不保证设备实际上会响应 adb 命令 - 请改用 waitForDeviceAvailable()

返回
IDevice IDevice,如果设备在时间到期前上线。否则为 null

waitForDeviceOnline

public abstract IDevice waitForDeviceOnline (long time)

等待设备上线。

注意:当设备通过 DDMS 可见时,此方法将返回。这并不保证设备实际上会响应 adb 命令 - 请改用 waitForDeviceAvailable()

参数
time long:等待的最长时间(以毫秒为单位)

返回
IDevice IDevice,如果设备在时间到期前上线。否则为 null

waitForDeviceShell

public abstract boolean waitForDeviceShell (long waitTime)

等待设备响应基本 adb shell 命令。

参数
waitTime long:等待时间(以毫秒为单位)

返回
boolean 如果设备在 waitTime 过期之前有响应,则返回 true