Google 致力于为黑人社区推动种族平等。查看具体举措
此页面由 Cloud Translation API 翻译。
Switch to English

本机设备

public class NativeDevice
extends Object implements IManagedTestDevice

java.lang.Object
com.android.tradefed.device.NativeDevice


ITestDevice默认实现非全栈android设备。

摘要

嵌套类

class NativeDevice.AdbAction

DeviceAction用于运行操作系统“ adb ....”命令。

class NativeDevice.AdbShellAction

class NativeDevice.RebootDeviceAction

用于重新启动设备的DeviceAction

常数

int INVALID_USER_ID

对于任何无效/未找到的用户ID返回的值:UserHandle定义了-10000值

long MAX_HOST_DEVICE_TIME_OFFSET

int MAX_RETRY_ATTEMPTS

默认的命令重试尝试次数

领域

protected TestDeviceOptions mOptions

protected final IDeviceStateMonitor mStateMonitor

公共建设者

NativeDevice (IDevice device, IDeviceStateMonitor stateMonitor, IDeviceMonitor allocationMonitor)

创建一个TestDevice

公开方法

boolean checkApiLevelAgainstNextRelease (int strictMinLevel)

在最低支持级别下,检查当前是否支持某个功能。

boolean checkConnectivity ()

检查设备是否具有网络连接。

boolean clearErrorDialogs ()

尝试关闭设备界面上当前显示的所有错误对话框。

void clearLastConnectedWifiNetwork ()

清除最后连接的wifi网络。

void clearLogcat ()

删除任何累积的logcat数据。

boolean connectToWifiNetwork (String wifiSsid, String wifiPsk)

连接到wifi网络。

boolean connectToWifiNetwork (String wifiSsid, String wifiPsk, boolean scanSsid)

连接到wifi网络。

boolean connectToWifiNetworkIfNeeded (String wifiSsid, String wifiPsk, boolean scanSsid)

connectToWifiNetwork(String, String)变体,仅在设备当前没有网络连接时才连接。

boolean connectToWifiNetworkIfNeeded (String wifiSsid, String wifiPsk)

connectToWifiNetwork(String, String)变体,仅在设备当前没有网络连接时才连接。

int createUser (String name, boolean guest, boolean ephemeral)

创建具有给定名称和提供的标志的用户

int createUser (String name)

创建一个具有给定名称和默认标志0的用户。

int createUserNoThrow (String name)

创建一个具有给定名称和默认标志0的用户。

void deleteFile (String deviceFilePath)

删除设备上文件或目录的帮助方法。

boolean disableAdbRoot ()

关闭adb根目录。

void disableKeyguard ()

尝试禁用键盘锁。

boolean disableNetworkMonitor ()

在设备上禁用网络监视。

boolean disconnectFromWifi ()

断开与wifi网络的连接。

boolean doesFileExist (String deviceFilePath)

确定设备上文件是否存在的辅助方法。

File dumpHeap (String process, String devicePath)

尝试从system_server中转储堆。

boolean enableAdbRoot ()

打开adb根目录。

boolean enableNetworkMonitor ()

在设备上启用网络监视。

boolean encryptDevice (boolean inplace)

加密设备。

String executeAdbCommand (String... cmdArgs)

将adb命令作为系统命令执行的Helper方法。

CommandResult executeFastbootCommand (String... cmdArgs)

帮助程序方法,将fastboot命令作为系统命令执行,默认超时为2分钟。

CommandResult executeFastbootCommand (long timeout, String... cmdArgs)

将fastboot命令作为系统命令执行的Helper方法。

CommandResult executeLongFastbootCommand (String... cmdArgs)

将长时间运行的fastboot命令作为系统命令执行的Helper方法。

String executeShellCommand (String command)

Helper方法,该方法执行adb shell命令并以String返回输出。

void executeShellCommand (String command, IShellOutputReceiver receiver, long maxTimeToOutputShellResponse, TimeUnit timeUnit, int retryAttempts)

执行adb shell命令,并使用更多参数来控制命令行为。

void executeShellCommand (String command, IShellOutputReceiver receiver, long maxTimeoutForCommand, long maxTimeToOutputShellResponse, TimeUnit timeUnit, int retryAttempts)

执行adb shell命令,并使用更多参数来控制命令行为。

void executeShellCommand (String command, IShellOutputReceiver receiver)

执行给定的adb shell命令,如果命令失败,则重试多次。

CommandResult executeShellV2Command (String cmd)

Helper方法,该方法执行adb shell命令,并将结果作为CommandResult返回,并正确填充命令状态输出stdout和stderr。

CommandResult executeShellV2Command (String cmd, OutputStream pipeToOutput)

Helper方法,该方法执行adb shell命令,并将结果作为CommandResult返回,并正确填充命令状态输出stdout和stderr。

CommandResult executeShellV2Command (String cmd, File pipeAsInput)

Helper方法,该方法执行adb shell命令并以CommandResult返回结果,并正确填充命令状态输出stdout和stderr。

CommandResult executeShellV2Command (String cmd, long maxTimeoutForCommand, TimeUnit timeUnit, int retryAttempts)

执行adb shell命令,并使用更多参数来控制命令行为。

CommandResult executeShellV2Command (String cmd, long maxTimeoutForCommand, TimeUnit timeUnit)

执行adb shell命令,并使用更多参数来控制命令行为。

CommandResult executeShellV2Command (String cmd, File pipeAsInput, OutputStream pipeToOutput, long maxTimeoutForCommand, TimeUnit timeUnit, int retryAttempts)

执行adb shell命令,并使用更多参数来控制命令行为。

CommandResult fastbootWipePartition (String partition)

擦除设备分区的辅助方法。

getActiveApexes ()

获取有关在设备上激活的APEX的信息。

getAllSettings (String namespace)

返回请求的名称空间的键值对。

DeviceAllocationState getAllocationState ()

返回设备的当前分配状态

String getAndroidId (int userId)

查找并返回与userId关联的android-id,如果未找到,则返回null。

getAndroidIds ()

创建一个与用户ID匹配的android ID映射。

int getApiLevel ()

获取设备API级别。

PackageInfo getAppPackageInfo (String packageName)

获取有关设备上安装的软件包的信息。

