IDeviceStateMonitor
public
interface
IDeviceStateMonitor
| com.android.tradefed.device.IDeviceStateMonitor |
Provides facilities for monitoring the state of a IDevice.
A device is currently considered "available" if and only if four events are true:
1. Device is online aka visible via DDMS/adb (waitForDeviceOnline()
2. Device has dev.bootcomplete flag set (@link #waitForBootComplete(long)}
3. Device's package manager is responsive (may be inop)
4. Device's external storage is mounted
3. & 4. being part of waitForDeviceAvailable().
Summary
Public methods | |
|---|---|
default
void
|
attachFinalState(TestDeviceState finalState)
Attach a final state to abort waitForDeviceState if reached. |
abstract
TestDeviceState
|
getDeviceState()
Gets the device state. |
abstract
String
|
getFastbootSerialNumber()
Gets the fastboot mode serial number. |
abstract
String
|
getMountPoint(String mountName)
Returns a mount point. |
abstract
String
|
getSerialNumber()
Gets the serial number of the device. |
abstract
boolean
|
isAdbTcp()
|
abstract
void
|
setDefaultAvailableTimeout(long timeoutMs)
Set the time in ms to wait for a device to be available in |
abstract
void
|
setDefaultOnlineTimeout(long timeoutMs)
Set the time in ms to wait for a device to be online in |
abstract
void
|
setFastbootSerialNumber(String serial)
Sets the fastboot mode serial number. |
abstract
void
|
setIDevice(IDevice device)
Updates the current IDevice. |
abstract
void
|
setState(TestDeviceState deviceState)
Sets the device current state. |
abstract
boolean
|
waitForBootComplete(long waitTime)
Blocks until the device's boot complete flag is set |
abstract
IDevice
|
waitForDeviceAvailable(long waitTime)
Waits for the device to be responsive and available for testing. |
abstract
IDevice
|
waitForDeviceAvailable()
Waits for the device to be responsive and available for testing. |
default
IDevice
|
waitForDeviceAvailableInRecoverPath(long waitTime)
Special variant of |
abstract
boolean
|
waitForDeviceBootloader(long waitTime)
Waits for the device to be in bootloader. |
abstract
void
|
waitForDeviceBootloaderStateUpdate()
Waits for device bootloader state to be refreshed |
abstract
boolean
|
waitForDeviceFastbootd(String fastbootPath, long waitTime)
Waits for the device to be in fastbootd. |
abstract
IDevice
|
waitForDeviceInRecovery()
Waits for the device to be in Recovery mode using standard boot timeout. |
abstract
boolean
|
waitForDeviceInRecovery(long waitTime)
Waits for the device to be in the 'adb recovery' state |
abstract
boolean
|
waitForDeviceInSideload(long waitTime)
Waits for the device to be in the 'adb sideload' state |
abstract
boolean
|
waitForDeviceNotAvailable(long waitTime)
Waits for the device to be not available |
abstract
IDevice
|
waitForDeviceOnline()
Waits for device to be online using standard boot timeout. |
abstract
IDevice
|
waitForDeviceOnline(long time)
Waits for device to be online. |
abstract
boolean
|
waitForDeviceShell(long waitTime)
Waits for device to be responsive to a basic adb shell command. |
Public methods
attachFinalState
public void attachFinalState (TestDeviceState finalState)
Attach a final state to abort waitForDeviceState if reached.
| Parameters | |
|---|---|
finalState |
TestDeviceState |
getDeviceState
public abstract TestDeviceState getDeviceState ()
Gets the device state.
| Returns | |
|---|---|
TestDeviceState |
the TestDeviceState of device |
getFastbootSerialNumber
public abstract String getFastbootSerialNumber ()
Gets the fastboot mode serial number.
| Returns | |
|---|---|
String |
|
getMountPoint
public abstract String getMountPoint (String mountName)
Returns a mount point.
Queries the device directly if the cached info in IDevice is not available.
TODO: move this behavior to IDevice.getMountPoint(String)
| Parameters | |
|---|---|
mountName |
String: the name of the mount point |
| Returns | |
|---|---|
String |
the mount point or null |
| Throws | |
|---|---|
DeviceNotAvailableException |
|
See also:
getSerialNumber
public abstract String getSerialNumber ()
Gets the serial number of the device.
| Returns | |
|---|---|
String |
|
isAdbTcp
public abstract boolean isAdbTcp ()
| Returns | |
|---|---|
boolean |
true if device is connected to adb via tcp |
setDefaultAvailableTimeout
public abstract void setDefaultAvailableTimeout (long timeoutMs)
Set the time in ms to wait for a device to be available in waitForDeviceAvailable().
| Parameters | |
|---|---|
timeoutMs |
long |
setDefaultOnlineTimeout
public abstract void setDefaultOnlineTimeout (long timeoutMs)
Set the time in ms to wait for a device to be online in waitForDeviceOnline().
| Parameters | |
|---|---|
timeoutMs |
long |
setFastbootSerialNumber
public abstract void setFastbootSerialNumber (String serial)
Sets the fastboot mode serial number.
| Parameters | |
|---|---|
serial |
String |
setIDevice
public abstract void setIDevice (IDevice device)
Updates the current IDevice.
See also:
waitForBootComplete
public abstract boolean waitForBootComplete (long waitTime)
Blocks until the device's boot complete flag is set
| Parameters | |
|---|---|
waitTime |
long: the amount in ms to wait |
| Returns | |
|---|---|
boolean |
|
waitForDeviceAvailable
public abstract IDevice waitForDeviceAvailable (long waitTime)
Waits for the device to be responsive and available for testing. Currently this means that the package manager and external storage are available.
| Parameters | |
|---|---|
waitTime |
long: the time in ms to wait |
| Returns | |
|---|---|
IDevice |
the IDevice if device becomes online before time expires. null
otherwise. |
waitForDeviceAvailable
public abstract IDevice waitForDeviceAvailable ()
Waits for the device to be responsive and available for testing.
Equivalent towaitForDeviceAvailable(long), but uses default device
boot timeout.
| Returns | |
|---|---|
IDevice |
the IDevice if device becomes online before time expires. null
otherwise. |
waitForDeviceAvailableInRecoverPath
public IDevice waitForDeviceAvailableInRecoverPath (long waitTime)
Special variant of waitForDeviceAvailable(long) to be called during recovery path to
tailor the handling.
| Parameters | |
|---|---|
waitTime |
long |
| Returns | |
|---|---|
IDevice |
|
| Throws | |
|---|---|
DeviceNotAvailableException |
if the device turns unavailable. |
waitForDeviceBootloader
public abstract boolean waitForDeviceBootloader (long waitTime)
Waits for the device to be in bootloader.
| Parameters | |
|---|---|
waitTime |
long: the maximum time in ms to wait |
| Returns | |
|---|---|
boolean |
true if device is in bootloader before time expires |
waitForDeviceBootloaderStateUpdate
public abstract void waitForDeviceBootloaderStateUpdate ()
Waits for device bootloader state to be refreshed
waitForDeviceFastbootd
public abstract boolean waitForDeviceFastbootd (String fastbootPath,
long waitTime)Waits for the device to be in fastbootd.
| Parameters | |
|---|---|
fastbootPath |
String: the path of the fastboot binary to use. |
waitTime |
long: the maximum time in ms to wait |
| Returns | |
|---|---|
boolean |
true if device is in fastbootd before time expires |
waitForDeviceInRecovery
public abstract IDevice waitForDeviceInRecovery ()
Waits for the device to be in Recovery mode using standard boot timeout.
| Returns | |
|---|---|
IDevice |
the IDevice if device becomes recovery before time expires. null
otherwise. |
waitForDeviceInRecovery
public abstract boolean waitForDeviceInRecovery (long waitTime)
Waits for the device to be in the 'adb recovery' state
| Parameters | |
|---|---|
waitTime |
long: the maximum time in ms to wait |
| Returns | |
|---|---|
boolean |
True if the device is in Recovery before the timeout, False otherwise. |
waitForDeviceInSideload
public abstract boolean waitForDeviceInSideload (long waitTime)
Waits for the device to be in the 'adb sideload' state
| Parameters | |
|---|---|
waitTime |
long: the maximum time in ms to wait |
| Returns | |
|---|---|
boolean |
True if the device is in sideload before the timeout, False otherwise. |
waitForDeviceNotAvailable
public abstract boolean waitForDeviceNotAvailable (long waitTime)
Waits for the device to be not available
| Parameters | |
|---|---|
waitTime |
long: the maximum time in ms to wait |
| Returns | |
|---|---|
boolean |
true if device becomes unavailable |
waitForDeviceOnline
public abstract IDevice waitForDeviceOnline ()
Waits for device to be online using standard boot timeout.
Note: this method will return once device is visible via DDMS. It does not guarantee that the device is actually responsive to adb commands - usewaitForDeviceAvailable()
instead.
| Returns | |
|---|---|
IDevice |
the IDevice if device becomes online before time expires. null
otherwise. |
waitForDeviceOnline
public abstract IDevice waitForDeviceOnline (long time)
Waits for device to be online.
Note: this method will return once device is visible via DDMS. It does not guarantee that the device is actually responsive to adb commands - usewaitForDeviceAvailable()
instead.
| Parameters | |
|---|---|
time |
long: the maximum time in ms to wait |
| Returns | |
|---|---|
IDevice |
the IDevice if device becomes online before time expires. null
otherwise. |
waitForDeviceShell
public abstract boolean waitForDeviceShell (long waitTime)
Waits for device to be responsive to a basic adb shell command.
| Parameters | |
|---|---|
waitTime |
long: the time in ms to wait |
| Returns | |
|---|---|
boolean |
true if device becomes responsive before waitTime elapses. |