NativeDevice
public
class
NativeDevice
extends Object
implements
IConfigurationReceiver,
IManagedTestDevice,
ITestLoggerReceiver
java.lang.Object | |
↳ | com.android.tradefed.device.NativeDevice |
Default implementation of a ITestDevice
Non-full stack android devices.
Summary
Nested classes | |
---|---|
class |
NativeDevice.AdbAction
A |
class |
NativeDevice.AdbShellAction
|
class |
NativeDevice.RebootDeviceAction
|
Constants | |
---|---|
int |
INVALID_USER_ID
Value returned for any invalid/not found user id: UserHandle defined the -10000 value |
long |
MAX_HOST_DEVICE_TIME_OFFSET
|
int |
MAX_RETRY_ATTEMPTS
the default number of command retry attempts to perform |
Fields | |
---|---|
public
static
final
String |
DEBUGFS_PATH
|
protected
static
final
String |
SD_CARD
|
protected
static
final
String |
STORAGE_EMULATED
|
protected
TestDeviceOptions |
mOptions
|
protected
final
IDeviceStateMonitor |
mStateMonitor
|
Public constructors | |
---|---|
NativeDevice(IDevice device, IDeviceStateMonitor stateMonitor, IDeviceMonitor allocationMonitor)
Creates a |
Public methods | |
---|---|
void
|
batchPrefetchStartupBuildProps()
Micro optimization (about 400 millis) by prefetching all props we need rather than call 'adb getprop' for each one. |
boolean
|
canSwitchToHeadlessSystemUser()
Returns whether it's allowed to switch to the headless SYSTEM user. |
boolean
|
checkApiLevelAgainstNextRelease(int strictMinLevel)
Check whether or not a feature is currently supported given a minimally supported level. |
boolean
|
checkConnectivity()
Check that device has network connectivity. |
boolean
|
clearErrorDialogs()
Attempt to dismiss any error dialogs currently displayed on device UI. |
void
|
clearLastConnectedWifiNetwork()
Clears the last connected wifi network. |
void
|
clearLogcat()
Deletes any accumulated logcat data. |
boolean
|
connectToWifiNetwork(
Connects to a wifi network. |
boolean
|
connectToWifiNetwork(String wifiSsid, String wifiPsk)
Connects to a wifi network. |
boolean
|
connectToWifiNetwork(
Connects to a wifi network.f |
boolean
|
connectToWifiNetwork(String wifiSsid, String wifiPsk, boolean scanSsid)
Connects to a wifi network. |
boolean
|
connectToWifiNetworkIfNeeded(String wifiSsid, String wifiPsk, boolean scanSsid)
A variant of |
boolean
|
connectToWifiNetworkIfNeeded(String wifiSsid, String wifiPsk)
A variant of |
int
|
createUser(String name, boolean guest, boolean ephemeral)
Create a user with a given name and the provided flags |
int
|
createUser(String name, boolean guest, boolean ephemeral, boolean forTesting)
Create a user with a given name and the provided flags |
int
|
createUser(String name)
Create a user with a given name and default flags 0. |
int
|
createUserNoThrow(String name)
Create a user with a given name and default flags 0. |
void
|
deleteFile(String deviceFilePath, int userId)
Helper method to delete a file or directory on the device. |
void
|
deleteFile(String deviceFilePath)
Helper method to delete a file or directory on the device. |
void
|
deregisterDeviceActionReceiver(IDeviceActionReceiver deviceActionReceiver)
Removes the registered |
boolean
|
deviceSoftRestarted(ProcessInfo prevSystemServerProcess)
Helper method to check if device soft-restarted by comparing current system_server with
previous system_server |
boolean
|
deviceSoftRestartedSince(long utcEpochTime, TimeUnit timeUnit)
Helper method to check whether device soft-restarted since the UTC time since epoch from
device and its |
boolean
|
disableAdbRoot()
Turns off adb root. |
void
|
disableKeyguard()
Attempts to disable the keyguard. |
boolean
|
disableNetworkMonitor()
Disables network monitoring on device. |
boolean
|
disconnectFromWifi()
Disconnects from a wifi network. |
boolean
|
doesFileExist(String deviceFilePath, int userId)
Helper method to determine if file on device exists for a given user. |
boolean
|
doesFileExist(String deviceFilePath)
Helper method to determine if file on device exists. |
File
|
dumpHeap(String process, String devicePath)
Attempt to dump the heap from the system_server. |
boolean
|
enableAdbRoot()
Turns on adb root. |
boolean
|
enableNetworkMonitor()
Enables network monitoring on device. |
String
|
executeAdbCommand(long timeout, String... cmdArgs)
Helper method which executes a adb command as a system command with a specified timeout. |
String
|
executeAdbCommand(long timeout,
Helper method which executes a adb command as a system command with a specified timeout. |
String
|
executeAdbCommand(String... cmdArgs)
Helper method which executes a adb command as a system command. |
CommandResult
|
executeFastbootCommand(String... cmdArgs)
Helper method which executes a fastboot command as a system command with a default timeout of 2 minutes. |
CommandResult
|
executeFastbootCommand(long timeout, String... cmdArgs)
Helper method which executes a fastboot command as a system command. |
CommandResult
|
executeLongFastbootCommand(String... cmdArgs)
Helper method which executes a long running fastboot command as a system command. |
CommandResult
|
executeLongFastbootCommand(
Helper method which executes a long running fastboot command as a system command with system environment variables. |
String
|
executeShellCommand(String command)
Helper method which executes a adb shell command and returns output as a |
void
|
executeShellCommand(String command, IShellOutputReceiver receiver, long maxTimeToOutputShellResponse, TimeUnit timeUnit, int retryAttempts)
Executes a adb shell command, with more parameters to control command behavior. |
void
|
executeShellCommand(String command, IShellOutputReceiver receiver, long maxTimeoutForCommand, long maxTimeToOutputShellResponse, TimeUnit timeUnit, int retryAttempts)
Executes a adb shell command, with more parameters to control command behavior. |
void
|
executeShellCommand(String command, IShellOutputReceiver receiver)
Executes the given adb shell command, retrying multiple times if command fails. |
CommandResult
|
executeShellV2Command(String cmd)
Helper method which executes a adb shell command and returns the results as a |
CommandResult
|
executeShellV2Command(String cmd, OutputStream pipeToOutput)
Helper method which executes an adb shell command and returns the results as a |
CommandResult
|
executeShellV2Command(String cmd, File pipeAsInput)
Helper method which executes an adb shell command and returns the results as a |
CommandResult
|
executeShellV2Command(String cmd, long maxTimeoutForCommand, TimeUnit timeUnit, int retryAttempts)
Executes a adb shell command, with more parameters to control command behavior. |
CommandResult
|
executeShellV2Command(String cmd, long maxTimeoutForCommand, TimeUnit timeUnit)
Executes a adb shell command, with more parameters to control command behavior. |
CommandResult
|
executeShellV2Command(String cmd, File pipeAsInput, OutputStream pipeToOutput, long maxTimeoutForCommand, TimeUnit timeUnit, int retryAttempts)
Executes a adb shell command, with more parameters to control command behavior. |
CommandResult
|
executeShellV2Command(String cmd, File pipeAsInput, OutputStream pipeToOutput, OutputStream pipeToError, long maxTimeoutForCommand, TimeUnit timeUnit, int retryAttempts)
Executes a adb shell command, with more parameters to control command behavior. |
CommandResult
|
fastbootWipePartition(String partition)
Helper method which wipes a partition for the device. |
|
getActiveApexes()
Fetch the information about APEXes activated on the device. |
|
getAllSettings(String namespace)
Return key value pairs of requested namespace. |
DeviceAllocationState
|
getAllocationState()
Return the current allocation state of device |
String
|
getAndroidId(int userId)
Find and return the android-id associated to a userId, null if not found. |
|
getAndroidIds()
Create a Map of android ids found matching user ids. |
int
|
getApiLevel()
Get the device API Level. |
PackageInfo
|
getAppPackageInfo(String packageName)
Fetch information about a package installed on device. |
|
getAppPackageInfos()
Fetch information of packages installed on the device. |
String
|
getBasebandVersion()
Convenience method to get baseband (radio) version of this device. |
Integer
|
getBattery()
Returns the current battery level of a device or Null if battery level unavailable. |
boolean
|
getBooleanProperty(String name, boolean defaultValue)
Returns boolean value of the given property. |
|
getBootHistory()
Helper method collects the boot history map with boot time and boot reason. |
|
getBootHistorySince(long utcEpochTime, TimeUnit timeUnit)
Helper method collects the boot history map with boot time and boot reason since the given time since epoch from device and the time unit specified. |
String
|
getBootloaderVersion()
Convenience method to get the bootloader version of this device. |
InputStreamSource
|
getBugreport()
Retrieves a bugreport from the device. |
InputStreamSource
|
getBugreportz()
Retrieves a bugreportz from the device. |
String
|
getBuildAlias()
Retrieve the alias of the build that the device is currently running. |
String
|
getBuildFlavor()
Retrieve the build flavor for the device. |
String
|
getBuildId()
Retrieve the build the device is currently running. |
String
|
getBuildSigningKeys()
Returns the key type used to sign the device image Typically Android devices may be signed with test-keys (like in AOSP) or release-keys (controlled by individual device manufacturers) |
DeviceDescriptor
|
getCachedDeviceDescriptor()
Returns a cached |
DeviceDescriptor
|
getCachedDeviceDescriptor(boolean shortDescriptor)
Returns a cached |
String[]
|
getChildren(String path)
Alternative to using |
AbstractConnection
|
getConnection()
The current connection associated with the device. |
ContentProviderHandler
|
getContentProvider(int userId)
Returns the |
DeviceFoldableState
|
getCurrentFoldableState()
Returns the current foldable state of the device or null if some issues occurred. |
int
|
getCurrentUser()
Return the id of the current running user. |
String
|
getDeviceClass()
Get the device class. |
long
|
getDeviceDate()
Return the date of the device in millisecond since epoch. |
DeviceDescriptor
|
getDeviceDescriptor()
Return a |
DeviceDescriptor
|
getDeviceDescriptor(boolean shortDescriptor)
Return a |
TestDeviceState
|
getDeviceState()
Get the device's state. |
long
|
getDeviceTimeOffset(Date date)
Helper to get the time difference between the device and a given |
InputStreamSource
|
getEmulatorOutput()
Get the stream of emulator stdout and stderr |
Process
|
getEmulatorProcess()
Return the |
final
File
|
getExecuteShellCommandLog()
The log that contains all the |
long
|
getExternalStoreFreeSpace()
Helper method to determine amount of free space on device external storage. |
String
|
getFastbootPath()
Returns the path of the fastboot binary being used. |
String
|
getFastbootProductType()
Convenience method to get the product type of this device when its in fastboot mode. |
String
|
getFastbootProductVariant()
Convenience method to get the product type of this device when its in fastboot mode. |
String
|
getFastbootSerialNumber()
Returns the fastboot mode serial number. |
String
|
getFastbootVariable(String variableName)
Retrieve the given fastboot variable value from the device. |
String
|
getFastbootVersion()
Returns the version string of the fastboot binary being used. |
IFileEntry
|
getFileEntry(String path)
Retrieve a reference to a remote file on device. |
IFileEntry
|
getFileEntry(FileListingService.FileEntry entry)
Unofficial helper to get a |
|
getFoldableStates()
Returns the list of foldable states on the device. |
IDevice
|
getIDevice()
Returns a reference to the associated ddmlib |
|
getInstalledPackageNames()
Fetch the application package names present on the device. |
long
|
getIntProperty(String name, long defaultValue)
Returns integer value of the given property from the device. |
String
|
getIpAddress()
Gets the device's IP address. |
KeyguardControllerState
|
getKeyguardState()
Return an object to get the current state of the keyguard or null if not supported. |
long
|
getLastExpectedRebootTimeMillis()
Returns the last time Tradefed APIs triggered a reboot in milliseconds since EPOCH as
returned by |
int
|
getLaunchApiLevel()
Get the device's first launched API Level. |
InputStreamSource
|
getLogcat()
Grabs a snapshot stream of the logcat data. |
InputStreamSource
|
getLogcat(int maxBytes)
Grabs a snapshot stream of the last |
InputStreamSource
|
getLogcatDump()
Get a dump of the current logcat for device. |
InputStreamSource
|
getLogcatSince(long date)
Grabs a snapshot stream of captured logcat data starting the date provided. |
String
|
getMacAddress()
Returns the MAC address of the device, null if it fails to query from the device. |
Integer
|
getMainUserId()
Returns the main user id. |
|
getMainlineModuleInfo()
Get the information about the mainline modules installed on the device. |
int
|
getMaxNumberOfRunningUsersSupported()
Get the maximum number of supported simultaneously running users. |
int
|
getMaxNumberOfUsersSupported()
Get the maximum number of supported users. |
Process
|
getMicrodroidProcess()
|
IDeviceStateMonitor
|
getMonitor()
Return the |
String
|
getMountPoint(String mountName)
Returns a mount point. |
ITestDevice.MountPointInfo
|
getMountPointInfo(String mountpoint)
Returns a |
|
getMountPointInfo()
Returns a parsed version of the information in /proc/mounts on the device |
TestDeviceOptions
|
getOptions()
Fetch the test options for the device. |
long
|
getPartitionFreeSpace(String partition)
Helper method to determine amount of free space on device partition. |
Integer
|
getPrimaryUserId()
Returns the primary user id. |
ProcessInfo
|
getProcessByName(String processName)
Helper method runs the "pidof" and "stat" command and returns |
String
|
getProcessPid(String process)
Returns the pid of the service or null if something went wrong. |
String
|
getProductType()
Convenience method to get the product type of this device. |
String
|
getProductVariant()
Convenience method to get the product variant of this device. |
String
|
getProperty(String name)
Retrieve the given property value from the device. |
ITestDevice.RecoveryMode
|
getRecoveryMode()
Get the current recovery mode used for the device. |
InputStreamSource
|
getScreenshot(long displayId)
Grabs a screenshot from the device given display id. |
InputStreamSource
|
getScreenshot(String format)
Grabs a screenshot from the device. |
InputStreamSource
|
getScreenshot(String format, boolean rescale)
Grabs a screenshot from the device. |
InputStreamSource
|
getScreenshot()
Grabs a screenshot from the device. |
String
|
getSerialNumber()
Convenience method to get serial number of this device. |
String
|
getSetting(int userId, String namespace, String key)
Return the value of the requested setting. |
String
|
getSetting(String namespace, String key)
See |
String
|
getSimOperator()
Return the SIM card operator or null if not available or if device is not available. |
String
|
getSimState()
Return the SIM card state or null if not available or device is not available. |
|
getTombstones()
Fetch and return the list of tombstones from the devices. |
long
|
getTotalMemory()
Returns total physical memory size in bytes or -1 in case of internal error |
String
|
getTrackingSerial()
For device management purpose get the serial used to track the device. |
|
getUninstallablePackageNames()
Fetch the application package names that can be uninstalled. |
boolean
|
getUseFastbootErase()
Get whether to use fastboot erase or fastboot format to wipe a partition on the device. |
int
|
getUserFlags(int userId)
Find and return the flags of a given user. |
|
getUserInfos()
Gets the Map of useId to |
int
|
getUserSerialNumber(int userId)
Return the serial number associated to the userId if found, -10000 in any other cases. |
IManagedTestDevice.DeviceEventResponse
|
handleAllocationEvent(DeviceEvent event)
Process the given DeviceEvent. Process the DeviceEvent, which may or may not transition this device to a new allocation state. |
boolean
|
hasFeature(String feature)
Check if a feature is available on a device. |
String
|
installPackage(File packageFile, boolean reinstall, String... extraArgs)
Install an Android package on device. |
String
|
installPackage(File packageFile, boolean reinstall, boolean grantPermissions, String... extraArgs)
Install an Android package on device. |
String
|
installPackageForUser(File packageFile, boolean reinstall, int userId, String... extraArgs)
Install an Android package on device for a given user. |
String
|
installPackageForUser(File packageFile, boolean reinstall, boolean grantPermissions, int userId, String... extraArgs)
Install an Android package on device for a given user. |
void
|
invalidatePropertyCache()
|
boolean
|
isAdbRoot()
|
boolean
|
isAdbTcp()
|
boolean
|
isAppEnumerationSupported()
Check whether platform on device supports app enumeration |
boolean
|
isBypassLowTargetSdkBlockSupported()
Check whether platform on device supports bypassing low target sdk block on app installs |
boolean
|
isDebugfsMounted()
Check if debugfs is mounted. |
boolean
|
isDeviceEncrypted()
Returns if the device is encrypted. |
boolean
|
isDirectory(String path)
Return True if the path on the device is a directory, false otherwise. |
boolean
|
isEnableAdbRoot()
|
boolean
|
isEncryptionSupported()
Returns if encryption is supported on the device. |
boolean
|
isExecutable(String fullPath)
Returns True if the file path on the device is an executable file, false otherwise. |
boolean
|
isFastbootEnabled()
Return if fastboot is available for the device. |
boolean
|
isHeadless()
Return true if the device is headless (no screen), false otherwise. |
boolean
|
isHeadlessSystemUserMode()
Returns whether the device uses headless system user mode. |
boolean
|
isMainUserPermanentAdmin()
Returns whether the main user is a permanent admin and can't be deleted or downgraded to non-admin status. |
boolean
|
isMultiUserSupported()
Determines if multi user is supported. |
boolean
|
isPackageInstalled(String packageName, String userId)
Query the device for a given package name and given user id to check if it's currently installed or not for that user. |
boolean
|
isPackageInstalled(String packageName)
Query the device for a given package name to check if it's currently installed or not. |
boolean
|
isRuntimePermissionSupported()
Check whether platform on device supports runtime permission granting |
boolean
|
isStateBootloaderOrFastbootd()
Returns true if device is in |
boolean
|
isUserRunning(int userId)
Check if a given user is running. |
boolean
|
isUserSecondary(int userId)
Return whether the specified user is a secondary user according to it's flags. |
boolean
|
isUserVisible(int userId)
Checks if the given user is visible. |
boolean
|
isUserVisibleOnDisplay(int userId, int displayId)
Checks if the given user is visible in the given display. |
boolean
|
isVisibleBackgroundUsersOnDefaultDisplaySupported()
Returns whether the device allow users to be started visible in the background in the |
boolean
|
isVisibleBackgroundUsersSupported()
Returns whether the device allow users to be started visible in the background. |
boolean
|
isWifiEnabled()
Test if wifi is enabled. |
|
listDisplayIds()
Collect the list of available displays id on the device as reported by "dumpsys SurfaceFlinger". |
|
listDisplayIdsForStartingVisibleBackgroundUsers()
Gets the list of displays that can be used to |
|
listUsers()
Gets the list of users on the device. |
boolean
|
logAnrs(ITestLogger logger)
Collects and log ANRs from the device. |
boolean
|
logBugreport(String dataName, ITestLogger listener)
Helper method to take a bugreport and log it to the reporters. |
void
|
logOnDevice(String tag, Log.LogLevel level, String format, Object... args)
Log a message in the logcat of the device. |
void
|
mountDebugfs()
Mount debugfs. |
void
|
nonBlockingReboot()
Issues a command to reboot device and returns on command complete and when device is no longer visible to adb. |
void
|
postAdbRootAction()
Override if the device needs some specific actions to be taken after adb root and before the device is back online. |
void
|
postAdbUnrootAction()
Override if the device needs some specific actions to be taken after adb unroot and before the device is back online. |
void
|
postBootSetup()
Perform instructions to configure device for testing that after every boot. |
void
|
postInvocationTearDown(Throwable exception)
Extra steps for device specific required clean up that will be executed after the invocation is done. |
void
|
preInvocationSetup(IBuildInfo info, MultiMap<String, String> attributes)
Extra steps for device specific required setup that will be executed on the device prior to the invocation flow. |
boolean
|
pullDir(String deviceFilePath, File localDir, int userId)
Recursively pull directory contents from device. |
boolean
|
pullDir(String deviceFilePath, File localDir)
Recursively pull directory contents from device. |
boolean
|
pullFile(String remoteFilePath, File localFile)
Retrieves a file off device. |
File
|
pullFile(String remoteFilePath, int userId)
Retrieves a file off device, stores it in a local temporary |
File
|
pullFile(String remoteFilePath)
Retrieves a file off device, stores it in a local temporary |
boolean
|
pullFile(String remoteFilePath, File localFile, int userId)
Retrieves a file off device. |
String
|
pullFileContents(String remoteFilePath)
Retrieves a file off device, and returns the contents. |
File
|
pullFileFromExternal(String remoteFilePath)
A convenience method to retrieve a file from the device's external storage, stores it in a
local temporary |
boolean
|
pushDir(File localFileDir, String deviceFilePath,
Recursively push directory contents to device while excluding some directories that are filtered. |
boolean
|
pushDir(File localFileDir, String deviceFilePath)
Recursively push directory contents to device. |
boolean
|
pushDir(File localFileDir, String deviceFilePath, int userId)
Recursively push directory contents to device. |
boolean
|
pushFile(File localFile, String remoteFilePath, boolean evaluateContentProviderNeeded)
Variant of |
boolean
|
pushFile(File localFile, String remoteFilePath)
Push a file to device. |
boolean
|
pushFile(File localFile, String remoteFilePath, int userId)
Push a file to device. |
boolean
|
pushString(String contents, String remoteFilePath)
Push file created from a string to device |
void
|
reboot(String reason)
Reboots the device into adb mode with given |
void
|
reboot()
Reboots the device into adb mode. |
void
|
rebootIntoBootloader()
Reboots the device into bootloader mode. |
void
|
rebootIntoFastbootd()
Reboots the device into fastbootd mode. |
void
|
rebootIntoRecovery()
Reboots the device into adb recovery mode. |
void
|
rebootIntoSideload()
Reboots the device into adb sideload mode (note that this is a special mode under recovery) Blocks until device enters sideload mode |
void
|
rebootIntoSideload(boolean autoReboot)
Reboots the device into adb sideload mode (note that this is a special mode under recovery) Blocks until device enters sideload mode |
void
|
rebootUntilOnline()
An alternate to |
void
|
rebootUntilOnline(String reason)
An alternate to |
void
|
rebootUserspace()
Reboots only userspace part of device. |
void
|
rebootUserspaceUntilOnline()
An alternate to |
boolean
|
recoverDevice()
Attempts to recover device communication. |
void
|
registerDeviceActionReceiver(IDeviceActionReceiver deviceActionReceiver)
Registers a |
void
|
remountSystemReadOnly()
Make the system partition on the device read-only. |
void
|
remountSystemWritable()
Make the system partition on the device writable. |
void
|
remountVendorReadOnly()
Make the vendor partition on the device read-only. |
void
|
remountVendorWritable()
Make the vendor partition on the device writable. |
boolean
|
removeAdmin(String componentName, int userId)
Remove given device admin in given user and return |
void
|
removeOwners()
Remove all existing device profile owners with the best effort. |
boolean
|
removeUser(int userId)
Remove a given user from the device. |
void
|
resetContentProviderSetup()
Reset the flag for content provider setup in order to trigger it again. |
boolean
|
runInstrumentationTests(IRemoteAndroidTestRunner runner, ITestLifeCycleReceiver... listeners)
Convenience method for performing |
boolean
|
runInstrumentationTests(IRemoteAndroidTestRunner runner,
Runs instrumentation tests, and provides device recovery. |
boolean
|
runInstrumentationTestsAsUser(IRemoteAndroidTestRunner runner, int userId,
Same as |
boolean
|
runInstrumentationTestsAsUser(IRemoteAndroidTestRunner runner, int userId, ITestLifeCycleReceiver... listeners)
Same as |
void
|
setConfiguration(IConfiguration configuration)
Injects the |
final
void
|
setConnectionAvdInfo(GceAvdInfo avdInfo)
|
void
|
setDate(Date date)
Sets the date on device Note: setting date on device requires root |
boolean
|
setDeviceOwner(String componentName, int userId)
Set a device admin component as device owner in given user. |
void
|
setDeviceState(TestDeviceState deviceState)
Update the device's state. |
void
|
setEmulatorOutputStream(SizeLimitedOutputStream output)
For emulator set |
void
|
setEmulatorProcess(Process p)
Sets the |
void
|
setFastbootEnabled(boolean fastbootEnabled)
Set the fastboot option for the device. |
void
|
setFastbootPath(String fastbootPath)
Sets the path to the fastboot binary that should be used. |
void
|
setIDevice(IDevice newDevice)
Update the IDevice associated with this ITestDevice. |
void
|
setLogStartDelay(int delay)
Sets the time in ms to wait before starting logcat capture for a online device. |
void
|
setOptions(TestDeviceOptions options)
Set the |
boolean
|
setProperty(String propKey, String propValue)
Sets the given property value on the device. |
void
|
setRecovery(IDeviceRecovery recovery)
Set the |
void
|
setRecoveryMode(ITestDevice.RecoveryMode mode)
Set the current recovery mode to use for the device. |
void
|
setSetting(String namespace, String key, String value)
See |
void
|
setSetting(int userId, String namespace, String key, String value)
Add a setting value to the namespace of a given user. |
void
|
setTestLogger(ITestLogger testLogger)
Injects the |
void
|
setTrackingSerial(String trackingSerial)
For device management purpose track the serial we use for referencing the device. |
void
|
setUseFastbootErase(boolean useFastbootErase)
Set whether to use fastboot erase or fastboot format to wipe a partition on the device. |
void
|
startLogcat()
Start capturing logcat output from device in the background. |
boolean
|
startUser(int userId)
Starts a given user in the background if it is currently stopped. |
boolean
|
startUser(int userId, boolean waitFlag)
Starts a given user in the background if it is currently stopped. |
boolean
|
startVisibleBackgroundUser(int userId, int displayId, boolean waitFlag)
Starts a given user in the background, visible in the given display (i.e., allowing the user to launch activities in that display). |
void
|
stopEmulatorOutput()
Close and delete the emulator output. |
void
|
stopLogcat()
Stop capturing logcat output from device, and discard currently saved logcat data. |
boolean
|
stopUser(int userId)
Stops a given user. |
boolean
|
stopUser(int userId, boolean waitFlag, boolean forceFlag)
Stop a given user. |
String
|
switchToAdbTcp()
Switch device to adb-over-tcp mode. |
boolean
|
switchToAdbUsb()
Switch device to adb over usb mode. |
boolean
|
switchUser(int userId)
Switch to another userId with a default timeout. |
boolean
|
switchUser(int userId, long timeout)
Switch to another userId with the provided timeout as deadline. |
boolean
|
syncFiles(File localFileDir, String deviceFilePath)
Incrementally syncs the contents of a local file directory to device. |
Bugreport
|
takeBugreport()
Take a bugreport and returns it inside a |
String
|
uninstallPackage(String packageName)
Uninstall an Android package from device. |
String
|
uninstallPackageForUser(String packageName, int userId)
Uninstall an Android package from device for a given user. |
boolean
|
unlockDevice()
Unlocks the device if the device is in an encrypted state. |
void
|
unmountDebugfs()
Unmount debugfs. |
boolean
|
waitForBootComplete(long timeOut)
Blocks until the device's boot complete flag is set. |
boolean
|
waitForDeviceAvailable()
Waits for the device to be responsive and available for testing. |
boolean
|
waitForDeviceAvailable(long waitTime)
Waits for the device to be responsive and available for testing. |
boolean
|
waitForDeviceAvailableInRecoverPath(long waitTime)
Waits for the device to be responsive and available without considering recovery path. |
void
|
waitForDeviceBootloader()
Blocks until device is visible via fastboot. |
boolean
|
waitForDeviceInRecovery(long waitTime)
Blocks for the device to be in the 'adb recovery' state (note this is distinct from
|
boolean
|
waitForDeviceInSideload(long waitTime)
Blocks for the device to be in the 'adb sideload' state |
boolean
|
waitForDeviceNotAvailable(long waitTime)
Blocks for the device to be not available ie missing from adb |
void
|
waitForDeviceOnline()
Blocks until device is visible via adb. |
void
|
waitForDeviceOnline(long waitTime)
Blocks until device is visible via adb. |
boolean
|
waitForDeviceShell(long waitTime)
Waits for device to be responsive to a basic adb shell command. |
Protected methods | |
---|---|
void
|
addExtraConnectionBuilderArgs(DefaultConnection.ConnectionBuilder builder)
|
String[]
|
buildAdbShellCommand(String command, boolean forceExitStatusDetection)
Builds the OS command for the given adb shell command session and args |
void
|
checkApiLevelAgainst(String feature, int strictMinLevel)
|
NativeDevice.RebootDeviceAction
|
createRebootDeviceAction(NativeDevice.RebootMode rebootMode, String reason)
Create a |
IRunUtil
|
createRunUtil()
|
void
|
doAdbReboot(NativeDevice.RebootMode rebootMode, String reason)
Perform a adb reboot. |
void
|
ensureRuntimePermissionSupported()
helper method to throw exception if runtime permission isn't supported |
int
|
getApiLevelSafe()
|
ITestLogger
|
getLogger()
|
IRunUtil
|
getRunUtil()
Get the |
void
|
initializeConnection(IBuildInfo info, MultiMap<String, String> attributes)
|
String
|
internalGetProperty(String propName, String fastbootVar, String description)
Fetch a device property, from the ddmlib cache by default, and falling back to either `adb shell getprop` or `fastboot getvar` depending on whether the device is in Fastboot or not. |
boolean
|
isInRebootCallback()
Returns whether reboot callbacks is currently being executed or not. |
boolean
|
isNewer(File localFile, IFileEntry entry)
Return |
void
|
notifyRebootEnded()
Notifies all |
void
|
notifyRebootStarted()
Notifies all |
boolean
|
performDeviceAction(String actionDescription, NativeDevice.DeviceAction action, int retryAttempts)
Performs an action on this device. |
void
|
postAdbReboot()
Possible extra actions that can be taken after a reboot. |
void
|
prePostBootSetup()
Allows each device type (AndroidNativeDevice, TestDevice) to override this method for specific post boot setup. |
boolean
|
pullFileInternal(String remoteFilePath, File localFile)
|
void
|
setClock(Clock clock)
Set the Clock instance to use. |
void
|
setMicrodroidProcess(Process process)
Marks the TestDevice as microdroid and sets its CID. |
void
|
setTestDeviceOptions(
|
CommandResult
|
simpleFastbootCommand(long timeout,
Executes a simple fastboot command with environment variables and report the status of the command. |
CommandResult
|
simpleFastbootCommand(long timeout, String[] fullCmd)
Executes a simple fastboot command and report the status of the command. |
boolean
|
waitForDeviceNotAvailable(String operationDesc, long time)
Wait to see the device going unavailable (stop reporting to adb). |
Constants
INVALID_USER_ID
public static final int INVALID_USER_ID
Value returned for any invalid/not found user id: UserHandle defined the -10000 value
Constant Value: -10000 (0xffffd8f0)
MAX_HOST_DEVICE_TIME_OFFSET
protected static final long MAX_HOST_DEVICE_TIME_OFFSET
Constant Value: 5000 (0x0000000000001388)
MAX_RETRY_ATTEMPTS
protected static final int MAX_RETRY_ATTEMPTS
the default number of command retry attempts to perform
Constant Value: 2 (0x00000002)
Fields
DEBUGFS_PATH
public static final String DEBUGFS_PATH
SD_CARD
protected static final String SD_CARD
STORAGE_EMULATED
protected static final String STORAGE_EMULATED
Public constructors
NativeDevice
public NativeDevice (IDevice device, IDeviceStateMonitor stateMonitor, IDeviceMonitor allocationMonitor)
Creates a TestDevice
.
Parameters | |
---|---|
device |
IDevice : the associated IDevice |
stateMonitor |
IDeviceStateMonitor : the IDeviceStateMonitor mechanism to use |
allocationMonitor |
IDeviceMonitor : the IDeviceMonitor to inform of allocation state changes.
Can be null |
Public methods
batchPrefetchStartupBuildProps
public void batchPrefetchStartupBuildProps ()
Micro optimization (about 400 millis) by prefetching all props we need rather than call 'adb getprop' for each one. i.e. It is just as fast to fetch all properties as it is to fetch one. Things like device.getApiLevel(), checkApiLevelAgainstNextRelease and getBuildAlias all call `adb getprop` under the hood. We fetch them in one call and call NativeDevice.setProperty. Even if we don't do this, NativeDevice will itself call setProperty and cache the result for future calls. We are just doing it slightly earlier. If the device is in recovery or there are other errors fetching the props, we just ignore them.
canSwitchToHeadlessSystemUser
public boolean canSwitchToHeadlessSystemUser ()
Returns whether it's allowed to switch to the headless SYSTEM user.
Returns | |
---|---|
boolean |
Throws | |
---|---|
DeviceNotAvailableException |
checkApiLevelAgainstNextRelease
public boolean checkApiLevelAgainstNextRelease (int strictMinLevel)
Check whether or not a feature is currently supported given a minimally supported level. This method takes into account unreleased features yet, before API level is raised.
Parameters | |
---|---|
strictMinLevel |
int : The strict min possible level that supports the feature. |
Returns | |
---|---|
boolean |
True if the level is supported. False otherwise. |
Throws | |
---|---|
DeviceNotAvailableException |
checkConnectivity
public boolean checkConnectivity ()
Check that device has network connectivity.
Returns | |
---|---|
boolean |
true if device has a working network connection,
false overwise. |
Throws | |
---|---|
DeviceNotAvailableException |
clearErrorDialogs
public boolean clearErrorDialogs ()
Attempt to dismiss any error dialogs currently displayed on device UI.
Returns | |
---|---|
boolean |
true if no dialogs were present or dialogs were successfully cleared.
false otherwise. |
Throws | |
---|---|
DeviceNotAvailableException |
clearLastConnectedWifiNetwork
public void clearLastConnectedWifiNetwork ()
Clears the last connected wifi network. This should be called when starting a new invocation to avoid connecting to the wifi network used in the previous test after device reboots.
clearLogcat
public void clearLogcat ()
Deletes any accumulated logcat data.
This is useful for cases when you want to ensureITestDevice.getLogcat()
only returns
log data produced after a certain point (such as after flashing a new device build, etc).
connectToWifiNetwork
public boolean connectToWifiNetwork (wifiSsidToPsk, boolean scanSsid)
Connects to a wifi network.
Turns on wifi and blocks until a successful connection is made with one of the wifi
networks given in the wifiSsidToPsk map. Once a connection is made, the instance will try to
restore the connection after every reboot until ITestDevice.disconnectFromWifi()
or
ITestDevice.clearLastConnectedWifiNetwork()
is called.
Parameters | |
---|---|
wifiSsidToPsk |
: A map of wifi SSIDs to passwords. |
scanSsid |
boolean : whether to scan for hidden SSIDs for this network. |
Returns | |
---|---|
boolean |
true if connected to wifi network successfully. false
otherwise |
Throws | |
---|---|
DeviceNotAvailableException |
connectToWifiNetwork
public boolean connectToWifiNetwork (String wifiSsid, String wifiPsk)
Connects to a wifi network.
Turns on wifi and blocks until a successful connection is made to the specified wifi network. Once a connection is made, the instance will try to restore the connection after every reboot untilITestDevice.disconnectFromWifi()
or
ITestDevice.clearLastConnectedWifiNetwork()
is called.
Parameters | |
---|---|
wifiSsid |
String : the wifi ssid to connect to |
wifiPsk |
String : PSK passphrase or null if unencrypted |
Returns | |
---|---|
boolean |
true if connected to wifi network successfully. false
otherwise |
Throws | |
---|---|
DeviceNotAvailableException |
connectToWifiNetwork
public boolean connectToWifiNetwork (wifiSsidToPsk)
Connects to a wifi network.
Turns on wifi and blocks until a successful connection is made with one of the wifi
networks given in the wifiSsidToPsk map. Once a connection is made, the instance will try to
restore the connection after every reboot until ITestDevice.disconnectFromWifi()
or
ITestDevice.clearLastConnectedWifiNetwork()
is called.f
Parameters | |
---|---|
wifiSsidToPsk |
: A map of wifi SSIDs to passwords. |
Returns | |
---|---|
boolean |
true if connected to wifi network successfully. false
otherwise |
Throws | |
---|---|
DeviceNotAvailableException |
connectToWifiNetwork
public boolean connectToWifiNetwork (String wifiSsid, String wifiPsk, boolean scanSsid)
Connects to a wifi network.
Turns on wifi and blocks until a successful connection is made to the specified wifi network. Once a connection is made, the instance will try to restore the connection after every reboot untilITestDevice.disconnectFromWifi()
or
ITestDevice.clearLastConnectedWifiNetwork()
is called.
Parameters | |
---|---|
wifiSsid |
String : the wifi ssid to connect to |
wifiPsk |
String : PSK passphrase or null if unencrypted |
scanSsid |
boolean : whether to scan for hidden SSID for this network. |
Returns | |
---|---|
boolean |
true if connected to wifi network successfully. false
otherwise |
Throws | |
---|---|
DeviceNotAvailableException |
connectToWifiNetworkIfNeeded
public boolean connectToWifiNetworkIfNeeded (String wifiSsid, String wifiPsk, boolean scanSsid)
A variant of connectToWifiNetwork(String, String)
that only connects if device
currently does not have network connectivity.
Parameters | |
---|---|
scanSsid |
boolean : whether to scan for hidden SSID for this network |
Returns | |
---|---|
boolean |
true if connected to wifi network successfully. false
otherwise |
Throws | |
---|---|
DeviceNotAvailableException |
connectToWifiNetworkIfNeeded
public boolean connectToWifiNetworkIfNeeded (String wifiSsid, String wifiPsk)
A variant of connectToWifiNetwork(String, String)
that only connects if device
currently does not have network connectivity.
Returns | |
---|---|
boolean |
true if connected to wifi network successfully. false
otherwise |
Throws | |
---|---|
DeviceNotAvailableException |
createUser
public int createUser (String name, boolean guest, boolean ephemeral)
Create a user with a given name and the provided flags
Parameters | |
---|---|
name |
String : of the user to create on the device |
guest |
boolean : enable the user flag --guest during creation |
ephemeral |
boolean : enable the user flag --ephemeral during creation |
Returns | |
---|---|
int |
id of the created user |
Throws | |
---|---|
DeviceNotAvailableException |
createUser
public int createUser (String name, boolean guest, boolean ephemeral, boolean forTesting)
Create a user with a given name and the provided flags
Parameters | |
---|---|
name |
String : of the user to create on the device |
guest |
boolean : enable the user flag --guest during creation |
ephemeral |
boolean : enable the user flag --ephemeral during creation |
forTesting |
boolean : enable the test flag --for-testing during creation |
Returns | |
---|---|
int |
id of the created user |
Throws | |
---|---|
DeviceNotAvailableException |
createUser
public int createUser (String name)
Create a user with a given name and default flags 0.
Parameters | |
---|---|
name |
String : of the user to create on the device |
Returns | |
---|---|
int |
the integer for the user id created |
Throws | |
---|---|
DeviceNotAvailableException |
createUserNoThrow
public int createUserNoThrow (String name)
Create a user with a given name and default flags 0.
Parameters | |
---|---|
name |
String : of the user to create on the device |
Returns | |
---|---|
int |
the integer for the user id created or -1 for error. |
Throws | |
---|---|
DeviceNotAvailableException |
deleteFile
public void deleteFile (String deviceFilePath, int userId)
Helper method to delete a file or directory on the device.
Parameters | |
---|---|
deviceFilePath |
String : The absolute path of the file on the device. |
userId |
int : The user id to delete from |
Throws | |
---|---|
DeviceNotAvailableException |
deleteFile
public void deleteFile (String deviceFilePath)
Helper method to delete a file or directory on the device.
Parameters | |
---|---|
deviceFilePath |
String : The absolute path of the file on the device. |
Throws | |
---|---|
DeviceNotAvailableException |
deregisterDeviceActionReceiver
public void deregisterDeviceActionReceiver (IDeviceActionReceiver deviceActionReceiver)
Removes the registered IDeviceActionReceiver
.
Parameters | |
---|---|
deviceActionReceiver |
IDeviceActionReceiver : A IDeviceActionReceiver which will be removed. |
deviceSoftRestarted
public boolean deviceSoftRestarted (ProcessInfo prevSystemServerProcess)
Helper method to check if device soft-restarted by comparing current system_server with
previous system_server ProcessInfo
. Use getProcessByName(String)
to get ProcessInfo
.
Parameters | |
---|---|
prevSystemServerProcess |
ProcessInfo : the previous system_server process ProcessInfo . |
Returns | |
---|---|
boolean |
true if device soft-restarted |
Throws | |
---|---|
DeviceNotAvailableException |
deviceSoftRestartedSince
public boolean deviceSoftRestartedSince (long utcEpochTime, TimeUnit timeUnit)
Helper method to check whether device soft-restarted since the UTC time since epoch from
device and its ERROR(/TimeUnit)
. Soft-Restart refers to system_server restarted outside of a
device hard reboot (for example: requested reboot). The current device utcEpochTime in
Milliseccond can be obtained by method getDeviceDate()
.
Parameters | |
---|---|
utcEpochTime |
long : the device time in second since epoch. |
timeUnit |
TimeUnit : the time unit TimeUnit for the given utcEpochTime. |
Returns | |
---|---|
boolean |
true if device soft-restarted |
Throws | |
---|---|
DeviceNotAvailableException |
disableAdbRoot
public boolean disableAdbRoot ()
Turns off adb root.
Disabling adb root may cause device to disconnect from adb. This method will block until device is available.Returns | |
---|---|
boolean |
true if successful. |
Throws | |
---|---|
DeviceNotAvailableException |
disableKeyguard
public void disableKeyguard ()
Attempts to disable the keyguard.
First wait for the input dispatch to become ready, this happens around the same time when the device reports BOOT_COMPLETE, apparently asynchronously, because current framework implementation has occasional race condition. Then command is sent to dismiss keyguard (works on non-secure ones only)
Throws | |
---|---|
DeviceNotAvailableException |
disableNetworkMonitor
public boolean disableNetworkMonitor ()
Disables network monitoring on device.
Returns | |
---|---|
boolean |
true if monitoring is disabled successfully. false
if it failed. |
Throws | |
---|---|
DeviceNotAvailableException |
disconnectFromWifi
public boolean disconnectFromWifi ()
Disconnects from a wifi network.
Removes all networks from known networks list and disables wifi.Returns | |
---|---|
boolean |
true if disconnected from wifi network successfully. false
if disconnect failed. |
Throws | |
---|---|
DeviceNotAvailableException |
doesFileExist
public boolean doesFileExist (String deviceFilePath, int userId)
Helper method to determine if file on device exists for a given user.
Parameters | |
---|---|
deviceFilePath |
String : the absolute path of file on device to check |
userId |
int : The user id against which to check file existence |
Returns | |
---|---|
boolean |
true if file exists, false otherwise. |
Throws | |
---|---|
DeviceNotAvailableException |
doesFileExist
public boolean doesFileExist (String deviceFilePath)
Helper method to determine if file on device exists.
Parameters | |
---|---|
deviceFilePath |
String : the absolute path of file on device to check |
Returns | |
---|---|
boolean |
true if file exists, false otherwise. |
Throws | |
---|---|
DeviceNotAvailableException |
dumpHeap
public File dumpHeap (String process, String devicePath)
Attempt to dump the heap from the system_server. It is the caller responsibility to clean up the dumped file.
Parameters | |
---|---|
process |
String : the name of the device process to dumpheap on. |
devicePath |
String : the path on the device where to put the dump. This must be a location where
permissions allow it. |
Returns | |
---|---|
File |
the ERROR(/File) containing the report. Null if something failed. |
Throws | |
---|---|
DeviceNotAvailableException |
enableAdbRoot
public boolean enableAdbRoot ()
Turns on adb root. If the "enable-root" setting is "false", will log a message and return without enabling root.
Enabling adb root may cause device to disconnect from adb. This method will block until device is available.Returns | |
---|---|
boolean |
true if successful. |
Throws | |
---|---|
DeviceNotAvailableException |
enableNetworkMonitor
public boolean enableNetworkMonitor ()
Enables network monitoring on device.
Returns | |
---|---|
boolean |
true if monitoring is enabled successfully. false
if it failed. |
Throws | |
---|---|
DeviceNotAvailableException |
executeAdbCommand
public String executeAdbCommand (long timeout, String... cmdArgs)
Helper method which executes a adb command as a system command with a specified timeout.
executeShellCommand(String)
should be used instead wherever possible, as that
method provides better failure detection and performance.
Parameters | |
---|---|
timeout |
long : the time in milliseconds before the device is considered unresponsive, 0L for
no timeout |
cmdArgs |
String : the adb command and arguments to run |
Returns | |
---|---|
String |
the stdout from command. null if command failed to execute. |
Throws | |
---|---|
DeviceNotAvailableException |
executeAdbCommand
public String executeAdbCommand (long timeout,envMap, String... cmdArgs)
Helper method which executes a adb command as a system command with a specified timeout.
executeShellCommand(String)
should be used instead wherever possible, as that
method provides better failure detection and performance.
Parameters | |
---|---|
timeout |
long : the time in milliseconds before the device is considered unresponsive, 0L for
no timeout |
envMap |
: environment to set for the command |
cmdArgs |
String : the adb command and arguments to run |
Returns | |
---|---|
String |
the stdout from command. null if command failed to execute. |
Throws | |
---|---|
DeviceNotAvailableException |
executeAdbCommand
public String executeAdbCommand (String... cmdArgs)
Helper method which executes a adb command as a system command.
executeShellCommand(String)
should be used instead wherever possible, as that
method provides better failure detection and performance.
Parameters | |
---|---|
cmdArgs |
String : the adb command and arguments to run |
Returns | |
---|---|
String |
the stdout from command. null if command failed to execute. |
Throws | |
---|---|
DeviceNotAvailableException |
executeFastbootCommand
public CommandResult executeFastbootCommand (String... cmdArgs)
Helper method which executes a fastboot command as a system command with a default timeout of 2 minutes.
Expected to be used when device is already in fastboot mode.
Parameters | |
---|---|
cmdArgs |
String : the fastboot command and arguments to run |
Returns | |
---|---|
CommandResult |
the CommandResult containing output of command |
Throws | |
---|---|
DeviceNotAvailableException |
executeFastbootCommand
public CommandResult executeFastbootCommand (long timeout, String... cmdArgs)
Helper method which executes a fastboot command as a system command.
Expected to be used when device is already in fastboot mode.Parameters | |
---|---|
timeout |
long : the time in milliseconds before the command expire |
cmdArgs |
String : the fastboot command and arguments to run |
Returns | |
---|---|
CommandResult |
the CommandResult containing output of command |
Throws | |
---|---|
DeviceNotAvailableException |
executeLongFastbootCommand
public CommandResult executeLongFastbootCommand (String... cmdArgs)
Helper method which executes a long running fastboot command as a system command.
Identical toexecuteFastbootCommand(String)
except uses a longer timeout.
Parameters | |
---|---|
cmdArgs |
String : the fastboot command and arguments to run |
Returns | |
---|---|
CommandResult |
the CommandResult containing output of command |
Throws | |
---|---|
DeviceNotAvailableException |
executeLongFastbootCommand
public CommandResult executeLongFastbootCommand (envVarMap, String... cmdArgs)
Helper method which executes a long running fastboot command as a system command with system environment variables.
Identical to executeFastbootCommand(String)
except uses a longer timeout.
Parameters | |
---|---|
envVarMap |
: the system environment variables that the fastboot command run with |
cmdArgs |
String : the fastboot command and arguments to run |
Returns | |
---|---|
CommandResult |
the CommandResult containing output of command |
Throws | |
---|---|
DeviceNotAvailableException |
executeShellCommand
public String executeShellCommand (String command)
Helper method which executes a adb shell command and returns output as a String
.
Parameters | |
---|---|
command |
String : the adb shell command to run |
Returns | |
---|---|
String |
the shell output |
Throws | |
---|---|
DeviceNotAvailableException |
executeShellCommand
public void executeShellCommand (String command, IShellOutputReceiver receiver, long maxTimeToOutputShellResponse, TimeUnit timeUnit, int retryAttempts)
Executes a adb shell command, with more parameters to control command behavior.
Parameters | |
---|---|
command |
String : the adb shell command to run |
receiver |
IShellOutputReceiver : the IShellOutputReceiver to direct shell output to. |
maxTimeToOutputShellResponse |
long : the maximum amount of time during which the command is
allowed to not output any response; unit as specified in timeUnit |
timeUnit |
TimeUnit : unit for maxTimeToOutputShellResponse |
retryAttempts |
int : the maximum number of times to retry command if it fails due to a
exception. DeviceNotResponsiveException will be thrown if retryAttempts
are performed without success. |
Throws | |
---|---|
DeviceNotAvailableException |
executeShellCommand
public void executeShellCommand (String command, IShellOutputReceiver receiver, long maxTimeoutForCommand, long maxTimeToOutputShellResponse, TimeUnit timeUnit, int retryAttempts)
Executes a adb shell command, with more parameters to control command behavior.
Parameters | |
---|---|
command |
String : the adb shell command to run |
receiver |
IShellOutputReceiver : the IShellOutputReceiver to direct shell output to. |
maxTimeoutForCommand |
long : the maximum timeout for the command to complete; unit as
specified in timeUnit |
maxTimeToOutputShellResponse |
long : the maximum amount of time during which the command is
allowed to not output any response; unit as specified in timeUnit |
timeUnit |
TimeUnit : unit for maxTimeToOutputShellResponse |
retryAttempts |
int : the maximum number of times to retry command if it fails due to a
exception. DeviceNotResponsiveException will be thrown if retryAttempts are
performed without success. |
Throws | |
---|---|
DeviceNotAvailableException |
executeShellCommand
public void executeShellCommand (String command, IShellOutputReceiver receiver)
Executes the given adb shell command, retrying multiple times if command fails.
A simpler form ofexecuteShellCommand(String, com.android.ddmlib.IShellOutputReceiver, long, TimeUnit, int)
with
default values.
Parameters | |
---|---|
command |
String : the adb shell command to run |
receiver |
IShellOutputReceiver : the IShellOutputReceiver to direct shell output to. |
Throws | |
---|---|
DeviceNotAvailableException |
executeShellV2Command
public CommandResult executeShellV2Command (String cmd)
Helper method which executes a adb shell command and returns the results as a CommandResult
properly populated with the command status output, stdout and stderr.
Parameters | |
---|---|
cmd |
String : The command that should be run. |
Returns | |
---|---|
CommandResult |
The result in CommandResult . |
Throws | |
---|---|
DeviceNotAvailableException |
executeShellV2Command
public CommandResult executeShellV2Command (String cmd, OutputStream pipeToOutput)
Helper method which executes an adb shell command and returns the results as a CommandResult
properly populated with the command status output and stderr. stdout is
directed to the specified stream.
Parameters | |
---|---|
cmd |
String : The command that should be run. |
pipeToOutput |
OutputStream : ERROR(/OutputStream) where the std output will be redirected, or null. |
Returns | |
---|---|
CommandResult |
The result in CommandResult . |
Throws | |
---|---|
DeviceNotAvailableException |
executeShellV2Command
public CommandResult executeShellV2Command (String cmd, File pipeAsInput)
Helper method which executes an adb shell command and returns the results as a CommandResult
properly populated with the command status output, stdout and stderr.
Parameters | |
---|---|
cmd |
String : The command that should be run. |
pipeAsInput |
File : A ERROR(/File) that will be piped as input to the command, or null. |
Returns | |
---|---|
CommandResult |
The result in CommandResult . |
Throws | |
---|---|
DeviceNotAvailableException |
executeShellV2Command
public CommandResult executeShellV2Command (String cmd, long maxTimeoutForCommand, TimeUnit timeUnit, int retryAttempts)
Executes a adb shell command, with more parameters to control command behavior.
Parameters | |
---|---|
cmd |
String : the adb shell command to run |
maxTimeoutForCommand |
long : the maximum timeout for the command to complete; unit as
specified in timeUnit |
timeUnit |
TimeUnit : unit for maxTimeToOutputShellResponse |
retryAttempts |
int : the maximum number of times to retry command if it fails due to a
exception. DeviceNotResponsiveException will be thrown if retryAttempts are
performed without success. |
Returns | |
---|---|
CommandResult |
Throws | |
---|---|
DeviceNotAvailableException |
executeShellV2Command
public CommandResult executeShellV2Command (String cmd, long maxTimeoutForCommand, TimeUnit timeUnit)
Executes a adb shell command, with more parameters to control command behavior.
Parameters | |
---|---|
cmd |
String : the adb shell command to run |
maxTimeoutForCommand |
long : the maximum timeout for the command to complete; unit as
specified in timeUnit |
timeUnit |
TimeUnit : unit for maxTimeToOutputShellResponse |
Returns | |
---|---|
CommandResult |
Throws | |
---|---|
DeviceNotAvailableException |
executeShellV2Command
public CommandResult executeShellV2Command (String cmd, File pipeAsInput, OutputStream pipeToOutput, long maxTimeoutForCommand, TimeUnit timeUnit, int retryAttempts)
Executes a adb shell command, with more parameters to control command behavior.
Parameters | |
---|---|
cmd |
String : the adb shell command to run |
pipeAsInput |
File : A ERROR(/File) that will be piped as input to the command, or null. |
pipeToOutput |
OutputStream : ERROR(/OutputStream) where the std output will be redirected, or null. |
maxTimeoutForCommand |
long : the maximum timeout for the command to complete; unit as
specified in timeUnit |
timeUnit |
TimeUnit : unit for maxTimeToOutputShellResponse |
retryAttempts |
int : the maximum number of times to retry command if it fails due to a
exception. DeviceNotResponsiveException will be thrown if retryAttempts are
performed without success. |
Returns | |
---|---|
CommandResult |
Throws | |
---|---|
DeviceNotAvailableException |
executeShellV2Command
public CommandResult executeShellV2Command (String cmd, File pipeAsInput, OutputStream pipeToOutput, OutputStream pipeToError, long maxTimeoutForCommand, TimeUnit timeUnit, int retryAttempts)
Executes a adb shell command, with more parameters to control command behavior.
Parameters | |
---|---|
cmd |
String : the adb shell command to run |
pipeAsInput |
File : A ERROR(/File) that will be piped as input to the command, or null. |
pipeToOutput |
OutputStream : ERROR(/OutputStream) where the std output will be redirected, or null. |
pipeToError |
OutputStream : ERROR(/OutputStream) where the std error will be redirected, or null. |
maxTimeoutForCommand |
long : the maximum timeout for the command to complete; unit as
specified in timeUnit |
timeUnit |
TimeUnit : unit for maxTimeToOutputShellResponse |
retryAttempts |
int : the maximum number of times to retry command if it fails due to a
exception. DeviceNotResponsiveException will be thrown if retryAttempts are
performed without success. |
Returns | |
---|---|
CommandResult |
Throws | |
---|---|
DeviceNotAvailableException |
fastbootWipePartition
public CommandResult fastbootWipePartition (String partition)
Helper method which wipes a partition for the device.
IfgetUseFastbootErase()
is true
, then fastboot erase will be used to wipe
the partition. The device must then create a filesystem the next time the device boots.
Otherwise, fastboot format is used which will create a new filesystem on the device.
Expected to be used when device is already in fastboot mode.
Parameters | |
---|---|
partition |
String : the partition to wipe |
Returns | |
---|---|
CommandResult |
the CommandResult containing output of command |
Throws | |
---|---|
DeviceNotAvailableException |
getActiveApexes
publicgetActiveApexes ()
Fetch the information about APEXes activated on the device.
Returns | |
---|---|
|
ERROR(/Set) of ApexInfo currently activated on the device |
Throws | |
---|---|
DeviceNotAvailableException |
getAllSettings
publicgetAllSettings (String namespace)
Return key value pairs of requested namespace.
Parameters | |
---|---|
namespace |
String : must be one of {"system", "secure", "global"} |
Returns | |
---|---|
|
the map of key value pairs. Null if namespace is not supported. |
Throws | |
---|---|
DeviceNotAvailableException |
getAllocationState
public DeviceAllocationState getAllocationState ()
Return the current allocation state of device
Returns | |
---|---|
DeviceAllocationState |
getAndroidId
public String getAndroidId (int userId)
Find and return the android-id associated to a userId, null if not found.
Parameters | |
---|---|
userId |
int |
Returns | |
---|---|
String |
Throws | |
---|---|
DeviceNotAvailableException |
getAndroidIds
publicgetAndroidIds ()
Create a Map of android ids found matching user ids. There is no insurance that each user id will found an android id associated in this function so some user ids may match null.
Returns | |
---|---|
|
Map of android ids found matching user ids. |
Throws | |
---|---|
DeviceNotAvailableException |
getApiLevel
public int getApiLevel ()
Get the device API Level. Defaults to UNKNOWN_API_LEVEL
.
Returns | |
---|---|
int |
an integer indicating the API Level of device |
Throws | |
---|---|
DeviceNotAvailableException |
getAppPackageInfo
public PackageInfo getAppPackageInfo (String packageName)
Fetch information about a package installed on device.
Parameters | |
---|---|
packageName |
String |
Returns | |
---|---|
PackageInfo |
the PackageInfo or null if information could not be retrieved |
Throws | |
---|---|
DeviceNotAvailableException |
getAppPackageInfos
publicgetAppPackageInfos ()
Fetch information of packages installed on the device.
Returns | |
---|---|
|
ERROR(/List) of PackageInfo s installed on the device. |
Throws | |
---|---|
DeviceNotAvailableException |
getBasebandVersion
public String getBasebandVersion ()
Convenience method to get baseband (radio) version of this device. Getting the radio version
is device specific, so it might not return the correct information for all devices. This
method relies on the gsm.version.baseband propery to return the correct version information.
This is not accurate for some CDMA devices and the version returned here might not match
the version reported from fastboot and might not return the version for the CDMA radio.
TL;DR this method only reports accurate version if the gsm.version.baseband property is the
same as the version returned by fastboot getvar version-baseband
.
Returns | |
---|---|
String |
the String baseband version or null if it cannot be determined
(device has no radio or version string cannot be read) |
Throws | |
---|---|
DeviceNotAvailableException |
getBattery
public Integer getBattery ()
Returns the current battery level of a device or Null if battery level unavailable.
Returns | |
---|---|
Integer |
getBooleanProperty
public boolean getBooleanProperty (String name, boolean defaultValue)
Returns boolean value of the given property.
Parameters | |
---|---|
name |
String : the property name |
defaultValue |
boolean : default value to return if property is empty or doesn't exist. |
Returns | |
---|---|
boolean |
true if the property has value "1" , "y" , "yes" ,
"on" , or "true" , false if the property has value of "0" ,
"n" , "no" , "off" , "false" , or defaultValue
otherwise. |
Throws | |
---|---|
DeviceNotAvailableException |
getBootHistory
publicgetBootHistory ()
Helper method collects the boot history map with boot time and boot reason.
Returns | |
---|---|
|
Map of boot time (UTC time in second since Epoch) and boot reason |
Throws | |
---|---|
DeviceNotAvailableException |
getBootHistorySince
publicgetBootHistorySince (long utcEpochTime, TimeUnit timeUnit)
Helper method collects the boot history map with boot time and boot reason since the given
time since epoch from device and the time unit specified. The current device utcEpochTime in
Millisecond can be obtained by method getDeviceDate()
.
Parameters | |
---|---|
utcEpochTime |
long : the device time since Epoch. |
timeUnit |
TimeUnit : the time unit TimeUnit . |
Returns | |
---|---|
|
Map of boot time (UTC time in second since Epoch) and boot reason |
Throws | |
---|---|
DeviceNotAvailableException |
getBootloaderVersion
public String getBootloaderVersion ()
Convenience method to get the bootloader version of this device.
Will attempt to retrieve bootloader version from the device's current state. (ie if device is in fastboot mode, it will attempt to retrieve version from fastboot)Returns | |
---|---|
String |
the String bootloader version or null if it cannot be found |
Throws | |
---|---|
DeviceNotAvailableException |
getBugreport
public InputStreamSource getBugreport ()
Retrieves a bugreport from the device.
The implementation of this is guaranteed to continue to work on a device without an sdcard (or where the sdcard is not yet mounted).
Returns | |
---|---|
InputStreamSource |
An InputStreamSource which will produce the bugreport contents on demand. In
case of failure, the InputStreamSource will produce an empty ERROR(/InputStream) . |
getBugreportz
public InputStreamSource getBugreportz ()
Retrieves a bugreportz from the device. Zip format bugreport contains the main bugreport and other log files that are useful for debugging.
Only supported for 'adb version' > 1.0.36
Returns | |
---|---|
InputStreamSource |
a InputStreamSource of the zip file containing the bugreportz, return null in
case of failure. |
getBuildAlias
public String getBuildAlias ()
Retrieve the alias of the build that the device is currently running.
Build alias is usually a more readable string than build id (typically a number for Nexus builds). For example, final Android 4.2 release has build alias JDQ39, and build id 573038
Returns | |
---|---|
String |
the build alias or fall back to build id if it could not be retrieved |
Throws | |
---|---|
DeviceNotAvailableException |
getBuildFlavor
public String getBuildFlavor ()
Retrieve the build flavor for the device.
Returns | |
---|---|
String |
the build flavor or null if it could not be retrieved |
Throws | |
---|---|
DeviceNotAvailableException |
getBuildId
public String getBuildId ()
Retrieve the build the device is currently running.
Returns | |
---|---|
String |
the build id or IBuildInfo.UNKNOWN_BUILD_ID if it could not be retrieved |
Throws | |
---|---|
DeviceNotAvailableException |
getBuildSigningKeys
public String getBuildSigningKeys ()
Returns the key type used to sign the device image
Typically Android devices may be signed with test-keys (like in AOSP) or release-keys (controlled by individual device manufacturers)
Returns | |
---|---|
String |
The signing key if found, null otherwise. |
Throws | |
---|---|
DeviceNotAvailableException |
getCachedDeviceDescriptor
public DeviceDescriptor getCachedDeviceDescriptor ()
Returns a cached DeviceDescriptor
if the device is allocated, otherwise returns the
current DeviceDescriptor
.
Returns | |
---|---|
DeviceDescriptor |
getCachedDeviceDescriptor
public DeviceDescriptor getCachedDeviceDescriptor (boolean shortDescriptor)
Returns a cached DeviceDescriptor
if the device is allocated, otherwise returns the
current DeviceDescriptor
.
Parameters | |
---|---|
shortDescriptor |
boolean : Whether or not to limit descriptor to bare minimum info |
Returns | |
---|---|
DeviceDescriptor |
getChildren
public String[] getChildren (String path)
Alternative to using IFileEntry
that sometimes won't work because of permissions.
Parameters | |
---|---|
path |
String : is the path on the device where to do the search |
Returns | |
---|---|
String[] |
Array of string containing all the file in a path on the device. |
Throws | |
---|---|
DeviceNotAvailableException |
getConnection
public AbstractConnection getConnection ()
The current connection associated with the device.
Returns | |
---|---|
AbstractConnection |
getContentProvider
public ContentProviderHandler getContentProvider (int userId)
Returns the ContentProviderHandler
or null if not available.
Content provider can be reused if it was constructed before with the same userId
.
Parameters | |
---|---|
userId |
int : the user id to initialize the content provider with. |
Returns | |
---|---|
ContentProviderHandler |
Throws | |
---|---|
DeviceNotAvailableException |
getCurrentFoldableState
public DeviceFoldableState getCurrentFoldableState ()
Returns the current foldable state of the device or null if some issues occurred.
Returns | |
---|---|
DeviceFoldableState |
Throws | |
---|---|
DeviceNotAvailableException |
getCurrentUser
public int getCurrentUser ()
Return the id of the current running user. In case of error, return -10000.
Returns | |
---|---|
int |
Throws | |
---|---|
DeviceNotAvailableException |
getDeviceClass
public String getDeviceClass ()
Get the device class.
Returns | |
---|---|
String |
the String device class. |
getDeviceDate
public long getDeviceDate ()
Return the date of the device in millisecond since epoch.
Returns | |
---|---|
long |
the date of the device in epoch format. |
Throws | |
---|---|
DeviceNotAvailableException |
getDeviceDescriptor
public DeviceDescriptor getDeviceDescriptor ()
Return a DeviceDescriptor
from the device information to get info on it without
passing the actual device object.
Returns | |
---|---|
DeviceDescriptor |
getDeviceDescriptor
public DeviceDescriptor getDeviceDescriptor (boolean shortDescriptor)
Return a DeviceDescriptor
from the device information to get info on it without
passing the actual device object.
Parameters | |
---|---|
shortDescriptor |
boolean : Whether or not to limit descriptor to bare minimum info |
Returns | |
---|---|
DeviceDescriptor |
getDeviceState
public TestDeviceState getDeviceState ()
Get the device's state.
Returns | |
---|---|
TestDeviceState |
getDeviceTimeOffset
public long getDeviceTimeOffset (Date date)
Helper to get the time difference between the device and a given ERROR(/Date)
. Use Epoch time
internally.
Parameters | |
---|---|
date |
Date |
Returns | |
---|---|
long |
the difference in milliseconds |
Throws | |
---|---|
DeviceNotAvailableException |
getEmulatorOutput
public InputStreamSource getEmulatorOutput ()
Get the stream of emulator stdout and stderr
Returns | |
---|---|
InputStreamSource |
emulator output |
getEmulatorProcess
public Process getEmulatorProcess ()
Return the Process
corresponding to this emulator.
Returns | |
---|---|
Process |
the Process or null |
getExecuteShellCommandLog
public final File getExecuteShellCommandLog ()
The log that contains all the executeShellCommand(String)
logs.
Returns | |
---|---|
File |
getExternalStoreFreeSpace
public long getExternalStoreFreeSpace ()
Helper method to determine amount of free space on device external storage.
Returns | |
---|---|
long |
the amount of free space in KB |
Throws | |
---|---|
DeviceNotAvailableException |
getFastbootPath
public String getFastbootPath ()
Returns the path of the fastboot binary being used.
Still requires isFastbootEnabled()
to be true, to have fastboot functions enabled.
Returns | |
---|---|
String |
getFastbootProductType
public String getFastbootProductType ()
Convenience method to get the product type of this device when its in fastboot mode.
This method should only be used if device should be in fastboot. Its a bit safer variant than the genericgetProductType()
method in this case, because ITestDevice
will know to recover device into fastboot if device is in incorrect state or is
unresponsive.
Returns | |
---|---|
String |
the String product type name or null if it cannot be determined |
Throws | |
---|---|
DeviceNotAvailableException |
getFastbootProductVariant
public String getFastbootProductVariant ()
Convenience method to get the product type of this device when its in fastboot mode.
This method should only be used if device should be in fastboot. Its a bit safer variant than the genericgetProductType()
method in this case, because ITestDevice
will know to recover device into fastboot if device is in incorrect state or is
unresponsive.
Returns | |
---|---|
String |
the String product type name or null if it cannot be determined |
Throws | |
---|---|
DeviceNotAvailableException |
getFastbootSerialNumber
public String getFastbootSerialNumber ()
Returns the fastboot mode serial number.
Returns | |
---|---|
String |
getFastbootVariable
public String getFastbootVariable (String variableName)
Retrieve the given fastboot variable value from the device.
Parameters | |
---|---|
variableName |
String : the variable name |
Returns | |
---|---|
String |
the property value or null if it does not exist |
Throws | |
---|---|
DeviceNotAvailableException |
getFastbootVersion
public String getFastbootVersion ()
Returns the version string of the fastboot binary being used. Or null if something goes wrong.
Returns | |
---|---|
String |
getFileEntry
public IFileEntry getFileEntry (String path)
Retrieve a reference to a remote file on device.
Parameters | |
---|---|
path |
String : the file path to retrieve. Can be an absolute path or path relative to '/'. (ie
both "/system" and "system" syntax is supported) |
Returns | |
---|---|
IFileEntry |
the IFileEntry or null if file at given path cannot
be found |
Throws | |
---|---|
DeviceNotAvailableException |
getFileEntry
public IFileEntry getFileEntry (FileListingService.FileEntry entry)
Unofficial helper to get a FileEntry
from a non-root path. FIXME: Refactor the
FileEntry system to have it available from any path. (even non root).
Parameters | |
---|---|
entry |
FileListingService.FileEntry : a FileEntry not necessarily root as Ddmlib requires. |
Returns | |
---|---|
IFileEntry |
a FileEntryWrapper representing the FileEntry. |
Throws | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
getFoldableStates
publicgetFoldableStates ()
Returns the list of foldable states on the device. Can be obtained with "cmd device_state print-states".
Returns | |
---|---|
|
Throws | |
---|---|
DeviceNotAvailableException |
getIDevice
public IDevice getIDevice ()
Returns a reference to the associated ddmlib IDevice
.
IDevice
may be allocated by DDMS each time the device disconnects and
reconnects from adb. Thus callers should not keep a reference to the IDevice
,
because that reference may become stale.
Returns | |
---|---|
IDevice |
the IDevice |
getInstalledPackageNames
publicgetInstalledPackageNames ()
Fetch the application package names present on the device.
Returns | |
---|---|
|
ERROR(/Set) of String package names currently installed on the device. |
Throws | |
---|---|
DeviceNotAvailableException |
getIntProperty
public long getIntProperty (String name, long defaultValue)
Returns integer value of the given property from the device.
Parameters | |
---|---|
name |
String : the property name |
defaultValue |
long : default value to return if property is empty or doesn't exist. |
Returns | |
---|---|
long |
the property value or defaultValue if the property is empty, doesn't exist,
or doesn't have an integer value. |
Throws | |
---|---|
DeviceNotAvailableException |
getIpAddress
public String getIpAddress ()
Gets the device's IP address.
Returns | |
---|---|
String |
the device's IP address, or null if device has no IP address |
Throws | |
---|---|
DeviceNotAvailableException |
getKeyguardState
public KeyguardControllerState getKeyguardState ()
Return an object to get the current state of the keyguard or null if not supported.
Returns | |
---|---|
KeyguardControllerState |
a KeyguardControllerState containing a snapshot of the state of the keyguard
and returns Null if the Keyguard query is not supported. |
Throws | |
---|---|
DeviceNotAvailableException |
getLastExpectedRebootTimeMillis
public long getLastExpectedRebootTimeMillis ()
Returns the last time Tradefed APIs triggered a reboot in milliseconds since EPOCH as
returned by System.currentTimeMillis()
.
Returns | |
---|---|
long |
getLaunchApiLevel
public int getLaunchApiLevel ()
Get the device's first launched API Level. Defaults to UNKNOWN_API_LEVEL
.
Returns | |
---|---|
int |
an integer indicating the first launched API Level of device |
Throws | |
---|---|
DeviceNotAvailableException |
getLogcat
public InputStreamSource getLogcat ()
Grabs a snapshot stream of the logcat data.
Works in two modes:
TestDeviceOptions.getMaxLogcatDataSize()
bytes of the current contents of the background
logcat capture
Returns | |
---|---|
InputStreamSource |
getLogcat
public InputStreamSource getLogcat (int maxBytes)
Grabs a snapshot stream of the last maxBytes
of captured logcat data.
Useful for cases when you want to capture frequent snapshots of the captured logcat data
without incurring the potentially big disk space penalty of getting the entire getLogcat()
snapshot.
Parameters | |
---|---|
maxBytes |
int : the maximum amount of data to return. Should be an amount that can
comfortably fit in memory |
Returns | |
---|---|
InputStreamSource |
getLogcatDump
public InputStreamSource getLogcatDump ()
Get a dump of the current logcat for device. Unlike getLogcat()
, this method will
always return a static dump of the logcat.
Has the disadvantage that nothing will be returned if device is not reachable.
Returns | |
---|---|
InputStreamSource |
a InputStreamSource of the logcat data. An empty stream is returned if fail
to capture logcat data. |
getLogcatSince
public InputStreamSource getLogcatSince (long date)
Grabs a snapshot stream of captured logcat data starting the date provided. The time on the
device should be used getDeviceDate()
.
Parameters | |
---|---|
date |
long : in millisecond since epoch format of when to start the snapshot until present.
(can be be obtained using 'date +%s') |
Returns | |
---|---|
InputStreamSource |
getMacAddress
public String getMacAddress ()
Returns the MAC address of the device, null if it fails to query from the device.
Returns | |
---|---|
String |
getMainUserId
public Integer getMainUserId ()
Returns the main user id.
Returns | |
---|---|
Integer |
the userId of the main user if there is one, and null if there is no main user. |
Throws | |
---|---|
DeviceNotAvailableException |
getMainlineModuleInfo
publicgetMainlineModuleInfo ()
Get the information about the mainline modules installed on the device.
Returns | |
---|---|
|
ERROR(/Set) of String mainline modules currently installed on the device. |
Throws | |
---|---|
DeviceNotAvailableException |
getMaxNumberOfRunningUsersSupported
public int getMaxNumberOfRunningUsersSupported ()
Get the maximum number of supported simultaneously running users. Defaults to 0.
Returns | |
---|---|
int |
an integer indicating the number of simultaneously running users |
Throws | |
---|---|
DeviceNotAvailableException |
getMaxNumberOfUsersSupported
public int getMaxNumberOfUsersSupported ()
Get the maximum number of supported users. Defaults to 0.
Returns | |
---|---|
int |
an integer indicating the number of supported users |
Throws | |
---|---|
DeviceNotAvailableException |
getMicrodroidProcess
public Process getMicrodroidProcess ()
Returns | |
---|---|
Process |
Returns the Process of the Microdroid VM. If TestDevice is not a Microdroid, returns null. |
getMonitor
public IDeviceStateMonitor getMonitor ()
Return the IDeviceStateMonitor
associated with device.
Returns | |
---|---|
IDeviceStateMonitor |
getMountPoint
public String getMountPoint (String mountName)
Returns a mount point.
Queries the device directly if the cached info inIDevice
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 |
getMountPointInfo
public ITestDevice.MountPointInfo getMountPointInfo (String mountpoint)
Returns a MountPointInfo
corresponding to the specified mountpoint path, or
null
if that path has nothing mounted or otherwise does not appear in
/proc/mounts as a mountpoint.
Parameters | |
---|---|
mountpoint |
String |
Returns | |
---|---|
ITestDevice.MountPointInfo |
A ERROR(/List) of MountPointInfo containing the information in "/proc/mounts" |
Throws | |
---|---|
DeviceNotAvailableException |
getMountPointInfo
publicgetMountPointInfo ()
Returns a parsed version of the information in /proc/mounts on the device
Returns | |
---|---|
|
A ERROR(/List) of MountPointInfo containing the information in "/proc/mounts" |
Throws | |
---|---|
DeviceNotAvailableException |
getOptions
public TestDeviceOptions getOptions ()
Fetch the test options for the device.
Returns | |
---|---|
TestDeviceOptions |
TestDeviceOptions related to the device under test. |
getPartitionFreeSpace
public long getPartitionFreeSpace (String partition)
Helper method to determine amount of free space on device partition.
Parameters | |
---|---|
partition |
String |
Returns | |
---|---|
long |
the amount of free space in KB |
Throws | |
---|---|
DeviceNotAvailableException |
getPrimaryUserId
public Integer getPrimaryUserId ()
Returns the primary user id.
Returns | |
---|---|
Integer |
the userId of the primary user if there is one, and null if there is no primary user. |
Throws | |
---|---|
DeviceNotAvailableException |
getProcessByName
public ProcessInfo getProcessByName (String processName)
Helper method runs the "pidof" and "stat" command and returns ProcessInfo
object with
PID and process start time of the given process.
Parameters | |
---|---|
processName |
String : the proces name String. |
Returns | |
---|---|
ProcessInfo |
ProcessInfo of given processName |
Throws | |
---|---|
DeviceNotAvailableException |
getProcessPid
public String getProcessPid (String process)
Returns the pid of the service or null if something went wrong.
Parameters | |
---|---|
process |
String : The proces name String. |
Returns | |
---|---|
String |
Throws | |
---|---|
DeviceNotAvailableException |
getProductType
public String getProductType ()
Convenience method to get the product type of this device.
This method will work if device is in either adb or fastboot mode.Returns | |
---|---|
String |
the String product type name. Will not be null |
Throws | |
---|---|
DeviceNotAvailableException |
getProductVariant
public String getProductVariant ()
Convenience method to get the product variant of this device.
This method will work if device is in either adb or fastboot mode.Returns | |
---|---|
String |
the String product variant name or null if it cannot be
determined |
Throws | |
---|---|
DeviceNotAvailableException |
getProperty
public String getProperty (String name)
Retrieve the given property value from the device.
Parameters | |
---|---|
name |
String : the property name |
Returns | |
---|---|
String |
the property value or null if it does not exist |
Throws | |
---|---|
DeviceNotAvailableException |
getRecoveryMode
public ITestDevice.RecoveryMode getRecoveryMode ()
Get the current recovery mode used for the device.
Returns | |
---|---|
ITestDevice.RecoveryMode |
the current recovery mode used for the device. |
getScreenshot
public InputStreamSource getScreenshot (long displayId)
Grabs a screenshot from the device given display id. Format is PNG.
TODO: extend the implementations above to support 'format' and 'rescale'
Parameters | |
---|---|
displayId |
long : the display id of the screen to get screenshot from. |
Returns | |
---|---|
InputStreamSource |
a InputStreamSource of the screenshot in format, or null if the
screenshot was not successful. |
Throws | |
---|---|
DeviceNotAvailableException |
getScreenshot
public InputStreamSource getScreenshot (String format)
Grabs a screenshot from the device. Recommended to use getScreenshot(format) instead with JPEG encoding for smaller size
Parameters | |
---|---|
format |
String : supported PNG, JPEG |
Returns | |
---|---|
InputStreamSource |
a InputStreamSource of the screenshot in format, or null if
the screenshot was not successful. |
Throws | |
---|---|
DeviceNotAvailableException |
getScreenshot
public InputStreamSource getScreenshot (String format, boolean rescale)
Grabs a screenshot from the device. Recommended to use getScreenshot(String)
instead
with JPEG encoding for smaller size.
Parameters | |
---|---|
format |
String : supported PNG, JPEG |
rescale |
boolean : if screenshot should be rescaled to reduce the size of resulting image |
Returns | |
---|---|
InputStreamSource |
a InputStreamSource of the screenshot in format, or null if the
screenshot was not successful. |
Throws | |
---|---|
DeviceNotAvailableException |
getScreenshot
public InputStreamSource getScreenshot ()
Grabs a screenshot from the device.
Returns | |
---|---|
InputStreamSource |
a InputStreamSource of the screenshot in png format, or null if
the screenshot was not successful. |
Throws | |
---|---|
DeviceNotAvailableException |
getSerialNumber
public String getSerialNumber ()
Convenience method to get serial number of this device.
Returns | |
---|---|
String |
the String serial number |
getSetting
public String getSetting (int userId, String namespace, String key)
Return the value of the requested setting. namespace must be one of: {"system", "secure", "global"}
Parameters | |
---|---|
userId |
int |
namespace |
String |
key |
String |
Returns | |
---|---|
String |
the value associated with the namespace:key of a user. Null if not found. |
Throws | |
---|---|
DeviceNotAvailableException |
getSetting
public String getSetting (String namespace, String key)
See getSetting(int, String, String)
and performed on system user.
Parameters | |
---|---|
namespace |
String |
key |
String |
Returns | |
---|---|
String |
Throws | |
---|---|
DeviceNotAvailableException |
getSimOperator
public String getSimOperator ()
Return the SIM card operator or null if not available or if device is not available.
Returns | |
---|---|
String |
getSimState
public String getSimState ()
Return the SIM card state or null if not available or device is not available.
Returns | |
---|---|
String |
getTombstones
publicgetTombstones ()
Fetch and return the list of tombstones from the devices. Requires root.
method is best-effort so if one tombstone fails to be pulled for any reason it will be
missing from the list. Only a DeviceNotAvailableException
will terminate the method
early.
Returns | |
---|---|
|
A list of tombstone files, empty if no tombstone. |
Throws | |
---|---|
DeviceNotAvailableException |
getTotalMemory
public long getTotalMemory ()
Returns total physical memory size in bytes or -1 in case of internal error
Returns | |
---|---|
long |
getTrackingSerial
public String getTrackingSerial ()
For device management purpose get the serial used to track the device.
Returns | |
---|---|
String |
getUninstallablePackageNames
publicgetUninstallablePackageNames ()
Fetch the application package names that can be uninstalled. This is presently defined as non-system packages, and updated system packages.
Returns | |
---|---|
|
ERROR(/Set) of uninstallable String package names currently installed on the
device. |
Throws | |
---|---|
DeviceNotAvailableException |
getUseFastbootErase
public boolean getUseFastbootErase ()
Get whether to use fastboot erase or fastboot format to wipe a partition on the device.
Returns | |
---|---|
boolean |
true if fastboot erase will be used or false if fastboot format will
be used. |
getUserFlags
public int getUserFlags (int userId)
Find and return the flags of a given user. Flags are defined in "android.content.pm.UserInfo" class in Android Open Source Project.
Parameters | |
---|---|
userId |
int |
Returns | |
---|---|
int |
the flags associated with the userId provided if found, -10000 in any other cases. |
Throws | |
---|---|
DeviceNotAvailableException |
getUserInfos
publicgetUserInfos ()
Gets the Map of useId to UserInfo
on the device. Will throw DeviceRuntimeException
if output from device is not as expected.
Returns | |
---|---|
|
the list of UserInfo objects. |
Throws | |
---|---|
DeviceNotAvailableException |
getUserSerialNumber
public int getUserSerialNumber (int userId)
Return the serial number associated to the userId if found, -10000 in any other cases.
Parameters | |
---|---|
userId |
int |
Returns | |
---|---|
int |
Throws | |
---|---|
DeviceNotAvailableException |
handleAllocationEvent
public IManagedTestDevice.DeviceEventResponse handleAllocationEvent (DeviceEvent event)
Process the given DeviceEvent. May transition device
to new state. Will inform the IDeviceMonitor
of any state transitions.
Process the DeviceEvent, which may or may not transition this device to a new allocation state.
Parameters | |
---|---|
event |
DeviceEvent |
Returns | |
---|---|
IManagedTestDevice.DeviceEventResponse |
hasFeature
public boolean hasFeature (String feature)
Check if a feature is available on a device.
Parameters | |
---|---|
feature |
String : which format should be "feature: |
Returns | |
---|---|
boolean |
True if feature is found, false otherwise. |
Throws | |
---|---|
DeviceNotAvailableException |
installPackage
public String installPackage (File packageFile, boolean reinstall, String... extraArgs)
Install an Android package on device.
Parameters | |
---|---|
packageFile |
File : the apk file to install |
reinstall |
boolean : true if a reinstall should be performed |
extraArgs |
String : optional extra arguments to pass. See 'adb shell pm -h' for available
options. |
Returns | |
---|---|
String |
a String with an error code, or null if success. |
Throws | |
---|---|
DeviceNotAvailableException |
installPackage
public String installPackage (File packageFile, boolean reinstall, boolean grantPermissions, String... extraArgs)
Install an Android package on device.
Note: Only use cases that requires explicit control of granting runtime permission at install time should call this function.
Parameters | |
---|---|
packageFile |
File : the apk file to install |
reinstall |
boolean : true if a reinstall should be performed |
grantPermissions |
boolean : if all runtime permissions should be granted at install time |
extraArgs |
String : optional extra arguments to pass. See 'adb shell pm -h' for available
options. |
Returns | |
---|---|
String |
a String with an error code, or null if success. |
Throws | |
---|---|
DeviceNotAvailableException |
installPackageForUser
public String installPackageForUser (File packageFile, boolean reinstall, int userId, String... extraArgs)
Install an Android package on device for a given user.
Parameters | |
---|---|
packageFile |
File : the apk file to install |
reinstall |
boolean : true if a reinstall should be performed |
userId |
int : the integer user id to install for. |
extraArgs |
String : optional extra arguments to pass. See 'adb shell pm -h' for available
options. |
Returns | |
---|---|
String |
a String with an error code, or null if success. |
Throws | |
---|---|
DeviceNotAvailableException |
installPackageForUser
public String installPackageForUser (File packageFile, boolean reinstall, boolean grantPermissions, int userId, String... extraArgs)
Install an Android package on device for a given user.
Note: Only use cases that requires explicit control of granting runtime permission at install time should call this function.
Parameters | |
---|---|
packageFile |
File : the apk file to install |
reinstall |
boolean : true if a reinstall should be performed |
grantPermissions |
boolean : if all runtime permissions should be granted at install time |
userId |
int : the integer user id to install for. |
extraArgs |
String : optional extra arguments to pass. See 'adb shell pm -h' for available
options. |
Returns | |
---|---|
String |
a String with an error code, or null if success. |
Throws | |
---|---|
DeviceNotAvailableException |
invalidatePropertyCache
public void invalidatePropertyCache ()
isAdbTcp
public boolean isAdbTcp ()
Returns | |
---|---|
boolean |
isAppEnumerationSupported
public boolean isAppEnumerationSupported ()
Check whether platform on device supports app enumeration
Returns | |
---|---|
boolean |
True if app enumeration is supported, false otherwise |
Throws | |
---|---|
DeviceNotAvailableException |
isBypassLowTargetSdkBlockSupported
public boolean isBypassLowTargetSdkBlockSupported ()
Check whether platform on device supports bypassing low target sdk block on app installs
Returns | |
---|---|
boolean |
True if bypass low target sdk block is supported, false otherwise |
Throws | |
---|---|
DeviceNotAvailableException |
isDebugfsMounted
public boolean isDebugfsMounted ()
Check if debugfs is mounted.
Returns | |
---|---|
boolean |
true if debugfs is mounted |
Throws | |
---|---|
DeviceNotAvailableException |
isDeviceEncrypted
public boolean isDeviceEncrypted ()
Returns if the device is encrypted.
Returns | |
---|---|
boolean |
true if the device is encrypted. |
Throws | |
---|---|
DeviceNotAvailableException |
isDirectory
public boolean isDirectory (String path)
Return True if the path on the device is a directory, false otherwise.
Parameters | |
---|---|
path |
String |
Returns | |
---|---|
boolean |
Throws | |
---|---|
DeviceNotAvailableException |
isEnableAdbRoot
public boolean isEnableAdbRoot ()
Returns | |
---|---|
boolean |
true if adb root should be enabled on device |
isEncryptionSupported
public boolean isEncryptionSupported ()
Returns if encryption is supported on the device.
Returns | |
---|---|
boolean |
true if the device supports encryption. |
Throws | |
---|---|
DeviceNotAvailableException |
isExecutable
public boolean isExecutable (String fullPath)
Returns True if the file path on the device is an executable file, false otherwise.
Parameters | |
---|---|
fullPath |
String |
Returns | |
---|---|
boolean |
Throws | |
---|---|
DeviceNotAvailableException |
isFastbootEnabled
public boolean isFastbootEnabled ()
Return if fastboot is available for the device.
Returns | |
---|---|
boolean |
isHeadless
public boolean isHeadless ()
Return true if the device is headless (no screen), false otherwise.
Returns | |
---|---|
boolean |
Throws | |
---|---|
DeviceNotAvailableException |
isHeadlessSystemUserMode
public boolean isHeadlessSystemUserMode ()
Returns whether the device uses headless system user mode.
Returns | |
---|---|
boolean |
Throws | |
---|---|
DeviceNotAvailableException |
isMainUserPermanentAdmin
public boolean isMainUserPermanentAdmin ()
Returns whether the main user is a permanent admin and can't be deleted or downgraded to non-admin status.
Returns | |
---|---|
boolean |
Throws | |
---|---|
DeviceNotAvailableException |
isMultiUserSupported
public boolean isMultiUserSupported ()
Determines if multi user is supported.
Returns | |
---|---|
boolean |
true if multi user is supported, false otherwise |
Throws | |
---|---|
DeviceNotAvailableException |
isPackageInstalled
public boolean isPackageInstalled (String packageName, String userId)
Query the device for a given package name and given user id to check if it's currently installed or not for that user.
Parameters | |
---|---|
packageName |
String : the package we are checking if it's installed. |
userId |
String : The user id we are checking the package is installed for. If null, primary user
zero will be used. |
Returns | |
---|---|
boolean |
True if the package is reported as installed. False otherwise. |
Throws | |
---|---|
DeviceNotAvailableException |
isPackageInstalled
public boolean isPackageInstalled (String packageName)
Query the device for a given package name to check if it's currently installed or not.
Parameters | |
---|---|
packageName |
String |
Returns | |
---|---|
boolean |
True if the package is reported as installed. False otherwise. |
Throws | |
---|---|
DeviceNotAvailableException |
isRuntimePermissionSupported
public boolean isRuntimePermissionSupported ()
Check whether platform on device supports runtime permission granting
Returns | |
---|---|
boolean |
True if runtime permission are supported, false otherwise. |
Throws | |
---|---|
DeviceNotAvailableException |
isStateBootloaderOrFastbootd
public boolean isStateBootloaderOrFastbootd ()
Returns true if device is in TestDeviceState.FASTBOOT
or TestDeviceState.FASTBOOTD
.
Returns | |
---|---|
boolean |
isUserRunning
public boolean isUserRunning (int userId)
Check if a given user is running.
Parameters | |
---|---|
userId |
int |
Returns | |
---|---|
boolean |
True if the user is running, false in every other cases. |
Throws | |
---|---|
DeviceNotAvailableException |
isUserSecondary
public boolean isUserSecondary (int userId)
Return whether the specified user is a secondary user according to it's flags.
Parameters | |
---|---|
userId |
int |
Returns | |
---|---|
boolean |
true if the user is secondary, false otherwise. |
Throws | |
---|---|
DeviceNotAvailableException |
isUserVisible
public boolean isUserVisible (int userId)
Checks if the given user is visible.
A "visible" user is a user that is interacting with the "human" user and hence is able to launch launch activities (typically in the default display).
Parameters | |
---|---|
userId |
int |
Returns | |
---|---|
boolean |
Throws | |
---|---|
DeviceNotAvailableException |
isUserVisibleOnDisplay
public boolean isUserVisibleOnDisplay (int userId, int displayId)
Checks if the given user is visible in the given display.
A "visible" user is a user that is interacting with the "human" user and hence is able to launch launch activities in that display.
Parameters | |
---|---|
userId |
int |
displayId |
int |
Returns | |
---|---|
boolean |
Throws | |
---|---|
DeviceNotAvailableException |
isVisibleBackgroundUsersOnDefaultDisplaySupported
public boolean isVisibleBackgroundUsersOnDefaultDisplaySupported ()
Returns whether the device allow users to be started visible in the background in the ERROR(/java.android.view.Display#DEFAULT_DISPLAY)
.
If it does, you could call startVisibleBackgroundUser(int, int, boolean)
, passing
a display returned by listDisplayIdsForStartingVisibleBackgroundUsers()
(which
should include ERROR(/java.android.view.Display#DEFAULT_DISPLAY)
).
Returns | |
---|---|
boolean |
Throws | |
---|---|
DeviceNotAvailableException |
isVisibleBackgroundUsersSupported
public boolean isVisibleBackgroundUsersSupported ()
Returns whether the device allow users to be started visible in the background.
If it does, you could call startVisibleBackgroundUser(int, int, boolean)
, passing
a display returned by listDisplayIdsForStartingVisibleBackgroundUsers()
.
Returns | |
---|---|
boolean |
Throws | |
---|---|
DeviceNotAvailableException |
isWifiEnabled
public boolean isWifiEnabled ()
Test if wifi is enabled.
Checks if wifi is enabled on device. Useful for asserting wifi status before tests that shouldn't run with wifi, e.g. mobile data tests.Returns | |
---|---|
boolean |
true if wifi is enabled. false if disabled |
Throws | |
---|---|
DeviceNotAvailableException |
listDisplayIds
publiclistDisplayIds ()
Collect the list of available displays id on the device as reported by "dumpsys SurfaceFlinger".
Returns | |
---|---|
|
The list of displays. Default always returns the default display 0. |
Throws | |
---|---|
DeviceNotAvailableException |
listDisplayIdsForStartingVisibleBackgroundUsers
publiclistDisplayIdsForStartingVisibleBackgroundUsers ()
Gets the list of displays that can be used to start a user visible in the background
.
Returns | |
---|---|
|
Throws | |
---|---|
DeviceNotAvailableException |
listUsers
publiclistUsers ()
Gets the list of users on the device. Will throw DeviceRuntimeException
if output
from device is not as expected.
Returns | |
---|---|
|
the list of user ids. |
Throws | |
---|---|
DeviceNotAvailableException |
logAnrs
public boolean logAnrs (ITestLogger logger)
Collects and log ANRs from the device.
Parameters | |
---|---|
logger |
ITestLogger : an ITestLogger to log the ANRs. |
Returns | |
---|---|
boolean |
True if the logging was successful, false otherwise. |
Throws | |
---|---|
DeviceNotAvailableException |
logBugreport
public boolean logBugreport (String dataName, ITestLogger listener)
Helper method to take a bugreport and log it to the reporters.
Parameters | |
---|---|
dataName |
String : name under which the bugreport will be reported. |
listener |
ITestLogger : an ITestLogger to log the bugreport. |
Returns | |
---|---|
boolean |
True if the logging was successful, false otherwise. |
logOnDevice
public void logOnDevice (String tag, Log.LogLevel level, String format, Object... args)
Log a message in the logcat of the device. This is a safe call that will not throw even if the logging fails.
Parameters | |
---|---|
tag |
String : The tag under which we log our message in the logcat. |
level |
Log.LogLevel : The debug level of the message in the logcat. |
format |
String : The message format. |
args |
Object : the args to be replaced via String.format(). |
nonBlockingReboot
public void nonBlockingReboot ()
Issues a command to reboot device and returns on command complete and when device is no longer visible to adb.
Throws | |
---|---|
DeviceNotAvailableException |
postAdbRootAction
public void postAdbRootAction ()
Override if the device needs some specific actions to be taken after adb root and before the device is back online. Default implementation doesn't include any addition actions. adb root is not guaranteed to be enabled at this stage.
Throws | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
postAdbUnrootAction
public void postAdbUnrootAction ()
Override if the device needs some specific actions to be taken after adb unroot and before the device is back online. Default implementation doesn't include any additional actions. adb root is not guaranteed to be disabled at this stage.
Throws | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
postBootSetup
public void postBootSetup ()
Perform instructions to configure device for testing that after every boot.
Should be called after device is fully booted/available In normal circumstances this method doesn't need to be called explicitly, as implementations should perform these steps automatically when performing a reboot. Where it may need to be called is when device reboots due to other events (eg when a fastboot update command has completed)Throws | |
---|---|
DeviceNotAvailableException |
postInvocationTearDown
public void postInvocationTearDown (Throwable exception)
Extra steps for device specific required clean up that will be executed after the invocation is done.
Parameters | |
---|---|
exception |
Throwable : if any, the final exception raised by the invocation failure. |
preInvocationSetup
public void preInvocationSetup (IBuildInfo info, MultiMap<String, String> attributes)
Extra steps for device specific required setup that will be executed on the device prior to the invocation flow.
Parameters | |
---|---|
info |
IBuildInfo : The IBuildInfo of the device. |
attributes |
MultiMap : The attributes stored in the invocation context |
Throws | |
---|---|
DeviceNotAvailableException |
|
TargetSetupError |
pullDir
public boolean pullDir (String deviceFilePath, File localDir, int userId)
Recursively pull directory contents from device.
Parameters | |
---|---|
deviceFilePath |
String : the absolute file path of the remote source |
localDir |
File : the local directory to pull files into |
userId |
int : the user id to pull from |
Returns | |
---|---|
boolean |
true if file was pulled successfully. false otherwise. |
Throws | |
---|---|
DeviceNotAvailableException |
pullDir
public boolean pullDir (String deviceFilePath, File localDir)
Recursively pull directory contents from device.
Parameters | |
---|---|
deviceFilePath |
String : the absolute file path of the remote source |
localDir |
File : the local directory to pull files into |
Returns | |
---|---|
boolean |
true if file was pulled successfully. false otherwise. |
Throws | |
---|---|
DeviceNotAvailableException |
pullFile
public boolean pullFile (String remoteFilePath, File localFile)
Retrieves a file off device.
Parameters | |
---|---|
remoteFilePath |
String : the absolute path to file on device. |
localFile |
File : the local file to store contents in. If non-empty, contents will be
replaced. |
Returns | |
---|---|
boolean |
true if file was retrieved successfully. false otherwise. |
Throws | |
---|---|
DeviceNotAvailableException |
pullFile
public File pullFile (String remoteFilePath, int userId)
Retrieves a file off device, stores it in a local temporary ERROR(/File)
, and returns that
File
.
Parameters | |
---|---|
remoteFilePath |
String : the absolute path to file on device. |
userId |
int : The user id to pull from |
Returns | |
---|---|
File |
A ERROR(/File) containing the contents of the device file, or null if the
copy failed for any reason (including problems with the host filesystem) |
Throws | |
---|---|
DeviceNotAvailableException |
pullFile
public File pullFile (String remoteFilePath)
Retrieves a file off device, stores it in a local temporary ERROR(/File)
, and returns that
File
.
Parameters | |
---|---|
remoteFilePath |
String : the absolute path to file on device. |
Returns | |
---|---|
File |
A ERROR(/File) containing the contents of the device file, or null if the
copy failed for any reason (including problems with the host filesystem) |
Throws | |
---|---|
DeviceNotAvailableException |
pullFile
public boolean pullFile (String remoteFilePath, File localFile, int userId)
Retrieves a file off device.
Parameters | |
---|---|
remoteFilePath |
String : the absolute path to file on device. |
localFile |
File : the local file to store contents in. If non-empty, contents will be
replaced. |
userId |
int : The user id to pull from |
Returns | |
---|---|
boolean |
true if file was retrieved successfully. false otherwise. |
Throws | |
---|---|
DeviceNotAvailableException |
pullFileContents
public String pullFileContents (String remoteFilePath)
Retrieves a file off device, and returns the contents.
Parameters | |
---|---|
remoteFilePath |
String : the absolute path to file on device. |
Returns | |
---|---|
String |
A String containing the contents of the device file, or null if the
copy failed for any reason (including problems with the host filesystem) |
Throws | |
---|---|
DeviceNotAvailableException |
pullFileFromExternal
public File pullFileFromExternal (String remoteFilePath)
A convenience method to retrieve a file from the device's external storage, stores it in a
local temporary ERROR(/File)
, and return a reference to that File
.
Parameters | |
---|---|
remoteFilePath |
String : the path to file on device, relative to the device's external storage
mountpoint |
Returns | |
---|---|
File |
A ERROR(/File) containing the contents of the device file, or null if the
copy failed for any reason (including problems with the host filesystem) |
Throws | |
---|---|
DeviceNotAvailableException |
pushDir
public boolean pushDir (File localFileDir, String deviceFilePath,excludedDirectories)
Recursively push directory contents to device while excluding some directories that are filtered.
Parameters | |
---|---|
localFileDir |
File : the local directory to push |
deviceFilePath |
String : the absolute file path of the remote destination |
excludedDirectories |
: Set of excluded directories names that shouldn't be pushed. |
Returns | |
---|---|
boolean |
true if file was pushed successfully. false otherwise. |
Throws | |
---|---|
DeviceNotAvailableException |
pushDir
public boolean pushDir (File localFileDir, String deviceFilePath)
Recursively push directory contents to device.
Parameters | |
---|---|
localFileDir |
File : the local directory to push |
deviceFilePath |
String : the absolute file path of the remote destination |
Returns | |
---|---|
boolean |
true if file was pushed successfully. false otherwise. |
Throws | |
---|---|
DeviceNotAvailableException |
pushDir
public boolean pushDir (File localFileDir, String deviceFilePath, int userId)
Recursively push directory contents to device.
Parameters | |
---|---|
localFileDir |
File : the local directory to push |
deviceFilePath |
String : the absolute file path of the remote destination |
userId |
int : the user id to push to |
Returns | |
---|---|
boolean |
true if file was pushed successfully. false otherwise. |
Throws | |
---|---|
DeviceNotAvailableException |
pushFile
public boolean pushFile (File localFile, String remoteFilePath, boolean evaluateContentProviderNeeded)
Variant of pushFile(File, String)
which can optionally consider evaluating the need
for the content provider.
Parameters | |
---|---|
localFile |
File : the local file to push |
remoteFilePath |
String : the remote destination absolute file path |
evaluateContentProviderNeeded |
boolean : whether to check if we need the content provider |
Returns | |
---|---|
boolean |
true if file was pushed successfully. false otherwise. |
Throws | |
---|---|
DeviceNotAvailableException |
pushFile
public boolean pushFile (File localFile, String remoteFilePath)
Push a file to device. By default using a content provider.
Parameters | |
---|---|
localFile |
File : the local file to push |
remoteFilePath |
String : the remote destination absolute file path |
Returns | |
---|---|
boolean |
true if file was pushed successfully. false otherwise. |
Throws | |
---|---|
DeviceNotAvailableException |
pushFile
public boolean pushFile (File localFile, String remoteFilePath, int userId)
Push a file to device. By default using a content provider.
Parameters | |
---|---|
localFile |
File : the local file to push |
remoteFilePath |
String : the remote destination absolute file path |
userId |
int : the userId to push to |
Returns | |
---|---|
boolean |
true if file was pushed successfully. false otherwise. |
Throws | |
---|---|
DeviceNotAvailableException |
pushString
public boolean pushString (String contents, String remoteFilePath)
Push file created from a string to device
Parameters | |
---|---|
contents |
String : the contents of the file to push |
remoteFilePath |
String : the remote destination absolute file path |
Returns | |
---|---|
boolean |
true if string was pushed successfully. false otherwise. |
Throws | |
---|---|
DeviceNotAvailableException |
reboot
public void reboot (String reason)
Reboots the device into adb mode with given reason
to be persisted across reboot.
Blocks until device becomes available.
Last reboot reason can be obtained by querying sys.boot.reason
propety.
Parameters | |
---|---|
reason |
String : a reason for this reboot, or null if no reason is specified. |
Throws | |
---|---|
DeviceNotAvailableException |
reboot
public void reboot ()
Reboots the device into adb mode.
Blocks until device becomes available.Throws | |
---|---|
DeviceNotAvailableException |
rebootIntoBootloader
public void rebootIntoBootloader ()
Reboots the device into bootloader mode.
Blocks until device is in bootloader mode.Throws | |
---|---|
DeviceNotAvailableException |
rebootIntoFastbootd
public void rebootIntoFastbootd ()
Reboots the device into fastbootd mode.
Blocks until device is in fastbootd mode.
Throws | |
---|---|
DeviceNotAvailableException |
rebootIntoRecovery
public void rebootIntoRecovery ()
Reboots the device into adb recovery mode.
Blocks until device enters recoveryThrows | |
---|---|
DeviceNotAvailableException |
rebootIntoSideload
public void rebootIntoSideload ()
Reboots the device into adb sideload mode (note that this is a special mode under recovery)
Blocks until device enters sideload mode
Throws | |
---|---|
DeviceNotAvailableException |
rebootIntoSideload
public void rebootIntoSideload (boolean autoReboot)
Reboots the device into adb sideload mode (note that this is a special mode under recovery)
Blocks until device enters sideload mode
Parameters | |
---|---|
autoReboot |
boolean : whether to automatically reboot the device after sideload |
Throws | |
---|---|
DeviceNotAvailableException |
rebootUntilOnline
public void rebootUntilOnline ()
An alternate to reboot()
that only blocks until device is online ie visible to adb.
Throws | |
---|---|
DeviceNotAvailableException |
rebootUntilOnline
public void rebootUntilOnline (String reason)
An alternate to reboot()
that only blocks until device is online ie visible to adb.
Parameters | |
---|---|
reason |
String : a reason for this reboot, or null if no reason is specified. |
Throws | |
---|---|
DeviceNotAvailableException |
rebootUserspace
public void rebootUserspace ()
Reboots only userspace part of device.
Blocks until device becomes available.
WARNING. Userspace reboot is currently under active development, use it on your own risk.
Throws | |
---|---|
DeviceNotAvailableException |
rebootUserspaceUntilOnline
public void rebootUserspaceUntilOnline ()
An alternate to rebootUserspace()
()} that only blocks until device is online ie
visible to adb.
Throws | |
---|---|
DeviceNotAvailableException |
recoverDevice
public boolean recoverDevice ()
Attempts to recover device communication.
Returns | |
---|---|
boolean |
True if recovery attempted and successful, returns False if recovery was skipped |
Throws | |
---|---|
DeviceNotAvailableException |
if device is no longer available |
registerDeviceActionReceiver
public void registerDeviceActionReceiver (IDeviceActionReceiver deviceActionReceiver)
Registers a IDeviceActionReceiver
for this device.
All registered IDeviceActionReceiver
s will be notified before a device action
starts and after the device action ends.
Parameters | |
---|---|
deviceActionReceiver |
IDeviceActionReceiver : A IDeviceActionReceiver which will be registered. |
remountSystemReadOnly
public void remountSystemReadOnly ()
Make the system partition on the device read-only. May reboot the device.
Throws | |
---|---|
DeviceNotAvailableException |
remountSystemWritable
public void remountSystemWritable ()
Make the system partition on the device writable. May reboot the device.
Throws | |
---|---|
DeviceNotAvailableException |
remountVendorReadOnly
public void remountVendorReadOnly ()
Make the vendor partition on the device read-only. May reboot the device.
Throws | |
---|---|
DeviceNotAvailableException |
remountVendorWritable
public void remountVendorWritable ()
Make the vendor partition on the device writable. May reboot the device.
Throws | |
---|---|
DeviceNotAvailableException |
removeAdmin
public boolean removeAdmin (String componentName, int userId)
Remove given device admin in given user and return true
if it is successful, false
otherwise.
Parameters | |
---|---|
componentName |
String : of device admin to be removed. |
userId |
int : of user that the device admin lives in. |
Returns | |
---|---|
boolean |
True if it is successful, false otherwise. |
Throws | |
---|---|
DeviceNotAvailableException |
removeOwners
public void removeOwners ()
Remove all existing device profile owners with the best effort.
Throws | |
---|---|
DeviceNotAvailableException |
removeUser
public boolean removeUser (int userId)
Remove a given user from the device.
Parameters | |
---|---|
userId |
int : of the user to remove |
Returns | |
---|---|
boolean |
true if we were successful in removing the user, false otherwise. |
Throws | |
---|---|
DeviceNotAvailableException |
resetContentProviderSetup
public void resetContentProviderSetup ()
Reset the flag for content provider setup in order to trigger it again.
runInstrumentationTests
public boolean runInstrumentationTests (IRemoteAndroidTestRunner runner, ITestLifeCycleReceiver... listeners)
Convenience method for performing ERROR(/#runInstrumentationTests(com.android.ddmlib.testrunner.IRemoteAndroidTestRunner,Collection))
with one or more listeners passed as parameters.
Parameters | |
---|---|
runner |
IRemoteAndroidTestRunner : the IRemoteAndroidTestRunner which runs the tests |
listeners |
ITestLifeCycleReceiver : the test result listener(s) |
Returns | |
---|---|
boolean |
true if test command completed. false if it failed to
complete, but recovery succeeded |
Throws | |
---|---|
DeviceNotAvailableException |
runInstrumentationTests
public boolean runInstrumentationTests (IRemoteAndroidTestRunner runner,listeners)
Runs instrumentation tests, and provides device recovery.
If connection with device is lost before test run completes, and recovery succeeds, all listeners will be informed of testRunFailed and "false" will be returned. The test command will not be rerun. It is left to callers to retry if necessary.
If connection with device is lost before test run completes, and recovery fails, all listeners will be informed of testRunFailed and DeviceNotAvailableException will be thrown.
Parameters | |
---|---|
runner |
IRemoteAndroidTestRunner : the IRemoteAndroidTestRunner which runs the tests |
listeners |
: the test result listeners |
Returns | |
---|---|
boolean |
true if test command completed. false if it failed to
complete due to device communication exception, but recovery succeeded |
Throws | |
---|---|
DeviceNotAvailableException |
runInstrumentationTestsAsUser
public boolean runInstrumentationTestsAsUser (IRemoteAndroidTestRunner runner, int userId,listeners)
Same as ERROR(ITestDevice.runInstrumentationTests(IRemoteAndroidTestRunner, Collection)/com.android.tradefed.device.ITestDevice#runInstrumentationTests(com.android.ddmlib.testrunner.IRemoteAndroidTestRunner,Collection) ITestDevice.runInstrumentationTests(IRemoteAndroidTestRunner, Collection))
but
runs the test for the given user.
Parameters | |
---|---|
runner |
IRemoteAndroidTestRunner |
userId |
int |
listeners |
|
Returns | |
---|---|
boolean |
Throws | |
---|---|
DeviceNotAvailableException |
runInstrumentationTestsAsUser
public boolean runInstrumentationTestsAsUser (IRemoteAndroidTestRunner runner, int userId, ITestLifeCycleReceiver... listeners)
Same as ITestDevice.runInstrumentationTests(IRemoteAndroidTestRunner,
ITestLifeCycleReceiver...)
but runs the test for a given user.
Parameters | |
---|---|
runner |
IRemoteAndroidTestRunner |
userId |
int |
listeners |
ITestLifeCycleReceiver |
Returns | |
---|---|
boolean |
Throws | |
---|---|
DeviceNotAvailableException |
setConfiguration
public void setConfiguration (IConfiguration configuration)
Injects the IConfiguration
in use.
Parameters | |
---|---|
configuration |
IConfiguration |
setConnectionAvdInfo
public final void setConnectionAvdInfo (GceAvdInfo avdInfo)
Parameters | |
---|---|
avdInfo |
GceAvdInfo |
setDate
public void setDate (Date date)
Sets the date on device
Note: setting date on device requires root
Parameters | |
---|---|
date |
Date : specify a particular date; will use host date if null |
Throws | |
---|---|
DeviceNotAvailableException |
setDeviceOwner
public boolean setDeviceOwner (String componentName, int userId)
Set a device admin component as device owner in given user.
Parameters | |
---|---|
componentName |
String : of device admin to be device owner. |
userId |
int : of the user that the device owner lives in. |
Returns | |
---|---|
boolean |
True if it is successful, false otherwise. |
Throws | |
---|---|
DeviceNotAvailableException |
setDeviceState
public void setDeviceState (TestDeviceState deviceState)
Update the device's state.
Parameters | |
---|---|
deviceState |
TestDeviceState : the TestDeviceState |
setEmulatorOutputStream
public void setEmulatorOutputStream (SizeLimitedOutputStream output)
For emulator set SizeLimitedOutputStream
to log output
Parameters | |
---|---|
output |
SizeLimitedOutputStream : to log the output |
setEmulatorProcess
public void setEmulatorProcess (Process p)
Sets the Process
, when this device is an emulator.
Parameters | |
---|---|
p |
Process |
setFastbootEnabled
public void setFastbootEnabled (boolean fastbootEnabled)
Set the fastboot option for the device. Should be set when device is first allocated.
Parameters | |
---|---|
fastbootEnabled |
boolean : whether fastboot is available for the device or not |
setFastbootPath
public void setFastbootPath (String fastbootPath)
Sets the path to the fastboot binary that should be used.
Still requires isFastbootEnabled()
to be true, to have fastboot functions enabled.
Parameters | |
---|---|
fastbootPath |
String |
setIDevice
public void setIDevice (IDevice newDevice)
Update the IDevice associated with this ITestDevice.
The new IDevice must refer the same physical device as the current reference. This method will be called if DDMS has allocated a new IDeviceParameters | |
---|---|
newDevice |
IDevice : the IDevice |
setLogStartDelay
public void setLogStartDelay (int delay)
Sets the time in ms to wait before starting logcat capture for a online device.
Parameters | |
---|---|
delay |
int : the delay in ms |
setOptions
public void setOptions (TestDeviceOptions options)
Set the TestDeviceOptions
for the device
Parameters | |
---|---|
options |
TestDeviceOptions |
setProperty
public boolean setProperty (String propKey, String propValue)
Sets the given property value on the device. Requires adb root is true.
Parameters | |
---|---|
propKey |
String : The key targeted to be set. |
propValue |
String : The property value to be set. |
Returns | |
---|---|
boolean |
returns True if the setprop command was successful, False otherwise. |
Throws | |
---|---|
DeviceNotAvailableException |
setRecovery
public void setRecovery (IDeviceRecovery recovery)
Set the IDeviceRecovery
to use for this device. Should be set when device is first
allocated.
Parameters | |
---|---|
recovery |
IDeviceRecovery : the IDeviceRecovery |
setRecoveryMode
public void setRecoveryMode (ITestDevice.RecoveryMode mode)
Set the current recovery mode to use for the device.
Used to control what recovery method to use when a device communication problem is encountered. Its recommended to only use this method sparingly when needed (for example, when framework is down, etcParameters | |
---|---|
mode |
ITestDevice.RecoveryMode : whether 'recover till online only' mode should be on or not. |
setSetting
public void setSetting (String namespace, String key, String value)
See setSetting(int, String, String, String)
and performed on system user.
Parameters | |
---|---|
namespace |
String |
key |
String |
value |
String |
Throws | |
---|---|
DeviceNotAvailableException |
setSetting
public void setSetting (int userId, String namespace, String key, String value)
Add a setting value to the namespace of a given user. Some settings will only be available after a reboot. namespace must be one of: {"system", "secure", "global"}
Parameters | |
---|---|
userId |
int |
namespace |
String |
key |
String |
value |
String |
Throws | |
---|---|
DeviceNotAvailableException |
setTestLogger
public void setTestLogger (ITestLogger testLogger)
Injects the ITestLogger
instance
Parameters | |
---|---|
testLogger |
ITestLogger |
setTrackingSerial
public void setTrackingSerial (String trackingSerial)
For device management purpose track the serial we use for referencing the device.
Parameters | |
---|---|
trackingSerial |
String |
setUseFastbootErase
public void setUseFastbootErase (boolean useFastbootErase)
Set whether to use fastboot erase or fastboot format to wipe a partition on the device.
Parameters | |
---|---|
useFastbootErase |
boolean : true if fastboot erase should be used or false if
fastboot format should be used. |
startLogcat
public void startLogcat ()
Start capturing logcat output from device in the background.
Will have no effect if logcat output is already being captured. Data can be later retrieved via getLogcat. When the device is no longer in use,stopLogcat()
must be called.
startLogcat()
and stopLogcat()
do not normally need to be called when
within a TF invocation context, as the TF framework will start and stop logcat.
startUser
public boolean startUser (int userId)
Starts a given user in the background if it is currently stopped. If the user is already running in the background, this method is a NOOP.
Parameters | |
---|---|
userId |
int : of the user to start in the background |
Returns | |
---|---|
boolean |
true if the user was successfully started in the background. |
Throws | |
---|---|
DeviceNotAvailableException |
startUser
public boolean startUser (int userId, boolean waitFlag)
Starts a given user in the background if it is currently stopped. If the user is already running in the background, this method is a NOOP. Possible to provide extra flag to wait for the operation to have effect.
Parameters | |
---|---|
userId |
int : of the user to start in the background |
waitFlag |
boolean : will make the command wait until user is started and unlocked. |
Returns | |
---|---|
boolean |
true if the user was successfully started in the background. |
Throws | |
---|---|
DeviceNotAvailableException |
startVisibleBackgroundUser
public boolean startVisibleBackgroundUser (int userId, int displayId, boolean waitFlag)
Starts a given user in the background, visible in the given display (i.e., allowing the user to launch activities in that display).
NOTE: this command doesn't check if the user exists, display is available, device supports such feature
, etc.
Parameters | |
---|---|
userId |
int : of the user to start in the background |
displayId |
int : display to start user visible on |
waitFlag |
boolean : will make the command wait until user is started and unlocked. |
Returns | |
---|---|
boolean |
true if the user was successfully started visible in the background. |
Throws | |
---|---|
DeviceNotAvailableException |
stopEmulatorOutput
public void stopEmulatorOutput ()
Close and delete the emulator output.
stopLogcat
public void stopLogcat ()
Stop capturing logcat output from device, and discard currently saved logcat data.
Will have no effect if logcat output is not being captured.stopUser
public boolean stopUser (int userId)
Stops a given user. If the user is already stopped, this method is a NOOP. Cannot stop current and system user.
Parameters | |
---|---|
userId |
int : of the user to stop. |
Returns | |
---|---|
boolean |
true if the user was successfully stopped. |
Throws | |
---|---|
DeviceNotAvailableException |
stopUser
public boolean stopUser (int userId, boolean waitFlag, boolean forceFlag)
Stop a given user. Possible to provide extra flags to wait for the operation to have effect, and force terminate the user. Cannot stop current and system user.
Parameters | |
---|---|
userId |
int : of the user to stop. |
waitFlag |
boolean : will make the command wait until user is stopped. |
forceFlag |
boolean : will force stop the user. |
Returns | |
---|---|
boolean |
true if the user was successfully stopped. |
Throws | |
---|---|
DeviceNotAvailableException |
switchToAdbTcp
public String switchToAdbTcp ()
Switch device to adb-over-tcp mode.
Returns | |
---|---|
String |
the tcp serial number or null if device could not be switched |
Throws | |
---|---|
DeviceNotAvailableException |
switchToAdbUsb
public boolean switchToAdbUsb ()
Switch device to adb over usb mode.
Returns | |
---|---|
boolean |
true if switch was successful, false otherwise. |
Throws | |
---|---|
DeviceNotAvailableException |
switchUser
public boolean switchUser (int userId)
Switch to another userId with a default timeout. switchUser(int, long)
.
Parameters | |
---|---|
userId |
int |
Returns | |
---|---|
boolean |
True if the new userId matches the userId provider. False otherwise. |
Throws | |
---|---|
DeviceNotAvailableException |
switchUser
public boolean switchUser (int userId, long timeout)
Switch to another userId with the provided timeout as deadline. Attempt to disable keyguard after user change is successful.
Parameters | |
---|---|
userId |
int |
timeout |
long : to wait before returning false for switch-user failed. |
Returns | |
---|---|
boolean |
True if the new userId matches the userId provider. False otherwise. |
Throws | |
---|---|
DeviceNotAvailableException |
syncFiles
public boolean syncFiles (File localFileDir, String deviceFilePath)
Incrementally syncs the contents of a local file directory to device.
Decides which files to push by comparing timestamps of local files with their remote equivalents. Only 'newer' or non-existent files will be pushed to device. Thus overhead should be relatively small if file set on device is already up to date. Hidden files (with names starting with ".") will be ignored. Example usage: syncFiles("/tmp/files", "/sdcard") will created a /sdcard/files directory if it doesn't already exist, and recursively push the /tmp/files contents to /sdcard/files.Parameters | |
---|---|
localFileDir |
File : the local file directory containing files to recursively push. |
deviceFilePath |
String : the remote destination absolute file path root. All directories in thos
file path must be readable. ie pushing to /data/local/tmp when adb is not root
will fail |
Returns | |
---|---|
boolean |
true if files were synced successfully. false otherwise. |
Throws | |
---|---|
DeviceNotAvailableException |
takeBugreport
public Bugreport takeBugreport ()
Take a bugreport and returns it inside a Bugreport
object to handle it. Return null
in case of issue. File referenced in the Bugreport object need to be cleaned via Bugreport.close()
.
Returns | |
---|---|
Bugreport |
uninstallPackage
public String uninstallPackage (String packageName)
Uninstall an Android package from device.
Parameters | |
---|---|
packageName |
String : the Android package to uninstall |
Returns | |
---|---|
String |
a String with an error code, or null if success. |
Throws | |
---|---|
DeviceNotAvailableException |
uninstallPackageForUser
public String uninstallPackageForUser (String packageName, int userId)
Uninstall an Android package from device for a given user.
Parameters | |
---|---|
packageName |
String : the Android package to uninstall |
userId |
int : the integer user id to uninstall for. |
Returns | |
---|---|
String |
a String with an error code, or null if success. |
Throws | |
---|---|
DeviceNotAvailableException |
unlockDevice
public boolean unlockDevice ()
Unlocks the device if the device is in an encrypted state.
This method may restart the framework but will not callpostBootSetup()
. Therefore,
the device might not be fully ready to be tested when this method returns.
Returns | |
---|---|
boolean |
true if successful or if the device is unencrypted. |
Throws | |
---|---|
DeviceNotAvailableException |
waitForBootComplete
public boolean waitForBootComplete (long timeOut)
Blocks until the device's boot complete flag is set.
Parameters | |
---|---|
timeOut |
long : time in msecs to wait for the flag to be set |
Returns | |
---|---|
boolean |
true if device's boot complete flag is set within the timeout |
Throws | |
---|---|
DeviceNotAvailableException |
waitForDeviceAvailable
public boolean waitForDeviceAvailable ()
Waits for the device to be responsive and available for testing. Uses default timeout.
Returns | |
---|---|
boolean |
True if device is available, False if recovery is disabled and unavailable. |
Throws | |
---|---|
DeviceNotAvailableException |
waitForDeviceAvailable
public boolean waitForDeviceAvailable (long waitTime)
Waits for the device to be responsive and available for testing.
Parameters | |
---|---|
waitTime |
long : the time in ms to wait |
Returns | |
---|---|
boolean |
True if device is available, False if recovery is disabled and unavailable. |
Throws | |
---|---|
DeviceNotAvailableException |
waitForDeviceAvailableInRecoverPath
public boolean waitForDeviceAvailableInRecoverPath (long waitTime)
Waits for the device to be responsive and available without considering recovery path.
Parameters | |
---|---|
waitTime |
long |
Returns | |
---|---|
boolean |
True if device is available, False if unavailable. |
Throws | |
---|---|
DeviceNotAvailableException |
waitForDeviceBootloader
public void waitForDeviceBootloader ()
Blocks until device is visible via fastboot. Use default timeout.
Throws | |
---|---|
DeviceNotAvailableException |
waitForDeviceInRecovery
public boolean waitForDeviceInRecovery (long waitTime)
Blocks for the device to be in the 'adb recovery' state (note this is distinct from
IDeviceRecovery
).
Parameters | |
---|---|
waitTime |
long : the time in ms to wait |
Returns | |
---|---|
boolean |
true if device boots into recovery before time expires.
false otherwise |
waitForDeviceInSideload
public boolean waitForDeviceInSideload (long waitTime)
Blocks for the device to be in the 'adb sideload' state
Parameters | |
---|---|
waitTime |
long : the time in ms to wait |
Returns | |
---|---|
boolean |
true if device boots into sideload before time expires. false
otherwise |
waitForDeviceNotAvailable
public boolean waitForDeviceNotAvailable (long waitTime)
Blocks for the device to be not available ie missing from adb
Parameters | |
---|---|
waitTime |
long : the time in ms to wait |
Returns | |
---|---|
boolean |
true if device becomes not available before time expires.
false otherwise |
waitForDeviceOnline
public void waitForDeviceOnline ()
Blocks until device is visible via adb. Uses default timeout
Note the device may not necessarily be responsive to commands on completion. UsewaitForDeviceAvailable()
instead.
Throws | |
---|---|
DeviceNotAvailableException |
waitForDeviceOnline
public void waitForDeviceOnline (long waitTime)
Blocks until device is visible via adb.
Note the device may not necessarily be responsive to commands on completion. UsewaitForDeviceAvailable()
instead.
Parameters | |
---|---|
waitTime |
long : the time in ms to wait |
Throws | |
---|---|
DeviceNotAvailableException |
waitForDeviceShell
public 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. |
Protected methods
addExtraConnectionBuilderArgs
protected void addExtraConnectionBuilderArgs (DefaultConnection.ConnectionBuilder builder)
Parameters | |
---|---|
builder |
DefaultConnection.ConnectionBuilder |
buildAdbShellCommand
protected String[] buildAdbShellCommand (String command, boolean forceExitStatusDetection)
Builds the OS command for the given adb shell command session and args
Parameters | |
---|---|
command |
String |
forceExitStatusDetection |
boolean |
Returns | |
---|---|
String[] |
checkApiLevelAgainst
protected void checkApiLevelAgainst (String feature, int strictMinLevel)
Parameters | |
---|---|
feature |
String |
strictMinLevel |
int |
createRebootDeviceAction
protected NativeDevice.RebootDeviceAction createRebootDeviceAction (NativeDevice.RebootMode rebootMode, String reason)
Create a RebootDeviceAction
to be used when performing a reboot action.
Parameters | |
---|---|
rebootMode |
NativeDevice.RebootMode : a mode of this reboot. |
reason |
String : for this reboot. |
Returns | |
---|---|
NativeDevice.RebootDeviceAction |
the created RebootDeviceAction . |
doAdbReboot
protected void doAdbReboot (NativeDevice.RebootMode rebootMode, String reason)
Perform a adb reboot.
Parameters | |
---|---|
rebootMode |
NativeDevice.RebootMode : a mode of this reboot. |
reason |
String : for this reboot. |
Throws | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
ensureRuntimePermissionSupported
protected void ensureRuntimePermissionSupported ()
helper method to throw exception if runtime permission isn't supported
Throws | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
getApiLevelSafe
protected int getApiLevelSafe ()
Returns | |
---|---|
int |
initializeConnection
protected void initializeConnection (IBuildInfo info, MultiMap<String, String> attributes)
Parameters | |
---|---|
info |
IBuildInfo |
attributes |
MultiMap |
Throws | |
---|---|
DeviceNotAvailableException |
|
TargetSetupError |
internalGetProperty
protected String internalGetProperty (String propName, String fastbootVar, String description)
Fetch a device property, from the ddmlib cache by default, and falling back to either `adb shell getprop` or `fastboot getvar` depending on whether the device is in Fastboot or not.
Parameters | |
---|---|
propName |
String : The name of the device property as returned by `adb shell getprop` |
fastbootVar |
String : The name of the equivalent fastboot variable to query. if null ,
fastboot query will not be attempted |
description |
String : A simple description of the variable. First letter should be capitalized. |
Returns | |
---|---|
String |
A string, possibly null or empty, containing the value of the given property |
Throws | |
---|---|
DeviceNotAvailableException |
isInRebootCallback
protected boolean isInRebootCallback ()
Returns whether reboot callbacks is currently being executed or not. All public api's for reboot should be disabled if true.
Returns | |
---|---|
boolean |
isNewer
protected boolean isNewer (File localFile, IFileEntry entry)
Return true
if local file is newer than remote file. IFileEntry
being
accurate to the minute, in case of equal times, the file will be considered newer.
Parameters | |
---|---|
localFile |
File |
entry |
IFileEntry |
Returns | |
---|---|
boolean |
notifyRebootEnded
protected void notifyRebootEnded ()
Notifies all IDeviceActionReceiver
about reboot end event.
Throws | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
notifyRebootStarted
protected void notifyRebootStarted ()
Notifies all IDeviceActionReceiver
about reboot start event.
Throws | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
performDeviceAction
protected boolean performDeviceAction (String actionDescription, NativeDevice.DeviceAction action, int retryAttempts)
Performs an action on this device. Attempts to recover device and optionally retry command if action fails.
Parameters | |
---|---|
actionDescription |
String : a short description of action to be performed. Used for logging
purposes only. |
action |
NativeDevice.DeviceAction : the action to be performed |
retryAttempts |
int : the retry attempts to make for action if it fails but recovery succeeds |
Returns | |
---|---|
boolean |
true if action was performed successfully |
Throws | |
---|---|
DeviceNotAvailableException |
if recovery attempt fails or max attempts done without success |
postAdbReboot
protected void postAdbReboot ()
Possible extra actions that can be taken after a reboot.
Throws | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
prePostBootSetup
protected void prePostBootSetup ()
Allows each device type (AndroidNativeDevice, TestDevice) to override this method for specific post boot setup.
Throws | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
pullFileInternal
protected boolean pullFileInternal (String remoteFilePath, File localFile)
Parameters | |
---|---|
remoteFilePath |
String |
localFile |
File |
Returns | |
---|---|
boolean |
Throws | |
---|---|
DeviceNotAvailableException |
setClock
protected void setClock (Clock clock)
Set the Clock instance to use.
Parameters | |
---|---|
clock |
Clock |
setMicrodroidProcess
protected void setMicrodroidProcess (Process process)
Marks the TestDevice as microdroid and sets its CID.
Parameters | |
---|---|
process |
Process : Process of the Microdroid VM. |
setTestDeviceOptions
protected void setTestDeviceOptions (deviceOptions)
Parameters | |
---|---|
deviceOptions |
|
simpleFastbootCommand
protected CommandResult simpleFastbootCommand (long timeout,envVarMap, String[] fullCmd)
Executes a simple fastboot command with environment variables and report the status of the command.
Parameters | |
---|---|
timeout |
long |
envVarMap |
|
fullCmd |
String |
Returns | |
---|---|
CommandResult |
simpleFastbootCommand
protected CommandResult simpleFastbootCommand (long timeout, String[] fullCmd)
Executes a simple fastboot command and report the status of the command.
Parameters | |
---|---|
timeout |
long |
fullCmd |
String |
Returns | |
---|---|
CommandResult |
waitForDeviceNotAvailable
protected boolean waitForDeviceNotAvailable (String operationDesc, long time)
Wait to see the device going unavailable (stop reporting to adb).
Parameters | |
---|---|
operationDesc |
String : The name of the operation that is waiting for unavailable. |
time |
long : The time to wait for unavailable to occur. |
Returns | |
---|---|
boolean |
True if device did become unavailable. |
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2024-12-09 UTC.