String getBasebandVersion ()

获取此设备的基带(无线电)版本的便捷方法。

Integer getBattery ()

返回设备的当前电池电量;如果电池电量不可用,则返回Null。

String getBootloaderVersion ()

获取此设备的引导程序版本的便捷方法。

InputStreamSource getBugreport ()

从设备检索错误报告。

InputStreamSource getBugreportz ()

从设备检索错误报告。

String getBuildAlias ()

检索设备当前正在运行的内部版本的别名。

String getBuildFlavor ()

检索设备的构建味道。

String getBuildId ()

检索设备当前正在运行的版本。

String getBuildSigningKeys ()

返回用于签署设备映像的密钥类型

通常,Android设备可能会使用测试键(如AOSP中的签名)或释放键(由各个设备制造商控制)进行签名

String[] getChildren (String path)

替代使用IFileEntry ,由于权限的IFileEntry ,有时无法使用。

int getCurrentUser ()

返回当前运行用户的ID。

String getDeviceClass ()

获取设备类。

long getDeviceDate ()

返回设备的日期,以毫秒为单位。

DeviceDescriptor getDeviceDescriptor ()

从设备信息返回DeviceDescriptor以获取有关它的信息,而无需传递实际的设备对象。

TestDeviceState getDeviceState ()

获取设备的状态。

long getDeviceTimeOffset (Date date)

帮助程序获取设备与给定ERROR(/Date)之间的时间差。

InputStreamSource getEmulatorOutput ()

获取模拟器stdout和stderr的流

Process getEmulatorProcess ()

返回与此模拟器对应的Process

final File getExecuteShellCommandLog ()

包含所有executeShellCommand(String)日志的日志。

long getExternalStoreFreeSpace ()

确定设备外部存储上可用空间量的辅助方法。

String getFastbootPath ()

返回正在使用的fastboot二进制文件的路径。

String getFastbootProductType ()

在快速启动模式下获取此设备产品类型的便捷方法。

String getFastbootProductVariant ()

在快速启动模式下获取此设备产品类型的便捷方法。

String getFastbootVersion ()

返回所使用的fastboot二进制文件的版本字符串。

IFileEntry getFileEntry (String path)

检索对设备上远程文件的引用。

IFileEntry getFileEntry (FileListingService.FileEntry entry)

从非根路径获取FileEntry非官方帮助者。

IDevice getIDevice ()

返回对关联的ddmlib IDevice的引用。

getInstalledPackageNames ()

提取设备上存在的应用程序包名称。

String getIpAddress ()

获取设备的IP地址。

KeyguardControllerState getKeyguardState ()

返回一个对象以获取键盘锁的当前状态;如果不支持,则返回null。

long getLastExpectedRebootTimeMillis ()

