NativeDeviceStateMonitor

public class NativeDeviceStateMonitor
extends Object implements IDeviceStateMonitor

java.lang.Object
   ↳ com.android.tradefed.device.NativeDeviceStateMonitor


輔助類別,用於監控沒有架構支援的 IDevice 狀態。

摘要

常數

long MAX_CHECK_POLL_TIME

int MAX_OP_TIME

以毫秒為單位的「poll for responsiveness」指令最大作業時間

欄位

protected static final String PERM_DENIED_ERROR_PATTERN

公用建構函式

NativeDeviceStateMonitor(IDeviceManager mgr, IDevice device, boolean fastbootEnabled)

公用方法

void attachFinalState(TestDeviceState finalState)

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

TestDeviceState getDeviceState()

取得裝置狀態。

String getFastbootSerialNumber()

取得 Fastboot 模式序號。

String getMountPoint(String mountName)

傳回掛接點。

String getSerialNumber()

取得裝置的序號。

boolean isAdbTcp()

void setDefaultAvailableTimeout(long timeoutMs)

設定要透過 waitForDeviceAvailable() 使用裝置等待的時間 (毫秒)。

void setDefaultOnlineTimeout(long timeoutMs)

設定裝置透過 waitForDeviceOnline() 連上網路所需的時間 (毫秒)。

void setFastbootSerialNumber(String serial)

設定 Fastboot 模式序號。

void setIDevice(IDevice newDevice)

更新目前的 IDevice。

void setState(TestDeviceState deviceState)

設定裝置目前狀態。

boolean waitForBootComplete(long waitTime)

阻斷,直到裝置的啟動完成標記設定為止

IDevice waitForDeviceAvailable(long waitTime)

等待裝置回應並可供測試。

IDevice waitForDeviceAvailable()

等待裝置回應並可進行測試。

IDevice waitForDeviceAvailableInRecoverPath(long waitTime)

waitForDeviceAvailable(long) 的特殊變化版本,可在復原路徑中呼叫,以便針對處理方式進行調整。

boolean waitForDeviceBootloader(long time)

等待裝置進入 Bootloader。

void waitForDeviceBootloaderStateUpdate()

等待裝置系統啟動載入程式狀態更新

boolean waitForDeviceFastbootd(String fastbootPath, long time)

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

IDevice waitForDeviceInRecovery()

利用標準開機逾時,等待裝置處於復原模式。

boolean waitForDeviceInRecovery(long waitTime)

等待裝置處於「ADB 復原」狀態

boolean waitForDeviceInSideload(long waitTime)

等待裝置進入「ADB 側載」狀態

boolean waitForDeviceNotAvailable(long waitTime)

等待裝置無法使用

IDevice waitForDeviceOnline()

使用標準啟動逾時值,等待裝置上線。

IDevice waitForDeviceOnline(long waitTime)

等待裝置連上網路。

boolean waitForDeviceShell(long waitTime)

等待裝置回應基本 ADB 殼層指令。

受保護的方法

CollectingOutputReceiver createOutputReceiver()

已公開測試

long getCheckPollTime()

已公開測試

long getCurrentTime()

已公開測試

IDevice getIDevice()
boolean postOnlineCheck(long waitTime)

可對線上裝置進行的額外檢查

boolean waitForStoreMount(long waitTime)

等待裝置的外部儲存空間掛載。

常數

MAX_CHECK_POLL_TIME

protected static final long MAX_CHECK_POLL_TIME

常數值: 3000 (0x0000000000000bb8)

MAX_OP_TIME

protected static final int MAX_OP_TIME

「poll for responsiveness」指令的最大運算時間 (毫秒)

常數值: 10000 (0x00002710)

欄位

PERM_DENIED_ERROR_PATTERN

protected static final String PERM_DENIED_ERROR_PATTERN

公用建構函式

NativeDeviceStateMonitor

public NativeDeviceStateMonitor (IDeviceManager mgr, 
                IDevice device, 
                boolean fastbootEnabled)

參數
mgr IDeviceManager

device IDevice

fastbootEnabled boolean

公用方法

attachFinalState

public void attachFinalState (TestDeviceState finalState)

如果達到此狀態,請將最終狀態附加至 abort waitForDeviceState。

參數
finalState TestDeviceState

getDeviceState

public TestDeviceState getDeviceState ()

取得裝置狀態。

傳回
TestDeviceState 裝置的 TestDeviceState

getFastbootSerialNumber

public String getFastbootSerialNumber ()

取得快速啟動模式序號。

傳回
String

getMountPoint

public String getMountPoint (String mountName)

傳回掛接點。

如果 IDevice 中的快取資訊無法使用,則直接查詢裝置。

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

參數
mountName String:掛接點名稱

傳回
String 掛接點或 null

擲回
DeviceNotAvailableException

getSerialNumber

public String getSerialNumber ()

取得裝置的序號。

