設備狀態監視器

public interface IDeviceStateMonitor

com.android.tradefed.device.IDeviceStateMonitor


提供用於監視IDevice狀態的工具。

當且僅當四個事件為真時,設備當前才被認為是“可用的”: 1. 設備在線,也可以通過 DDMS/adb 可見( waitForDeviceOnline() 2. 設備設置了 dev.bootcomplete 標誌(@link #waitForBootComplete(long)} 3. 設備的包管理器有響應(可能是 inop) 4. 設備的外部存儲已安裝 3. & 4. 是waitForDeviceAvailable()的一部分。

概括

公共方法

abstract TestDeviceState getDeviceState ()

獲取設備狀態。

abstract String getFastbootSerialNumber ()

獲取快速啟動模式序列號。

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)

設置快速啟動模式序列號。

abstract void setIDevice (IDevice device)

更新當前的 IDevice。

abstract void setState ( TestDeviceState deviceState)

設置設備當前狀態。

abstract boolean waitForBootComplete (long waitTime)

阻塞直到設備的啟動完成標誌被設置

abstract IDevice waitForDeviceAvailable ()

等待設備響應並可用於測試。

abstract IDevice waitForDeviceAvailable (long waitTime)

等待設備響應並可用於測試。

default IDevice waitForDeviceAvailableInRecoverPath (long waitTime)

在恢復路徑期間調用waitForDeviceAvailable(long)的特殊變體以定制處理。

abstract boolean waitForDeviceBootloader (long waitTime)

等待設備進入引導加載程序。

abstract void waitForDeviceBootloaderStateUpdate ()

等待設備引導加載程序狀態刷新

abstract boolean waitForDeviceFastbootd (String fastbootPath, long waitTime)

等待設備進入 fastbootd。

abstract boolean waitForDeviceInRecovery (long waitTime)

等待設備處於“adb recovery”狀態

abstract IDevice waitForDeviceInRecovery ()

使用標準啟動超時等待設備處於恢復模式。

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 命令。

公共方法

獲取設備狀態

public abstract TestDeviceState getDeviceState ()

獲取設備狀態。

退貨
TestDeviceState設備的TestDeviceState

getFastbootSerialNumber

public abstract String getFastbootSerialNumber ()

獲取快速啟動模式序列號。

退貨
String

獲取掛載點

public abstract String getMountPoint (String mountName)

返回一個掛載點。

如果IDevice中的緩存信息不可用,則直接查詢設備。

TODO:將此行為移至IDevice#getMountPoint(String)

參數
mountName String : 掛載點的名稱

退貨
String掛載點或null

投擲
DeviceNotAvailableException

獲取序列號

public abstract String getSerialNumber ()

獲取設備的序列號。

退貨
String

isAdbTcp

public abstract boolean isAdbTcp ()

退貨
boolean如果設備通過 tcp 連接到 adb,則為true

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)

設置快速啟動模式序列號。

參數
serial String

設置設備

public abstract void setIDevice (IDevice device)

更新當前的 IDevice。

設置狀態

public abstract void setState (TestDeviceState deviceState)

設置設備當前狀態。

等待啟動完成

public abstract boolean waitForBootComplete (long waitTime)

阻塞直到設備的啟動完成標誌被設置

參數
waitTime long : 等待的毫秒數

退貨
boolean

等待設備可用

public abstract IDevice waitForDeviceAvailable ()

等待設備響應並可用於測試。

等效於waitForDeviceAvailable(long) ,但使用默認設備啟動超時。

退貨
IDevice如果設備在時間到期之前在線,則IDevice 。否則null

等待設備可用

public abstract IDevice waitForDeviceAvailable (long waitTime)

等待設備響應並可用於測試。目前這意味著包管理器和外部存儲可用。

參數
waitTime 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如果設備在時間到期之前處於快速啟動狀態,則為true

waitForDeviceInRecovery

public abstract boolean waitForDeviceInRecovery (long waitTime)

等待設備處於“adb recovery”狀態

參數
waitTime long :等待的最長時間(以毫秒為單位)

退貨
boolean如果設備在超時之前處於恢復狀態,則為 True,否則為 False。

waitForDeviceInRecovery

public abstract IDevice waitForDeviceInRecovery ()

使用標準啟動超時等待設備處於恢復模式。

退貨
IDevice如果設備在時間到期之前恢復,則IDevice 。否則null

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