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()

取得快速系統啟動模式序號。

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(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)

等待裝置進入快速啟動模式。

abstract IDevice waitForDeviceInRecovery()

使用標準啟動逾時值,等待裝置進入 Recovery 模式。

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 殼層指令。

公用方法

attachFinalState

public void attachFinalState (TestDeviceState finalState)

附加最終狀態,以便在達到該狀態時中止 waitForDeviceState。

參數
finalState TestDeviceState

getDeviceState

public abstract TestDeviceState getDeviceState ()

取得裝置狀態。

傳回
TestDeviceState 裝置的 TestDeviceState

getFastbootSerialNumber

public abstract String getFastbootSerialNumber ()

取得快速啟動模式序號。

傳回
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)

設定快速啟動模式序號。

參數
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)

等待裝置進入快速系統啟動模式。

參數
fastbootPath String:要使用的 fastboot 二進位檔路徑。

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

傳回
boolean true 如果裝置在時間到期前處於快速啟動狀態

waitForDeviceInRecovery

public abstract IDevice waitForDeviceInRecovery ()

使用標準啟動逾時值,等待裝置進入 Recovery 模式。

傳回
IDevice 如果裝置在時間到期前恢復,則會傳送 IDevice。否則為 null

waitForDeviceInRecovery

public abstract boolean waitForDeviceInRecovery (long waitTime)

等待裝置進入「adb recovery」狀態

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

傳回
boolean 如果裝置在逾時前處於復原狀態,則傳回「是」;否則傳回「否」。

waitForDeviceInSideload

public abstract boolean waitForDeviceInSideload (long waitTime)

等待裝置進入「adb sideload」狀態

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

傳回
boolean 如果裝置在逾時前處於側載狀態,則傳回「是」;否則傳回「否」。

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 殼層指令。

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

傳回
boolean 如果裝置在 waitTime 到期前開始回應,則為 true