傳回
String

isAdbTcp

public boolean isAdbTcp ()

傳回
boolean

setDefaultAvailableTimeout

public void setDefaultAvailableTimeout (long timeoutMs)

設定等待裝置可用所需的時間 (以毫秒為單位)。waitForDeviceAvailable()

參數
timeoutMs long

setDefaultOnlineTimeout

public void setDefaultOnlineTimeout (long timeoutMs)

設定裝置在「waitForDeviceOnline()」連上網路所需的時間 (毫秒)。

參數
timeoutMs long

setFastbootSerialNumber

public void setFastbootSerialNumber (String serial)

設定快速啟動模式序號。

參數
serial String

setIDevice

public void setIDevice (IDevice newDevice)

更新目前的 IDevice。

setState

public void setState (TestDeviceState deviceState)

設定裝置目前狀態。

waitForBootComplete

public boolean waitForBootComplete (long waitTime)

阻斷,直到裝置的啟動完成標記設定為止

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

傳回
boolean

waitForDeviceAvailable

public IDevice waitForDeviceAvailable (long waitTime)

等待裝置回應並可供測試。目前可以使用套件管理員和外部儲存空間。

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

傳回
IDevice 如果裝置在時間到期前連上網路,系統會 IDevice。否則為 null

waitForDeviceAvailable

public IDevice waitForDeviceAvailable ()

等待裝置回應並可供測試。

等同於 waitForDeviceAvailable(long),但會使用預設的裝置啟動逾時時間。

傳回
IDevice 如果裝置在時間到期前連上網路,系統會 IDevice。否則為 null

waitForDeviceAvailableInRecoverPath

public IDevice waitForDeviceAvailableInRecoverPath (long waitTime)

waitForDeviceAvailable(long) 的特殊變化版本,可在復原路徑中呼叫,以便針對處理方式進行調整。

參數
waitTime long

傳回
IDevice

擲回
DeviceNotAvailableException

waitForDeviceBootloader

public boolean waitForDeviceBootloader (long time)

等待裝置進入系統啟動載入程式。

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

傳回
boolean true 如果裝置在時間到期前處於系統啟動載入程式狀態

waitForDeviceBootloaderStateUpdate

public void waitForDeviceBootloaderStateUpdate ()

等待裝置的系統啟動載入程式狀態更新

waitForDeviceFastbootd

public boolean waitForDeviceFastbootd (String fastbootPath, 
                long time)

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

參數
fastbootPath String:Fastboot 二進位檔的路徑。

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

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

waitForDeviceInRecovery

public IDevice waitForDeviceInRecovery ()

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

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

waitForDeviceInRecovery

public boolean waitForDeviceInRecovery (long waitTime)

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

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

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

waitForDeviceInSideload

public boolean waitForDeviceInSideload (long waitTime)

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

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

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

waitForDeviceNotAvailable

public boolean waitForDeviceNotAvailable (long waitTime)

等待裝置無法使用

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

傳回
boolean true 如果裝置無法使用

waitForDeviceOnline

public IDevice waitForDeviceOnline ()

使用標準開機逾時,等待裝置連上網路。

注意:裝置透過 DDMS 顯示後,這個方法就會傳回。但這並不保證裝置實際上會回應 ADB 指令 - 請改用 waitForDeviceAvailable()

傳回
IDevice 如果裝置在時間到期前連上網路,系統會 IDevice。否則為 null

waitForDeviceOnline

public IDevice waitForDeviceOnline (long waitTime)

等待裝置連上網路。

注意:當裝置可透過 DDMS 觀看時,這個方法就會傳回結果。但這並不保證裝置實際上會回應 ADB 指令 - 請改用 waitForDeviceAvailable()

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

傳回
IDevice 如果裝置在時間到期前連上網路,系統會 IDevice。否則為 null

waitForDeviceShell

public boolean waitForDeviceShell (long waitTime)

等待裝置回應基本 ADB 殼層指令。

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

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

保護方法

createOutputReceiver

protected CollectingOutputReceiver createOutputReceiver ()

已公開供測試

傳回
CollectingOutputReceiver CollectingOutputReceiver

getCheckPollTime

protected long getCheckPollTime ()

已公開供測試

傳回
long

getCurrentTime

protected long getCurrentTime ()

公開測試

傳回
long

getIDevice

protected IDevice getIDevice ()

傳回
IDevice IDevice 與狀態監控器建立關聯

postOnlineCheck

protected boolean postOnlineCheck (long waitTime)

可對線上裝置進行的額外檢查

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

傳回
boolean true 如果檢查在 waitTime 到期前成功,其他情況則為 false

擲回
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

waitForStoreMount

protected boolean waitForStoreMount (long waitTime)

等待裝置的外部儲存空間掛接。

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

傳回
boolean true 如果外部商店在 waitTime 到期前掛載,另有 false

擲回
DeviceNotAvailableException