返回自System.currentTimeMillis()返回EPOCH以来,Tradefed API上一次触发重新引导的时间(以毫秒为单位System.currentTimeMillis()

InputStreamSource getLogcat ()

获取logcat数据的快照流。

InputStreamSource getLogcat (int maxBytes)

捕获捕获的logcat数据的最后maxBytes个快照流。

InputStreamSource getLogcatDump ()

获取设备当前logcat的转储。

InputStreamSource getLogcatSince (long date)

从提供的日期开始获取捕获的logcat数据的快照流。

String getMacAddress ()

返回设备的MAC地址,如果无法从设备查询,则返回null。

int getMaxNumberOfRunningUsersSupported ()

获取受支持的同时运行用户的最大数量。

int getMaxNumberOfUsersSupported ()

获取支持的最大用户数。

IDeviceStateMonitor getMonitor ()

返回与设备关联的IDeviceStateMonitor

String getMountPoint (String mountName)

返回安装点。

ITestDevice.MountPointInfo getMountPointInfo (String mountpoint)

返回与指定的安装点路径相对应的MountPointInfo如果该路径未安装任何东西,否则返回null ,否则不出现在/ proc / mounts中作为安装点。

getMountPointInfo ()

返回设备上/ proc / mounts中信息的解析版本

TestDeviceOptions getOptions ()

获取设备的测试选项。

long getPartitionFreeSpace (String partition)

确定设备分区上可用空间量的辅助方法。

Integer getPrimaryUserId ()

返回主要用户ID。

ProcessInfo getProcessByName (String processName)

Helper方法运行“ ps”命令并返回给定进程名称的USER,PID和NAME。

String getProcessPid (String process)

返回服务的pid;如果出现问题,则返回null。

getProcesses ()

Helper方法运行“ ps”命令并返回所有进程的USER,PID和NAME的列表。

String getProductType ()

获取此设备产品类型的便捷方法。

String getProductVariant ()

获取此设备产品变型的便捷方法。

String getProperty (String name)

从设备检索给定的属性值。

ITestDevice.RecoveryMode getRecoveryMode ()

获取用于设备的当前恢复模式。

InputStreamSource getScreenshot (int displayId)

从给定显示ID的设备中抓取屏幕截图。

InputStreamSource getScreenshot (String format)

从设备抓取屏幕截图。

InputStreamSource getScreenshot (String format, boolean rescale)

从设备抓取屏幕截图。

InputStreamSource getScreenshot ()

从设备抓取屏幕截图。

String getSerialNumber ()

获取此设备序列号的便捷方法。

String getSetting (int userId, String namespace, String key)

返回所请求设置的值。

String getSetting (String namespace, String key)

请参见getSetting(int, String, String)并在系统用户上执行。

String getSimOperator ()

返回SIM卡操作员;如果设备不可用,则返回null。

String getSimState ()

返回SIM卡状态;如果设备不可用,则返回null。

getTombstones ()

从设备中获取并返回逻辑删除列表。

long getTotalMemory ()

返回总的物理内存大小(以字节为单位),如果发生内部错误,则返回-1

getUninstallablePackageNames ()

获取可以卸载的应用程序包名称。

boolean getUseFastbootErase ()

获取使用快速启动擦除还是快速启动格式擦除设备上的分区。

int getUserFlags (int userId)

查找并返回给定用户的标志。

getUserInfos ()

获取useId到设备上UserInfo的映射。

int getUserSerialNumber (int userId)

返回与userId关联的序列号(如果找到),在其他情况下为-10000。

IManagedTestDevice.DeviceEventResponse handleAllocationEvent (DeviceEvent event)

处理给定的DeviceEvent

处理DeviceEvent,该事件可能会或可能不会将此设备转换为新的分配状态。

boolean hasFeature (String feature)

检查设备上是否有功能。

String installPackage (File packageFile, boolean reinstall, String... extraArgs)

在设备上安装Android软件包。

String installPackage (File packageFile, boolean reinstall, boolean grantPermissions, String... extraArgs)

在设备上安装Android软件包。

String installPackageForUser (File packageFile, boolean reinstall, int userId, String... extraArgs)

在设备上为给定用户安装Android软件包。

String installPackageForUser (File packageFile, boolean reinstall, boolean grantPermissions, int userId, String... extraArgs)

在设备上为给定用户安装Android软件包。

boolean isAdbRoot ()

boolean isAdbTcp ()
boolean isDeviceEncrypted ()

返回设备是否已加密。

boolean isDirectory (String path)

如果设备上的路径是目录,则返回True,否则返回false。

boolean isEnableAdbRoot ()
boolean isEncryptionSupported ()

返回设备是否支持加密。

boolean isExecutable (String fullPath)

如果设备上的文件路径是可执行文件,则返回True,否则返回false。

boolean isFastbootEnabled ()

如果fastboot可用于该设备,则返回。

boolean isHeadless ()

如果设备无头(无屏幕),则返回true,否则返回false。

boolean isMultiUserSupported ()

确定是否支持多用户。

boolean isPackageInstalled (String packageName, String userId)

在设备上查询给定的程序包名称和用户ID,以检查该用户当前是否已安装该设备。

boolean isPackageInstalled (String packageName)

在设备上查询给定的软件包名称,以检查当前是否已安装。

boolean isRuntimePermissionSupported ()

检查设备上的平台是否支持运行时权限授予

boolean isUserRunning (int userId)

检查给定用户是否正在运行。

boolean isUserSecondary (int userId)

返回根据其标志指定的用户是否是辅助用户。

boolean isWifiEnabled ()

测试是否启用了wifi。

listDisplayIds ()

收集“ dumpsys SurfaceFlinger”报告的设备上可用显示ID的列表。

listUsers ()

获取设备上的用户列表。

boolean logBugreport (String dataName, ITestLogger listener)

进行错误报告并将其记录到报告程序的助手方法。

void logOnDevice (String tag, Log.LogLevel level, String format, Object... args)

在设备的日志中记录一条消息。

void nonBlockingReboot ()

发出命令以重新引导设备,并在命令完成后以及adb不再可见设备时返回。

void postAdbRootAction ()

如果设备需要在adb root之后且设备重新联机之前执行某些特定操作,则重写。

void postAdbUnrootAction ()

如果设备需要在adb unroot之后且设备重新联机之前执行某些特定操作,则覆盖此参数。

void postBootSetup ()

执行说明以配置设备以在每次引导后对其进行测试。

void postInvocationTearDown ()

特定于设备的必需清理的额外步骤将在调用完成后执行。

void preInvocationSetup ( IBuildInfo info)

设备特定的必需设置的额外步骤将在调用流程之前在设备上执行。

boolean pullDir (String deviceFilePath, File localDir)

从设备递归提取目录内容。

boolean pullFile (String remoteFilePath, File localFile)

从设备上检索文件。

File pullFile (String remoteFilePath)

从设备上检索文件,将其存储在本地临时ERROR(/File) ,然后返回该File

String pullFileContents (String remoteFilePath)

从设备上检索文件,然后返回内容。

File pullFileFromExternal (String remoteFilePath)

一种从设备的外部存储中检索文件,将其存储在本地临时ERROR(/File)中并返回对该File的引用的便捷方法。

boolean pushDir (File localFileDir, String deviceFilePath, excludedDirectories) pushDir (File localFileDir, String deviceFilePath, excludedDirectories)

将目录内容递归推送到设备,同时排除一些已过滤的目录。

boolean pushDir (File localFileDir, String deviceFilePath)

递归将目录内容推送到设备。

boolean pushFile (File localFile, String remoteFilePath)

将文件推送到设备

boolean pushString (String contents, String remoteFilePath)

将从字符串创建的文件推送到设备

void reboot ()

将设备重新引导到adb模式。

void rebootIntoBootloader ()

将设备重新引导到引导加载程序模式。

void rebootIntoRecovery ()

将设备重新引导到adb恢复模式。

void rebootUntilOnline ()

一个reboot()的替代方法,它仅在设备联机之前才阻塞,即对adb可见。

void recoverDevice ()

尝试恢复设备通信。

void remountSystemWritable ()

使设备上的系统分区可写。

boolean removeAdmin (String componentName, int userId)

删除给定用户中的给定设备管理员,如果成功则返回true ,否则返回false

void removeOwners ()

尽最大努力删除所有现有的设备配置文件所有者。

boolean removeUser (int userId)

从设备中删除给定的用户。

boolean runInstrumentationTests (IRemoteAndroidTestRunner runner, ITestLifeCycleReceiver... listeners)

使用一个或多个作为参数传递的侦听器执行ERROR(/#runInstrumentationTests(com.android.ddmlib.testrunner.IRemoteAndroidTestRunner,Collection))便捷方法。

boolean runInstrumentationTests (IRemoteAndroidTestRunner runner, listeners) runInstrumentationTests (IRemoteAndroidTestRunner runner, listeners)

运行仪器测试,并提供设备恢复。

boolean runInstrumentationTestsAsUser (IRemoteAndroidTestRunner runner, int userId, ITestLifeCycleReceiver... listeners)

ITestDevice#runInstrumentationTests(IRemoteAndroidTestRunner, ITestLifeCycleReceiver...)但是为给定用户运行测试。

boolean runInstrumentationTestsAsUser (IRemoteAndroidTestRunner runner, int userId, listeners) runInstrumentationTestsAsUser (IRemoteAndroidTestRunner runner, int userId, listeners)

ERROR(ITestDevice#runInstrumentationTests(IRemoteAndroidTestRunner, Collection)/com.android.tradefed.device.ITestDevice#runInstrumentationTests(com.android.ddmlib.testrunner.IRemoteAndroidTestRunner,Collection) ITestDevice#runInstrumentationTests(IRemoteAndroidTestRunner, Collection))给定的用户。

void setDate (Date date)

在设备上设置日期

注意:在设备上设置日期需要root

boolean setDeviceOwner (String componentName, int userId)

将设备管理员组件设置为给定用户中的设备所有者。

void setDeviceState ( TestDeviceState deviceState)

更新设备的状态。

void setEmulatorOutputStream ( SizeLimitedOutputStream output)

对于模拟器,将SizeLimitedOutputStream设置为记录输出

void setEmulatorProcess (Process p)

当此设备是仿真器时,设置Process

void setFastbootEnabled (boolean fastbootEnabled)

设置设备的fastboot选项。

void setFastbootPath (String fastbootPath)

将路径设置为应使用的fastboot二进制文件。

void setIDevice (IDevice newDevice)

更新与此ITestDevice关联的IDevice。

void setOptions ( TestDeviceOptions options)

设置设备的TestDeviceOptions

boolean setProperty (String propKey, String propValue)

在设备上设置给定的属性值。

void setRecovery ( IDeviceRecovery recovery)

设置要用于此设备的IDeviceRecovery

void setRecoveryMode ( ITestDevice.RecoveryMode mode)

设置要用于设备的当前恢复模式。

void setSetting (String namespace, String key, String value)

请参见setSetting(int, String, String, String)并在系统用户上执行。

void setSetting (int userId, String namespace, String key, String value)

将设置值添加到给定用户的名称空间。

void setUseFastbootErase (boolean useFastbootErase)

设置使用快速启动擦除还是快速启动格式擦除设备上的分区。

void startLogcat ()

开始在后台捕获设备的logcat输出。

boolean startUser (int userId)

如果当前已停止,则在后台启动给定用户。

boolean startUser (int userId, boolean waitFlag)

如果当前已停止,则在后台启动给定用户。

void stopEmulatorOutput ()

关闭并删除仿真器输出。

void stopLogcat ()

停止捕获设备的logcat输出,并丢弃当前保存的logcat数据。

boolean stopUser (int userId)

停止给定的用户。

boolean stopUser (int userId, boolean waitFlag, boolean forceFlag)

停止给定的用户。

String switchToAdbTcp ()

将设备切换到adb-over-tcp模式。

boolean switchToAdbUsb ()

通过USB模式将设备切换到adb。

boolean switchUser (int userId)

切换到另一个具有默认超时的userId。

boolean switchUser (int userId, long timeout)

使用提供的超时作为截止日期切换到另一个userId。

boolean syncFiles (File localFileDir, String deviceFilePath)

将本地文件目录的内容增量同步到设备。

Bugreport takeBugreport ()

进行错误报告并将其返回到Bugreport对象中以进行处理。

boolean unencryptDevice ()

解密设备。

String uninstallPackage (String packageName)

从设备上卸载Android程序包。

boolean unlockDevice ()

如果设备处于加密状态,则解锁设备。

boolean waitForBootComplete (long timeOut)

阻塞直到设置设备的启动完成标志。

void waitForDeviceAvailable ()

等待设备响应并可以进行测试。

void waitForDeviceAvailable (long waitTime)

等待设备响应并可以进行测试。

boolean waitForDeviceInRecovery (long waitTime)

阻止设备处于“ adb恢复”状态(请注意,这与IDeviceRecovery不同)。

boolean waitForDeviceNotAvailable (long waitTime)

该设备的块不可用,即adb丢失

void waitForDeviceOnline ()

阻塞,直到通过adb看到设备为止。

void waitForDeviceOnline (long waitTime)

阻塞,直到通过adb看到设备为止。

boolean waitForDeviceShell (long waitTime)

等待设备响应基本的adb shell命令。

受保护的方法

void checkApiLevelAgainst (String feature, int strictMinLevel)
NativeDevice.RebootDeviceAction createRebootDeviceAction (String into)

创建一个RebootDeviceAction以在执行重新启动操作时使用。

void doAdbReboot (String into)

执行adb重新启动。

void ensureRuntimePermissionSupported ()

如果不支持运行时权限,则抛出异常的辅助方法

InputStreamSource getBugreportInternal ()
File getBugreportzInternal ()

用于将bugreportz zip文件获取为ERROR(/File)内部Helper方法。

IRunUtil getRunUtil ()

获取要使用的RunUtil实例。

String internalGetProperty (String propName, String fastbootVar, String description)

默认情况下,从ddmlib缓存中获取设备属性,然后根据设备是否处于Fastboot来回退至“ adb shell getprop”或“ fastboot getvar”。

boolean isNewer (File localFile, IFileEntry entry)

如果本地文件比远程文件新,则返回true

boolean performDeviceAction (String actionDescription, com.android.tradefed.device.NativeDevice.DeviceAction action, int retryAttempts)

在此设备上执行操作。

void postAdbReboot ()

重新启动后可以采取的可能的额外操作。

void prePostBootSetup ()

允许每种设备类型(AndroidNativeDevice,TestDevice)针对特定的启动后设置覆盖此方法。

void setClock (Clock clock)

设置要使用的Clock实例。

void setLogStartDelay (int delay)

设置开始在线设备捕获日志之前要等待的时间(以毫秒为单位)。

void waitForDeviceNotAvailable (String operationDesc, long time)

常数

INVALID_USER_ID

public static final int INVALID_USER_ID

对于任何无效/未找到的用户ID返回的值:UserHandle定义了-10000值

常数:-10000(0xffffd8f0)

MAX_HOST_DEVICE_TIME_OFFSET

protected static final long MAX_HOST_DEVICE_TIME_OFFSET

常数值:5000(0x0000000000001388)

MAX_RETRY_ATTEMPTS

protected static final int MAX_RETRY_ATTEMPTS

默认的命令重试尝试次数

常数值:2(0x00000002)

领域

m选项

protected TestDeviceOptions mOptions

mStateMonitor

protected final IDeviceStateMonitor mStateMonitor

公共建设者

本机设备

public NativeDevice (IDevice device, 
                IDeviceStateMonitor stateMonitor, 
                IDeviceMonitor allocationMonitor)

创建一个TestDevice

参量
device IDevice :关联的IDevice

stateMonitor IDeviceStateMonitor :要使用的IDeviceStateMonitor机制

allocationMonitor IDeviceMonitorIDeviceMonitor通知分配状态更改。可以为空

公开方法

checkApiLevelAgainstNextRelease

public boolean checkApiLevelAgainstNextRelease (int strictMinLevel)

在最低支持级别下,检查当前是否支持某个功能。在提高API级别之前,此方法会考虑尚未发布的功能。

参量
strictMinLevel int :支持该功能的严格的最小可能级别。

退货
boolean 如果支持级别,则为True。否则为假。

投掷
DeviceNotAvailableException

checkConnectivity

public boolean checkConnectivity ()

检查设备是否具有网络连接。

退货
boolean 如果设备的网络连接正常,则为true否则为false

投掷
DeviceNotAvailableException

clearErrorDialogs

public boolean clearErrorDialogs ()

尝试关闭设备界面上当前显示的所有错误对话框。

退货
boolean 如果不存在对话框或成功清除对话框,则为true 。否则为false

投掷
DeviceNotAvailableException

clearLastConnectedWifiNetwork

public void clearLastConnectedWifiNetwork ()

清除最后连接的wifi网络。在开始新的调用时应调用此函数,以避免设备重启后连接到先前测试中使用的wifi网络。

clearLogcat

public void clearLogcat ()

删除任何累积的logcat数据。

当您要确保ITestDevice#getLogcat()仅返回在特定时间点之后生成的日志数据(例如在刷新新的设备版本后等)时,这很有用。

connectToWifiNetwork

public boolean connectToWifiNetwork (String wifiSsid, 
                String wifiPsk)

连接到wifi网络。

打开wifi并阻止,直到成功连接到指定的wifi网络为止。建立连接后,实例将在每次重新启动后尝试恢复连接,直到ITestDevice#disconnectFromWifi()ITestDevice#clearLastConnectedWifiNetwork()

参量
wifiSsid String :要连接的wifi ssid

wifiPsk String :PSK密码,如果未加密,则为null

退货
boolean 如果成功连接到wifi网络,则为true 。否则为false

投掷
DeviceNotAvailableException

connectToWifiNetwork

public boolean connectToWifiNetwork (String wifiSsid, 
                String wifiPsk, 
                boolean scanSsid)

连接到wifi网络。

打开wifi并阻止,直到成功连接到指定的wifi网络为止。建立连接后,实例将在每次重新启动后尝试恢复连接,直到ITestDevice#disconnectFromWifi()ITestDevice#clearLastConnectedWifiNetwork()

参量
wifiSsid String :要连接的wifi ssid

wifiPsk String :PSK密码,如果未加密,则为null

scanSsid boolean :是否扫描此网络的隐藏SSID。

退货
boolean 如果成功连接到wifi网络,则为true 。否则为false

投掷
DeviceNotAvailableException

需要时连接到Wifi网络

public boolean connectToWifiNetworkIfNeeded (String wifiSsid, 
                String wifiPsk, 
                boolean scanSsid)

connectToWifiNetwork(String, String)变体,仅在设备当前没有网络连接时才连接。

参量
scanSsid boolean :是否扫描此网络的隐藏SSID

退货
boolean 如果成功连接到wifi网络,则为true 。否则为false

投掷
DeviceNotAvailableException

需要时连接到Wifi网络

public boolean connectToWifiNetworkIfNeeded (String wifiSsid, 
                String wifiPsk)

connectToWifiNetwork(String, String)变体,仅在设备当前没有网络连接时才连接。

退货
boolean 如果成功连接到wifi网络,则为true 。否则为false

投掷
DeviceNotAvailableException

创建用户

public int createUser (String name, 
                boolean guest, 
                boolean ephemeral)

创建具有给定名称和提供的标志的用户

参量
name String :要在设备上创建的用户的String

guest boolean :在创建过程中启用用户标志--guest

ephemeral boolean :在创建过程中启用用户标志--ephemeral

退货
int 创建的用户的ID

投掷
DeviceNotAvailableException

创建用户

public int createUser (String name)

创建一个具有给定名称和默认标志0的用户。

参量
name String :要在设备上创建的用户的String

退货
int 创建的用户ID的整数

投掷
DeviceNotAvailableException

createUserNoThrow

public int createUserNoThrow (String name)

创建一个具有给定名称和默认标志0的用户。

参量
name String :要在设备上创建的用户的String

退货
int 创建的用户ID的整数,或-1表示错误。

投掷
DeviceNotAvailableException

删除文件

public void deleteFile (String deviceFilePath)

删除设备上文件或目录的帮助方法。

参量
deviceFilePath String :设备上文件的绝对路径。

投掷
DeviceNotAvailableException

disableAdbRoot

public boolean disableAdbRoot ()

关闭adb根目录。

禁用adb root可能会导致设备与adb断开连接。该方法将阻塞,直到设备可用。

退货
boolean 如果成功,则为true

投掷
DeviceNotAvailableException

disableKeyguard

public void disableKeyguard ()

尝试禁用键盘锁。

首先等待输入分发准备就绪,这大约在设备报告BOOT_COMPLETE的同时发生,这显然是异步的,因为当前框架实现有时会出现竞争状况。然后发送命令以关闭键盘锁(仅适用于不安全的键盘锁)

投掷
DeviceNotAvailableException

disableNetworkMonitor

public boolean disableNetworkMonitor ()

在设备上禁用网络监视。

退货
boolean 如果成功禁用监视,则为true 。如果失败,则返回false

投掷
DeviceNotAvailableException

从Wifi断开

public boolean disconnectFromWifi ()

断开与wifi网络的连接。

从已知网络列表中删除所有网络并禁用wifi。

退货
boolean 如果成功从wifi网络断开连接,则为true 。如果断开连接失败,则返回false

投掷
DeviceNotAvailableException

didFileExist

public boolean doesFileExist (String deviceFilePath)

确定设备上文件是否存在的辅助方法。

参量
deviceFilePath String :要检查的设备上文件的绝对路径

退货
boolean 如果文件存在,则为true ,否则为false

投掷
DeviceNotAvailableException

dumpHeap

public File dumpHeap (String process, 
                String devicePath)

尝试从system_server中转储堆。清理转储文件是呼叫者的责任。

参量
process String :要在其上进行转储的设备进程的名称。

devicePath String :设备上放置转储的路径。这必须是权限允许的位置。

退货
File 包含报告的ERROR(/File) 。如果失败,则为Null。

投掷
DeviceNotAvailableException

enableAdbRoot

public boolean enableAdbRoot ()

打开adb根目录。如果“ enable-root”设置为“ false”,将记录一条消息并返回而不启用root。

启用adb root可能会导致设备与adb断开连接。该方法将阻塞,直到设备可用。

退货
boolean 如果成功,则为true

投掷
DeviceNotAvailableException

enableNetworkMonitor

public boolean enableNetworkMonitor ()

在设备上启用网络监视。

退货
boolean 如果成功启用监视,则为true 。如果失败,则返回false

投掷
DeviceNotAvailableException

cryptoDevice

public boolean encryptDevice (boolean inplace)

加密设备。

可以对设备进行加密或就位进行加密。就地加密不会擦除设备上的任何数据,但通常比擦除要长几个数量级。

如果该设备尚未加密,则此方法将重新启动设备,并在设备联机之前将其阻止。此外,重启后它不会解密设备。因此,当此方法返回时,设备可能未完全启动和/或未准备好进行测试。

参量
inplace boolean :如果加密过程应该就位并且不应擦除设备。

退货
boolean 如果成功,则为true

投掷
DeviceNotAvailableException

executeAdbCommand

public String executeAdbCommand (String... cmdArgs)

将adb命令作为系统命令执行的Helper方法。

应尽可能使用executeShellCommand(String)代替,因为该方法可提供更好的故障检测和性能。

参量
cmdArgs String :adb命令和要运行的参数

退货
String 命令的标准输出。如果命令执行失败,则返回null

投掷
DeviceNotAvailableException

executeFastbootCommand

public CommandResult executeFastbootCommand (String... cmdArgs)

帮助程序方法,将fastboot命令作为系统命令执行,默认超时为2分钟。

预计将在设备已经处于快速启动模式时使用。

参量
cmdArgs String :fastboot命令和要运行的参数

退货
CommandResult 包含命令输出的CommandResult

投掷
DeviceNotAvailableException

executeFastbootCommand

public CommandResult executeFastbootCommand (long timeout, 
                String... cmdArgs)

将fastboot命令作为系统命令执行的Helper方法。

预计将在设备已经处于快速启动模式时使用。

参量
timeout long :命令到期前的时间(以毫秒为单位)

cmdArgs String :fastboot命令和要运行的参数

退货
CommandResult 包含命令输出的CommandResult

投掷
DeviceNotAvailableException

executeLongFastbootCommand

public CommandResult executeLongFastbootCommand (String... cmdArgs)

将长时间运行的fastboot命令作为系统命令执行的Helper方法。

executeFastbootCommand(String)相同,除了使用更长的超时时间。

参量
cmdArgs String :fastboot命令和要运行的参数

退货
CommandResult 包含命令输出的CommandResult

投掷
DeviceNotAvailableException

executeShellCommand

public String executeShellCommand (String command)

执行adb shell命令并以String返回输出的Helper方法。

参量
command String :要运行的adb shell命令

退货
String 外壳输出

投掷
DeviceNotAvailableException

executeShellCommand

public void executeShellCommand (String command, 
                IShellOutputReceiver receiver, 
                long maxTimeToOutputShellResponse, 
                TimeUnit timeUnit, 
                int retryAttempts)

执行adb shell命令,并使用更多参数来控制命令行为。

参量
command String :要运行的adb shell命令

receiver IShellOutputReceiver :将Shell输出IShellOutputReceiver到的IShellOutputReceiver

maxTimeToOutputShellResponse long :允许命令不输出任何响应的最longtimeUnit指定的timeUnit

timeUnit TimeUnitmaxTimeToOutputShellResponse单位

retryAttempts int :命令由于异常而失败的最大重试次数。如果执行retryAttempts失败,将引发retryAttempts

投掷
DeviceNotAvailableException

executeShellCommand

public void executeShellCommand (String command, 
                IShellOutputReceiver receiver, 
                long maxTimeoutForCommand, 
                long maxTimeToOutputShellResponse, 
                TimeUnit timeUnit, 
                int retryAttempts)

执行adb shell命令,并使用更多参数来控制命令行为。

参量
command String :要运行的adb shell命令

receiver IShellOutputReceiver :将Shell输出IShellOutputReceiver到的IShellOutputReceiver

maxTimeoutForCommand long :命令完成的最大超时; timeUnit指定的timeUnit

maxTimeToOutputShellResponse long :允许命令不输出任何响应的最longtimeUnit指定的timeUnit

timeUnit TimeUnitmaxTimeToOutputShellResponse单位

retryAttempts int :命令由于异常而失败的最大重试次数。如果执行retryAttempts失败,将引发retryAttempts

投掷
DeviceNotAvailableException

executeShellCommand

public void executeShellCommand (String command, 
                IShellOutputReceiver receiver)

执行给定的adb shell命令,如果命令失败,则重试多次。

一种带有默认值的executeShellCommand(String, com.android.ddmlib.IShellOutputReceiver, long, TimeUnit, int)的简单形式。

参量
command String :要运行的adb shell命令

receiver IShellOutputReceiver :将Shell输出IShellOutputReceiver到的IShellOutputReceiver

投掷
DeviceNotAvailableException

executeShellV2Command

public CommandResult executeShellV2Command (String cmd)

Helper方法,该方法执行adb shell命令,并将结果作为CommandResult返回,并正确填充命令状态输出stdout和stderr。

参量
cmd String :应运行的命令。

退货
CommandResult CommandResult的结果。

投掷
DeviceNotAvailableException

executeShellV2Command

public CommandResult executeShellV2Command (String cmd, 
                OutputStream pipeToOutput)

Helper方法,该方法执行adb shell命令,并将结果作为CommandResult返回,并正确填充命令状态输出stdout和stderr。

参量
cmd String :应运行的命令。

pipeToOutput OutputStreamERROR(/OutputStream)将在其中重定向标准输出。

退货
CommandResult CommandResult的结果。

投掷
DeviceNotAvailableException

executeShellV2Command

public CommandResult executeShellV2Command (String cmd, 
                File pipeAsInput)

Helper方法,该方法执行adb shell命令,并将结果作为CommandResult返回,并正确填充命令状态输出stdout和stderr。

参量
cmd String :应运行的命令。

pipeAsInput FileERROR(/File) ,将通过管道将其作为命令的输入。

退货
CommandResult CommandResult的结果。

投掷
DeviceNotAvailableException

executeShellV2Command

public CommandResult executeShellV2Command (String cmd, 
                long maxTimeoutForCommand, 
                TimeUnit timeUnit, 
                int retryAttempts)

执行adb shell命令,并使用更多参数来控制命令行为。

参量
cmd String :要运行的adb shell命令

maxTimeoutForCommand long :命令完成的最大超时; timeUnit指定的timeUnit

timeUnit TimeUnitmaxTimeToOutputShellResponse单位

retryAttempts int :命令由于异常而失败的最大重试次数。如果执行retryAttempts失败,将引发retryAttempts

退货
CommandResult

投掷
DeviceNotAvailableException

executeShellV2Command

public CommandResult executeShellV2Command (String cmd, 
                long maxTimeoutForCommand, 
                TimeUnit timeUnit)

执行adb shell命令,并使用更多参数来控制命令行为。

参量
cmd String :要运行的adb shell命令

maxTimeoutForCommand long :命令完成的最大超时; timeUnit指定的timeUnit

timeUnit TimeUnitmaxTimeToOutputShellResponse单位

退货
CommandResult

投掷
DeviceNotAvailableException

executeShellV2Command

public CommandResult executeShellV2Command (String cmd, 
                File pipeAsInput, 
                OutputStream pipeToOutput, 
                long maxTimeoutForCommand, 
                TimeUnit timeUnit, 
                int retryAttempts)

执行adb shell命令,并使用更多参数来控制命令行为。

参量
cmd String :要运行的adb shell命令

pipeAsInput FileERROR(/File) ,将通过管道将其作为命令的输入。

pipeToOutput OutputStreamERROR(/OutputStream)将在其中重定向标准输出。

maxTimeoutForCommand long :命令完成的最大超时; timeUnit指定的timeUnit

timeUnit TimeUnitmaxTimeToOutputShellResponse单位

retryAttempts int :命令由于异常而失败的最大重试次数。如果执行retryAttempts失败,将引发retryAttempts

退货
CommandResult

投掷
DeviceNotAvailableException

fastbootWipePartition

public CommandResult fastbootWipePartition (String partition)

擦除设备分区的辅助方法。

如果getUseFastbootErase()true ,则快速启动擦除将用于擦除分区。然后,设备必须在下次引导时创建文件系统。否则,将使用快速启动格式,该格式将在设备上创建新的文件系统。

预期在设备已经处于快速启动模式时使用。

参量
partition String :要擦除的分区

退货
CommandResult 包含命令输出的CommandResult

投掷
DeviceNotAvailableException

getActiveApexes

public  getActiveApexes ()

获取有关在设备上激活的APEX的信息。

退货
设备上当前激活的ApexInfo ERROR(/Set)

投掷
DeviceNotAvailableException

getAllSettings

public  getAllSettings (String namespace)

返回请求的名称空间的键值对。

参量
namespace String :必须是{“ system”,“ secure”,“ global”}中的一个

退货
键值对的映射。如果不支持名称空间,则为Null。

投掷
DeviceNotAvailableException

getAllocationState

public DeviceAllocationState getAllocationState ()

返回设备的当前分配状态

退货
DeviceAllocationState

getAndroidId

public String getAndroidId (int userId)

查找并返回与userId关联的android-id,如果未找到,则返回null。

参量
userId int

退货
String

投掷
DeviceNotAvailableException

getAndroidIds

public  getAndroidIds ()

创建一个与用户ID匹配的android ID映射。没有保证每个用户ID都会在此函数中找到关联的Android ID,因此某些用户ID可能与null匹配。

退货
找到与用户ID匹配的android ID映射。

投掷
DeviceNotAvailableException

getApiLevel

public int getApiLevel ()

获取设备API级别。默认为UNKNOWN_API_LEVEL

退货
int 一个整数,指示设备的API级别

投掷
DeviceNotAvailableException

getAppPackageInfo

public PackageInfo getAppPackageInfo (String packageName)

获取有关设备上安装的软件包的信息。

参量
packageName String

退货
PackageInfo PackageInfo如果无法检索信息,则返回null

投掷
DeviceNotAvailableException

getBasebandVersion

public String getBasebandVersion ()

获取此设备的基带(无线电)版本的便捷方法。获取无线电版本是特定于设备的,因此它可能不会为所有设备返回正确的信息。此方法依赖gsm.version.baseband属性返回正确的版本信息。对于某些CDMA设备,这是不准确的,并且此处返回的版本可能与fastboot报告的版本不匹配,并且可能不会返回CDMA无线电的版本。 TL; DR仅当gsm.version.baseband属性与fastboot getvar version-baseband返回的版本相同时,此方法才报告准确的版本。

退货
String String基带版本;如果无法确定,则为null (设备没有广播或无法读取版本字符串)

投掷
DeviceNotAvailableException

getBattery

public Integer getBattery ()

返回设备的当前电池电量;如果电池电量不可用,则返回Null。

退货
Integer

getBootloaderVersion

public String getBootloaderVersion ()

获取此设备的引导程序版本的便捷方法。

将尝试从设备的当前状态检索引导加载程序版本。 (即,如果设备处于快速启动模式,它将尝试从快速启动中检索版本)

退货
String String引导加载程序版本;如果找不到,则返回null

投掷
DeviceNotAvailableException

getBugreport

public InputStreamSource getBugreport ()

从设备检索错误报告。

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

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

getCurrentUser

public int getCurrentUser ()

Return the id of the current running user.

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

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

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
DeviceNotAvailableException

getIDevice

public IDevice getIDevice ()

Returns a reference to the associated ddmlib IDevice .

A new 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

public  getInstalledPackageNames ()

Fetch the application package names present on the device.

Returns
ERROR(/Set) of String package names currently installed on the device.

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

getLogcat

public InputStreamSource getLogcat ()

Grabs a snapshot stream of the logcat data.

Works in two modes:

  • If the logcat is currently being captured in the background, will return up to TestDeviceOptions#getMaxLogcatDataSize() bytes of the current contents of the background logcat capture
  • Otherwise, will return a static dump of the logcat data if device is currently responding

    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

    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

    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 in IDevice is not available.

    TODO: move this behavior to IDevice#getMountPoint(String)

    Parameters
    mountName String : the name of the mount point

    Returns
    String the mount point or null

    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

    public  getMountPointInfo ()

    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 "ps" command and returns USER, PID and NAME of the given process name.

    Parameters
    processName 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

    Returns
    String

    Throws
    DeviceNotAvailableException

    getProcesses

    public  getProcesses ()

    Helper method runs the "ps" command and returns list of USER, PID and NAME of all the processes.

    Returns
    List of ProcessInfo objects

    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 (int 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 int : 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 device is not available.

    Returns
    String

    getSimState

    public String getSimState ()

    Return the SIM card state or null if device is not available.

    Returns
    String

    getTombstones

    public  getTombstones ()

    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

    getUninstallablePackageNames

    public  getUninstallablePackageNames ()

    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

    public  getUserInfos ()

    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 install --help' 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 install --help' 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 install --help' 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 install --help' for available options.

    Returns
    String a String with an error code, or null if success.

    Throws
    DeviceNotAvailableException

    isAdbRoot

    public boolean isAdbRoot ()

    Returns
    boolean

    Throws
    DeviceNotAvailableException

    isAdbTcp

    public boolean isAdbTcp ()

    Returns
    boolean

    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

    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

    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

    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, eg mobile data tests.

    Returns
    boolean true if wifi is enabled. false if disabled

    Throws
    DeviceNotAvailableException

    listDisplayIds

    public  listDisplayIds ()

    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

    listUsers

    public  listUsers ()

    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

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

    Extra steps for device specific required clean up that will be executed after the invocation is done.

    preInvocationSetup

    public void preInvocationSetup ( IBuildInfo info)

    Extra steps for device specific required setup that will be executed on the device prior to the invocation flow.

    Parameters
    info IBuildInfo

    Throws
    DeviceNotAvailableException
    TargetSetupError

    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)

    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

    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

    pushFile

    public boolean pushFile (File localFile, 
                    String remoteFilePath)

    Push a file to device

    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

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

    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

    rebootIntoRecovery

    public void rebootIntoRecovery ()

    Reboots the device into adb recovery mode.

    Blocks until device enters recovery

    Throws
    DeviceNotAvailableException

    rebootUntilOnline

    public void rebootUntilOnline ()

    An alternate to reboot() that only blocks until device is online ie visible to adb.

    Throws
    DeviceNotAvailableException

    recoverDevice

    public void recoverDevice ()

    Attempts to recover device communication.

    Throws
    DeviceNotAvailableException if device is not longer available

    remountSystemWritable

    public void remountSystemWritable ()

    Make the system 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

    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, 
                    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

    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

    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 IDevice

    Parameters
    newDevice IDevice : the IDevice

    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, etc

    Parameters
    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

    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

    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

    unencryptDevice

    public boolean unencryptDevice ()

    Unencrypts the device.

    Unencrypting the device may cause device to be wiped and may reboot device. This method will block until device is available and ready for testing. Requires fastboot inorder to wipe the userdata partition.

    Returns
    boolean true if successful.

    Throws
    DeviceNotAvailableException

    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

    unlockDevice

    public boolean unlockDevice ()

    Unlocks the device if the device is in an encrypted state.

    This method may restart the framework but will not call postBootSetup() . 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 void waitForDeviceAvailable ()

    Waits for the device to be responsive and available for testing. Uses default timeout.

    Throws
    DeviceNotAvailableException

    waitForDeviceAvailable

    public void waitForDeviceAvailable (long waitTime)

    Waits for the device to be responsive and available for testing.

    Parameters
    waitTime long : the time in ms to wait

    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

    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. Use waitForDeviceAvailable() 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. Use waitForDeviceAvailable() 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

    checkApiLevelAgainst

    protected void checkApiLevelAgainst (String feature, 
                    int strictMinLevel)

    Parameters
    feature String

    strictMinLevel int

    createRebootDeviceAction

    protected NativeDevice.RebootDeviceAction createRebootDeviceAction (String into)

    Create a RebootDeviceAction to be used when performing a reboot action.

    Parameters
    into String : the bootloader name to reboot into, or null to just reboot the device.

    Returns
    NativeDevice.RebootDeviceAction the created RebootDeviceAction .

    doAdbReboot

    protected void doAdbReboot (String into)

    Perform a adb reboot.

    Parameters
    into String : the bootloader name to reboot into, or null to just reboot the device.

    Throws
    DeviceNotAvailableException

    ensureRuntimePermissionSupported

    protected void ensureRuntimePermissionSupported ()

    helper method to throw exception if runtime permission isn't supported

    Throws
    DeviceNotAvailableException

    getBugreportInternal

    protected InputStreamSource getBugreportInternal ()

    Returns
    InputStreamSource

    getBugreportzInternal

    protected File getBugreportzInternal ()

    Internal Helper method to get the bugreportz zip file as a ERROR(/File) .

    Returns
    File

    getRunUtil

    protected IRunUtil getRunUtil ()

    Get the RunUtil instance to use.

    Returns
    IRunUtil

    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

    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

    performDeviceAction

    protected boolean performDeviceAction (String actionDescription, 
                    com.android.tradefed.device.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 com.android.tradefed.device.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
    DeviceNotAvailableException

    prePostBootSetup

    protected void prePostBootSetup ()

    Allows each device type (AndroidNativeDevice, TestDevice) to override this method for specific post boot setup.

    Throws
    DeviceNotAvailableException

    setClock

    protected void setClock (Clock clock)

    Set the Clock instance to use.

    Parameters
    clock Clock

    setLogStartDelay

    protected 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

    waitForDeviceNotAvailable

    protected void waitForDeviceNotAvailable (String operationDesc, 
                    long time)

    Parameters
    operationDesc String

    time long