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。

default void clearTcpFastbootMonitor()

清除设备管理器中的所有状态。

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 sideload”状态

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

clearTcpFastbootMonitor

public void clearTcpFastbootMonitor ()

清除设备管理器中的所有状态。

getDeviceState

public abstract TestDeviceState getDeviceState ()

获取设备状态。

返回
TestDeviceState 设备的 TestDeviceState

getFastbootSerialNumber

public abstract String getFastbootSerialNumber ()

获取 fastboot 模式序列号。

返回
String

getMountPoint

public abstract String getMountPoint (String mountName)

返回装载点。

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

待办事项:将此行为移至 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 sideload”状态

参数
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