本地设备

public class NativeDevice
extends Object implements IManagedTestDevice , IConfigurationReceiver , ITestLoggerReceiver

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


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

概括

嵌套类

class NativeDevice.AdbAction

运行操作系统“adb ....”命令的ERROR(DeviceAction/com.android.tradefed.device.NativeDevice.DeviceAction DeviceAction)

class NativeDevice.AdbShellAction

class NativeDevice.RebootDeviceAction

用于重启设备的ERROR(DeviceAction/com.android.tradefed.device.NativeDevice.DeviceAction DeviceAction)

常量

int INVALID_USER_ID

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

long MAX_HOST_DEVICE_TIME_OFFSET

int MAX_RETRY_ATTEMPTS

命令重试尝试执行的默认次数

字段

protected static final String SD_CARD

protected static final String STORAGE_EMULATED

protected TestDeviceOptions mOptions

protected final IDeviceStateMonitor mStateMonitor

公共构造函数

NativeDevice (IDevice device, IDeviceStateMonitor stateMonitor, IDeviceMonitor allocationMonitor)

创建一个TestDevice

公共方法

boolean canSwitchToHeadlessSystemUser ()

返回是否允许切换到无头 SYSTEM 用户。

boolean checkApiLevelAgainstNextRelease (int strictMinLevel)

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

boolean checkConnectivity ()

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

boolean clearErrorDialogs ()

尝试关闭当前显示在设备 UI 上的任何错误对话框。

void clearLastConnectedWifiNetwork ()

清除上次连接的 wifi 网络。

void clearLogcat ()

删除任何累积的 logcat 数据。

boolean connectToWifiNetwork ( wifiSsidToPsk, boolean scanSsid) connectToWifiNetwork ( wifiSsidToPsk, boolean scanSsid)

连接到 wifi 网络。

boolean connectToWifiNetwork (String wifiSsid, String wifiPsk)

连接到 wifi 网络。

boolean connectToWifiNetwork ( wifiSsidToPsk) connectToWifiNetwork ( wifiSsidToPsk)

连接到 wifi 网络。f

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, boolean guest, boolean ephemeral, boolean forTesting)

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

int createUser (String name)

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

int createUserNoThrow (String name)

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

void deleteFile (String deviceFilePath)

用于删除设备上的文件或目录的辅助方法。

void deregisterDeviceActionReceiver ( IDeviceActionReceiver deviceActionReceiver)

删除已注册的IDeviceActionReceiver

boolean deviceSoftRestarted ( ProcessInfo prevSystemServerProcess)

通过将当前 system_server 与之前的 system_server ProcessInfo进行比较来检查设备是否软重启的辅助方法。

boolean deviceSoftRestartedSince (long utcEpochTime, TimeUnit timeUnit)

检查设备是否从设备纪元以来的 UTC 时间及其ERROR(/TimeUnit)软重启的辅助方法。

boolean disableAdbRoot ()

关闭 adb root。

void disableKeyguard ()

尝试禁用键盘锁。

boolean disableNetworkMonitor ()

禁用设备上的网络监控。

boolean disconnectFromWifi ()

断开与 wifi 网络的连接。

boolean doesFileExist (String deviceFilePath, int userId)

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

boolean doesFileExist (String deviceFilePath)

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

File dumpHeap (String process, String devicePath)

尝试从 system_server 转储堆。

boolean enableAdbRoot ()

打开 adb root。

boolean enableNetworkMonitor ()

在设备上启用网络监控。

String executeAdbCommand (long timeout, String... cmdArgs)

将 adb 命令作为具有指定超时的系统命令执行的辅助方法。

String executeAdbCommand (long timeout, envMap, String... cmdArgs) executeAdbCommand (long timeout, envMap, String... cmdArgs)

将 adb 命令作为具有指定超时的系统命令执行的辅助方法。

String executeAdbCommand (String... cmdArgs)

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

CommandResult executeFastbootCommand (String... cmdArgs)

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

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

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

CommandResult executeLongFastbootCommand (String... cmdArgs)

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

CommandResult executeLongFastbootCommand ( envVarMap, String... cmdArgs) executeLongFastbootCommand ( envVarMap, String... cmdArgs)

将长时间运行的 fastboot 命令作为具有系统环境变量的系统命令执行的辅助方法。

String executeShellCommand (String command)

执行 adb shell 命令并将输出作为ERROR(/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)

执行 adb shell 命令并将结果作为CommandResult返回的辅助方法,其中正确填充了命令状态输出、stdout 和 stderr。

CommandResult executeShellV2Command (String cmd, OutputStream pipeToOutput)

执行 adb shell 命令并将结果作为CommandResult返回的帮助程序方法,其中正确填充了命令状态输出和 stderr。

CommandResult executeShellV2Command (String cmd, File pipeAsInput)

执行 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 executeShellV2Command (String cmd, File pipeAsInput, OutputStream pipeToOutput, OutputStream pipeToError, 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)

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

getAppPackageInfos ()

获取设备上安装的包的信息。

String getBasebandVersion ()

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

Integer getBattery ()

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

boolean getBooleanProperty (String name, boolean defaultValue)

返回给定属性的布尔值。

getBootHistory ()

Helper 方法收集带有启动时间和启动原因的启动历史映射。

getBootHistorySince (long utcEpochTime, TimeUnit timeUnit)

Helper 方法从设备的纪元以来的给定时间和指定的时间单位收集启动历史映射,其中包含启动时间和启动原因。

String getBootloaderVersion ()

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

InputStreamSource getBugreport ()

从设备中检索错误报告。

InputStreamSource getBugreportz ()

从设备中检索 bugreportz。

String getBuildAlias ()

检索设备当前运行的构建的别名。

String getBuildFlavor ()

检索设备的构建风格。

String getBuildId ()

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

String getBuildSigningKeys ()

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

通常,Android 设备可能使用测试密钥(如 AOSP)或发布密钥(由各个设备制造商控制)进行签名

DeviceDescriptor getCachedDeviceDescriptor ()

如果分配了设备,则返回缓存的DeviceDescriptor ,否则返回当前的DeviceDescriptor

DeviceDescriptor getCachedDeviceDescriptor (boolean shortDescriptor)

如果分配了设备,则返回缓存的DeviceDescriptor ,否则返回当前的DeviceDescriptor

String[] getChildren (String path)

使用IFileEntry的替代方法有时会因为权限问题而无法工作。

AbstractConnection getConnection ()

与设备关联的当前连接。

DeviceFoldableState getCurrentFoldableState ()

返回设备的当前可折叠状态,如果出现某些问题则返回 null。

int getCurrentUser ()

返回当前运行用户的 id。

String getDeviceClass ()

获取设备类。

long getDeviceDate ()

从纪元开始以毫秒为单位返回设备的日期。

DeviceDescriptor getDeviceDescriptor ()

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

DeviceDescriptor getDeviceDescriptor (boolean shortDescriptor)

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

TestDeviceState getDeviceState ()

获取设备的状态。

long getDeviceTimeOffset (Date date)

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

InputStreamSource getEmulatorOutput ()

获取模拟器stdout和stderr的流

Process getEmulatorProcess ()

返回与该模拟器对应的ERROR(/Process)

final File getExecuteShellCommandLog ()

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

long getExternalStoreFreeSpace ()

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

String getFastbootPath ()

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

String getFastbootProductType ()

在 fastboot 模式下获取此设备的产品类型的便捷方法。

String getFastbootProductVariant ()

在 fastboot 模式下获取此设备的产品类型的便捷方法。

String getFastbootSerialNumber ()

返回快速启动模式序列号。

String getFastbootVariable (String variableName)

从设备中检索给定的 fastboot 变量值。

String getFastbootVersion ()

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

IFileEntry getFileEntry (String path)

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

IFileEntry getFileEntry (FileListingService.FileEntry entry)

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

getFoldableStates ()

返回设备上的可折叠状态列表。

IDevice getIDevice ()

返回对关联的 ddmlib IDevice引用。

getInstalledPackageNames ()

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

long getIntProperty (String name, long defaultValue)

从设备返回给定属性的整数值。

String getIpAddress ()

获取设备的 IP 地址。

KeyguardControllerState getKeyguardState ()

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

long getLastExpectedRebootTimeMillis ()

返回自ERROR(/System#currentTimeMillis())返回的 EPOCH 以来 Tradefed API 上次触发重启的毫秒数。

int getLaunchApiLevel ()

获取设备首次启动的 API 级别。

InputStreamSource getLogcat ()

获取 logcat 数据的快照流。

InputStreamSource getLogcat (int maxBytes)

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

InputStreamSource getLogcatDump ()

获取设备当前 logcat 的转储。

InputStreamSource getLogcatSince (long date)

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

String getMacAddress ()

返回设备的MAC地址,如果向设备查询失败则返回null。

Integer getMainUserId ()

返回主用户 ID。

getMainlineModuleInfo ()

获取有关设备上安装的主线模块的信息。

int getMaxNumberOfRunningUsersSupported ()

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

int getMaxNumberOfUsersSupported ()

获取支持的最大用户数。

Process getMicrodroidProcess ()
IDeviceStateMonitor getMonitor ()

返回与设备关联的IDeviceStateMonitor

String getMountPoint (String mountName)

返回挂载点。

ITestDevice.MountPointInfo getMountPointInfo (String mountpoint)

返回对应于指定挂载点路径的MountPointInfo ,如果该路径没有挂载任何内容或不作为挂载点出现在 /proc/mounts 中,则返回null

getMountPointInfo ()

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

TestDeviceOptions getOptions ()

获取设备的测试选项。

long getPartitionFreeSpace (String partition)

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

Integer getPrimaryUserId ()

返回主用户 ID。

ProcessInfo getProcessByName (String processName)

Helper 方法运行“pidof”和“stat”命令并返回具有给定进程的 PID 和进程启动时间的ProcessInfo对象。

String getProcessPid (String process)

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

String getProductType ()

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

String getProductVariant ()

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

String getProperty (String name)

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

ITestDevice.RecoveryMode getRecoveryMode ()

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

InputStreamSource getScreenshot (String format)

从设备抓取屏幕截图。

InputStreamSource getScreenshot (long displayId)

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

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

获取是否使用 fastboot erase 或 fastboot format 擦除设备上的分区。

int getUserFlags (int userId)

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

getUserInfos ()

获取设备上useId到UserInfo的Map。

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

检查设备上的平台是否支持应用枚举

boolean isBypassLowTargetSdkBlockSupported ()

检查设备上的平台是否支持在应用安装时绕过低目标 sdk 块

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

返回设备是否使用无头系统用户模式。

boolean isMainUserPermanentAdmin ()

返回主用户是否是永久管理员并且不能被删除或降级为非管理员状态。

boolean isMultiUserSupported ()

确定是否支持多用户。

boolean isPackageInstalled (String packageName, String userId)

查询设备以获取给定的包名称和给定的用户 ID,以检查当前是否为该用户安装了它。

boolean isPackageInstalled (String packageName)

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

boolean isRuntimePermissionSupported ()

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

boolean isStateBootloaderOrFastbootd ()

如果设备处于TestDeviceState#FASTBOOTTestDeviceState.FASTBOOTD中,则返回 true。

boolean isUserRunning (int userId)

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

boolean isUserSecondary (int userId)

根据其标志返回指定用户是否为二级用户。

boolean isUserVisible (int userId)

检查给定用户是否可见。

boolean isUserVisibleOnDisplay (int userId, int displayId)

检查给定用户是否在给定显示中可见。

boolean isVisibleBackgroundUsersOnDefaultDisplaySupported ()

ERROR(/java.android.view.Display#DEFAULT_DISPLAY)中返回设备是否允许用户在后台可见。

boolean isVisibleBackgroundUsersSupported ()

返回设备是否允许用户在后台可见启动。

boolean isWifiEnabled ()

测试wifi是否开启。

listDisplayIds ()

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

listDisplayIdsForStartingVisibleBackgroundUsers ()

获取可用于start a user visible in the background的显示列表。

listUsers ()

获取设备上的用户列表。

boolean logAnrs ( ITestLogger logger)

从设备收集和记录 ANR。

boolean logBugreport (String dataName, ITestLogger listener)

获取错误报告并将其记录给记者的帮助方法。

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

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

void nonBlockingReboot ()

发出命令以重新启动设备并在命令完成时返回,当设备不再对 adb 可见时。

void postAdbRootAction ()

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

void postAdbUnrootAction ()

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

void postBootSetup ()

执行说明以配置设备以在每次启动后进行测试。

void postInvocationTearDown (Throwable exception)

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

void preInvocationSetup ( IBuildInfo info, MultiMap <String, String> attributes)

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

boolean pullDir (String deviceFilePath, File localDir)

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

boolean pullFile (String remoteFilePath, File localFile)

从设备中检索文件。

File pullFile (String remoteFilePath, int userId)

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

File pullFile (String remoteFilePath)

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

boolean pullFile (String remoteFilePath, File localFile, int userId)

从设备中检索文件。

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

pushFile(File, String)的变体,可以选择考虑评估对内容提供者的需求。

boolean pushFile (File localFile, String remoteFilePath)

将文件推送到设备。

boolean pushString (String contents, String remoteFilePath)

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

void reboot (String reason)

将设备重新启动到 adb 模式,并给出在重新启动后保持不变的reason

void reboot ()

将设备重新启动到 adb 模式。

void rebootIntoBootloader ()

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

void rebootIntoFastbootd ()

将设备重新启动到 fastbootd 模式。

void rebootIntoRecovery ()

将设备重新启动到 adb 恢复模式。

void rebootIntoSideload ()

将设备重新启动到 adb sideload 模式(请注意,这是 recovery 下的一种特殊模式)

阻塞直到设备进入侧载模式

void rebootIntoSideload (boolean autoReboot)

将设备重新启动到 adb sideload 模式(请注意,这是 recovery 下的一种特殊模式)

阻塞直到设备进入侧载模式

void rebootUntilOnline ()

reboot()的替代方法,它只会阻塞直到设备在线,即对 adb 可见。

void rebootUntilOnline (String reason)

reboot()的替代方法,它只会阻塞直到设备在线,即对 adb 可见。

void rebootUserspace ()

仅重启设备的用户空间部分。

void rebootUserspaceUntilOnline ()

rebootUserspace() ()} 的替代方法,它只会阻塞直到设备在线,即对 adb 可见。

boolean recoverDevice ()

尝试恢复设备通信。

void registerDeviceActionReceiver ( IDeviceActionReceiver deviceActionReceiver)

为此设备注册一个IDeviceActionReceiver

void remountSystemWritable ()

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

void remountVendorWritable ()

使设备上的供应商分区可写。

boolean removeAdmin (String componentName, int userId)

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

void removeOwners ()

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

boolean removeUser (int userId)

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

void resetContentProviderSetup ()

重置内容提供商设置的标志以再次触发它。

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, 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))但运行测试对于给定的用户。

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

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

void setConfiguration ( IConfiguration configuration)

注入正在使用的IConfiguration

void setDate (Date date)

在设备上设置日期

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

boolean setDeviceOwner (String componentName, int userId)

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

void setDeviceState ( TestDeviceState deviceState)

更新设备的状态。

void setEmulatorOutputStream ( SizeLimitedOutputStream output)

对于模拟器,将SizeLimitedOutputStream设置为日志输出

void setEmulatorProcess (Process p)

当此设备是模拟器时,设置ERROR(/Process)

void setFastbootEnabled (boolean fastbootEnabled)

为设备设置 fastboot 选项。

void setFastbootPath (String fastbootPath)

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

void setIDevice (IDevice newDevice)

更新与此 ITestDevice 关联的 IDevice。

void setLogStartDelay (int delay)

以毫秒为单位设置在开始在线设备的 logcat 捕获之前等待的时间。

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 setTestLogger ( ITestLogger testLogger)

注入ITestLogger实例

void setUseFastbootErase (boolean useFastbootErase)

设置是否使用 fastboot erase 或 fastboot format 擦除设备上的分区。

void startLogcat ()

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

boolean startUser (int userId)

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

boolean startUser (int userId, boolean waitFlag)

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

boolean startVisibleBackgroundUser (int userId, int displayId, 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 ()

将设备切换到 adb over usb 模式。

boolean switchUser (int userId)

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

boolean switchUser (int userId, long timeout)

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

boolean syncFiles (File localFileDir, String deviceFilePath)

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

Bugreport takeBugreport ()

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

String uninstallPackage (String packageName)

从设备卸载 Android 包。

String uninstallPackageForUser (String packageName, int userId)

从给定用户的设备中卸载 Android 包。

boolean unlockDevice ()

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

boolean waitForBootComplete (long timeOut)

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

boolean waitForDeviceAvailable ()

等待设备响应并可用于测试。

boolean waitForDeviceAvailable (long waitTime)

等待设备响应并可用于测试。

boolean waitForDeviceAvailableInRecoverPath (long waitTime)

等待设备响应并可用,而不考虑恢复路径。

void waitForDeviceBootloader ()

阻塞直到设备通过快速启动可见。

boolean waitForDeviceInRecovery (long waitTime)

设备处于“adb recovery”状态的块(注意这与IDeviceRecovery不同)。

boolean waitForDeviceInSideload (long waitTime)

设备处于“adb sideload”状态的块

boolean waitForDeviceNotAvailable (long waitTime)

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

void waitForDeviceOnline ()

阻塞直到设备通过 adb 可见。

void waitForDeviceOnline (long waitTime)

阻塞直到设备通过 adb 可见。

boolean waitForDeviceShell (long waitTime)

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

受保护的方法

String[] buildAdbShellCommand (String command, boolean forceExitStatusDetection)

为给定的 adb shell 命令会话和 args 构建操作系统命令

void checkApiLevelAgainst (String feature, int strictMinLevel)
NativeDevice.RebootDeviceAction createRebootDeviceAction ( NativeDevice.RebootMode rebootMode, String reason)

创建要在执行重启操作时使用的RebootDeviceAction

IRunUtil createRunUtil ()
void doAdbReboot ( NativeDevice.RebootMode rebootMode, String reason)

执行 adb 重启。

void ensureRuntimePermissionSupported ()

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

int getApiLevelSafe ()
ITestLogger getLogger ()
IRunUtil getRunUtil ()

获取要使用的RunUtil实例。

void initializeConnection ( IBuildInfo info, MultiMap <String, String> attributes)
String internalGetProperty (String propName, String fastbootVar, String description)

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

boolean isInRebootCallback ()

返回当前是否正在执行重启回调。

boolean isNewer (File localFile, IFileEntry entry)

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

void notifyRebootEnded ()

通知所有IDeviceActionReceiver关于重启结束事件。

void notifyRebootStarted ()

通知所有IDeviceActionReceiver关于重启开始事件。

boolean performDeviceAction (String actionDescription, NativeDevice.DeviceAction action, int retryAttempts)

在此设备上执行操作。

void postAdbReboot ()

重启后可能执行的额外操作。

void prePostBootSetup ()

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

boolean pullFileInternal (String remoteFilePath, File localFile)
void setClock (Clock clock)

设置要使用的时钟实例。

void setMicrodroidProcess (Process process)

将 TestDevice 标记为微型机器人并设置其 CID。

void setTestDeviceOptions ( deviceOptions) setTestDeviceOptions ( deviceOptions)
CommandResult simpleFastbootCommand (long timeout, envVarMap, String[] fullCmd) simpleFastbootCommand (long timeout, envVarMap, String[] fullCmd)

使用环境变量执行简单的 fastboot 命令并报告命令的状态。

CommandResult simpleFastbootCommand (long timeout, String[] fullCmd)

执行一个简单的 fastboot 命令并报告命令的状态。

boolean waitForDeviceNotAvailable (String operationDesc, long time)

等待设备不可用(停止向 adb 报告)。

常量

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)

字段

SD卡

protected static final String SD_CARD

STORAGE_EMULATED

protected static final String STORAGE_EMULATED

选项

protected TestDeviceOptions mOptions

状态监视器

protected final IDeviceStateMonitor mStateMonitor

公共构造函数

本地设备

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

创建一个TestDevice

参数
device IDevice :关联的IDevice

stateMonitor IDeviceStateMonitor :要使用的IDeviceStateMonitor机制

allocationMonitor IDeviceMonitor :通知分配状态更改的IDeviceMonitor 。可以为空

公共方法

可以切换到无头系统用户

public boolean canSwitchToHeadlessSystemUser ()

返回是否允许切换到无头 SYSTEM 用户。

退货
boolean

投掷
DeviceNotAvailableException

检查 ApiLevelAgainstNextRelease

public boolean checkApiLevelAgainstNextRelease (int strictMinLevel)

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

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

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

投掷
DeviceNotAvailableException

检查连通性

public boolean checkConnectivity ()

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

退货
boolean如果设备具有有效的网络连接, true ,否则为false

投掷
DeviceNotAvailableException

清除错误对话框

public boolean clearErrorDialogs ()

尝试关闭当前显示在设备 UI 上的任何错误对话框。

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

投掷
DeviceNotAvailableException

清除上次连接的 Wifi 网络

public void clearLastConnectedWifiNetwork ()

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

清除日志猫

public void clearLogcat ()

删除任何累积的 logcat 数据。

这对于您想要确保ITestDevice#getLogcat()仅返回在特定点之后生成的日志数据(例如在刷新新设备构建之后等)的情况很有用。

连接到 Wifi 网络

public boolean connectToWifiNetwork ( wifiSsidToPsk, 
                boolean scanSsid)

连接到 wifi 网络。

打开 wifi 并阻止,直到与 wifiSsidToPsk 地图中给出的 wifi 网络之一建立成功连接。建立连接后,实例将在每次重新启动后尝试恢复连接,直到调用ITestDevice#disconnectFromWifi()ITestDevice#clearLastConnectedWifiNetwork()为止。

参数
wifiSsidToPsk :wifi SSID 到密码的映射。

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

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

投掷
DeviceNotAvailableException

连接到 Wifi 网络

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

连接到 Wifi 网络

public boolean connectToWifiNetwork ( wifiSsidToPsk)

连接到 wifi 网络。

打开 wifi 并阻止,直到与 wifiSsidToPsk 地图中给出的 wifi 网络之一建立成功连接。建立连接后,实例将在每次重启后尝试恢复连接,直到ITestDevice#disconnectFromWifi()ITestDevice#clearLastConnectedWifiNetwork()被调用。f

参数
wifiSsidToPsk :wifi SSID 到密码的映射。

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

投掷
DeviceNotAvailableException

连接到 Wifi 网络

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

connectToWifiNetworkIfNeeded

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

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

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

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

投掷
DeviceNotAvailableException

connectToWifiNetworkIfNeeded

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 : 要在设备上创建的用户

guest boolean :在创建期间启用用户标志 --guest

ephemeral boolean :在创建期间启用用户标志 --ephemeral

退货
int创建的用户id

投掷
DeviceNotAvailableException

创建用户

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

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

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

guest boolean :在创建期间启用用户标志 --guest

ephemeral boolean :在创建期间启用用户标志 --ephemeral

forTesting boolean :在创建期间启用测试标志 --for-testing

退货
int创建的用户id

投掷
DeviceNotAvailableException

创建用户

public int createUser (String name)

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

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

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

投掷
DeviceNotAvailableException

createUserNoThrow

public int createUserNoThrow (String name)

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

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

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

投掷
DeviceNotAvailableException

删除文件

public void deleteFile (String deviceFilePath)

用于删除设备上的文件或目录的辅助方法。

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

投掷
DeviceNotAvailableException

注销DeviceActionReceiver

public void deregisterDeviceActionReceiver (IDeviceActionReceiver deviceActionReceiver)

删除已注册的IDeviceActionReceiver

参数
deviceActionReceiver IDeviceActionReceiver :将被删除的IDeviceActionReceiver

设备软重启

public boolean deviceSoftRestarted (ProcessInfo prevSystemServerProcess)

通过将当前 system_server 与之前的 system_server ProcessInfo进行比较来检查设备是否软重启的辅助方法。使用getProcessByName(String)获取ProcessInfo

参数
prevSystemServerProcess ProcessInfo :之前的system_server进程ProcessInfo

退货
boolean如果设备软重启则为true

投掷
DeviceNotAvailableException

deviceSoftRestartedSince

public boolean deviceSoftRestartedSince (long utcEpochTime, 
                TimeUnit timeUnit)

检查设备是否从设备纪元以来的 UTC 时间及其ERROR(/TimeUnit)软重启的辅助方法。软重启是指 system_server 在设备硬重启之外重启(例如:请求重启)。可以通过方法getDeviceDate()获取以毫秒为单位的当前设备 utcEpochTime。

参数
utcEpochTime long :自纪元以来以秒为单位的设备时间。

timeUnit TimeUnit :给定 utcEpochTime 的时间单位TimeUnit

退货
boolean如果设备软重启则为true

投掷
DeviceNotAvailableException

禁用 AdbRoot

public boolean disableAdbRoot ()

关闭 adb root。

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

退货
boolean如果成功则为true

投掷
DeviceNotAvailableException

禁用键盘锁

public void disableKeyguard ()

尝试禁用键盘锁。

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

投掷
DeviceNotAvailableException

禁用网络监视器

public boolean disableNetworkMonitor ()

禁用设备上的网络监控。

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

投掷
DeviceNotAvailableException

断开与 Wifi 的连接

public boolean disconnectFromWifi ()

断开与 wifi 网络的连接。

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

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

投掷
DeviceNotAvailableException

文件是否存在

public boolean doesFileExist (String deviceFilePath, 
                int userId)

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

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

userId int :用于检查文件是否存在的用户 ID

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

投掷
DeviceNotAvailableException

文件是否存在

public boolean doesFileExist (String deviceFilePath)

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

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

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

投掷
DeviceNotAvailableException

转储堆

public File dumpHeap (String process, 
                String devicePath)

尝试从 system_server 转储堆。清理转储文件是调用者的责任。

参数
process String :要转储到的设备进程的名称。

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

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

投掷
DeviceNotAvailableException

启用 AdbRoot

public boolean enableAdbRoot ()

打开 adb root。如果“enable-root”设置为“false”,将记录一条消息并在不启用 root 的情况下返回。

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

退货
boolean如果成功则为true

投掷
DeviceNotAvailableException

启用网络监控器

public boolean enableNetworkMonitor ()

在设备上启用网络监控。

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

投掷
DeviceNotAvailableException

执行 Adb 命令

public String executeAdbCommand (long timeout, 
                String... cmdArgs)

将 adb 命令作为具有指定超时的系统命令执行的辅助方法。

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

参数
timeout long :设备被认为无响应之前的时间(以毫秒为单位),0L 表示没有超时

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

退货
String来自命令的标准输出。如果命令执行失败则为null

投掷
DeviceNotAvailableException

执行 Adb 命令

public String executeAdbCommand (long timeout, 
                 envMap, 
                String... cmdArgs)

将 adb 命令作为具有指定超时的系统命令执行的辅助方法。

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

参数
timeout long :设备被认为无响应之前的时间(以毫秒为单位),0L 表示没有超时

envMap :为命令设置的环境

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

退货
String来自命令的标准输出。如果命令执行失败则为null

投掷
DeviceNotAvailableException

执行 Adb 命令

public String executeAdbCommand (String... cmdArgs)

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

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

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

退货
String来自命令的标准输出。如果命令执行失败则为null

投掷
DeviceNotAvailableException

执行Fastboot命令

public CommandResult executeFastbootCommand (String... cmdArgs)

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

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

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

退货
CommandResult包含命令输出的 CommandResult

投掷
DeviceNotAvailableException

执行Fastboot命令

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

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

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

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

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

退货
CommandResult包含命令输出的 CommandResult

投掷
DeviceNotAvailableException

executeLongFastbootCommand

public CommandResult executeLongFastbootCommand (String... cmdArgs)

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

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

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

退货
CommandResult包含命令输出的 CommandResult

投掷
DeviceNotAvailableException

executeLongFastbootCommand

public CommandResult executeLongFastbootCommand ( envVarMap, 
                String... cmdArgs)

将长时间运行的 fastboot 命令作为具有系统环境变量的系统命令执行的辅助方法。

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

参数
envVarMap : fastboot命令运行的系统环境变量

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

退货
CommandResult包含命令输出的 CommandResult

投掷
DeviceNotAvailableException

执行Shell命令

public String executeShellCommand (String command)

执行 adb shell 命令并将输出作为ERROR(/String)返回的帮助程序方法。

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

退货
String外壳输出

投掷
DeviceNotAvailableException

执行Shell命令

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

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

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

receiver IShellOutputReceiver :将 shell 输出定向到的IShellOutputReceiver

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.

投掷
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.

参数
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.

投掷
DeviceNotAvailableException

executeShellCommand

public void executeShellCommand (String command, 
                IShellOutputReceiver receiver)

Executes the given adb shell command, retrying multiple times if command fails.

A simpler form of executeShellCommand(String, com.android.ddmlib.IShellOutputReceiver, long, TimeUnit, int) with default values.

参数
command String : the adb shell command to run

receiver IShellOutputReceiver : the IShellOutputReceiver to direct shell output to.

投掷
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.

参数
cmd String : The command that should be run.

退货
CommandResult The result in CommandResult .

投掷
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.

参数
cmd String : The command that should be run.

pipeToOutput OutputStream : ERROR(/OutputStream) where the std output will be redirected, or null.

退货
CommandResult The result in CommandResult .

投掷
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.

参数
cmd String : The command that should be run.

pipeAsInput File : A ERROR(/File) that will be piped as input to the command, or null.

退货
CommandResult The result in CommandResult .

投掷
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.

参数
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.

退货
CommandResult

投掷
DeviceNotAvailableException

executeShellV2Command

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

Executes a adb shell command, with more parameters to control command behavior.

参数
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

退货
CommandResult

投掷
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.

参数
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.

退货
CommandResult

投掷
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.

参数
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.

退货
CommandResult

投掷
DeviceNotAvailableException

fastbootWipePartition

public CommandResult fastbootWipePartition (String partition)

Helper method which wipes a partition for the device.

If getUseFastbootErase() 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.

参数
partition String : the partition to wipe

退货
CommandResult the CommandResult containing output of command

投掷
DeviceNotAvailableException

getActiveApexes

public  getActiveApexes ()

Fetch the information about APEXes activated on the device.

退货
ERROR(/Set) of ApexInfo currently activated on the device

投掷
DeviceNotAvailableException

getAllSettings

public  getAllSettings (String namespace)

Return key value pairs of requested namespace.

参数
namespace String : must be one of {"system", "secure", "global"}

退货
the map of key value pairs. Null if namespace is not supported.

投掷
DeviceNotAvailableException

getAllocationState

public DeviceAllocationState getAllocationState ()

Return the current allocation state of device

退货
DeviceAllocationState

getAndroidId

public String getAndroidId (int userId)

Find and return the android-id associated to a userId, null if not found.

参数
userId int

退货
String

投掷
DeviceNotAvailableException

getAndroidIds

public  getAndroidIds ()

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.

退货
Map of android ids found matching user ids.

投掷
DeviceNotAvailableException

getApiLevel

public int getApiLevel ()

Get the device API Level. Defaults to UNKNOWN_API_LEVEL .

退货
int an integer indicating the API Level of device

投掷
DeviceNotAvailableException

getAppPackageInfo

public PackageInfo getAppPackageInfo (String packageName)

Fetch information about a package installed on device.

参数
packageName String

退货
PackageInfo the PackageInfo or null if information could not be retrieved

投掷
DeviceNotAvailableException

getAppPackageInfos

public  getAppPackageInfos ()

Fetch information of packages installed on the device.

退货
ERROR(/List) of PackageInfo s installed on the device.

投掷
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 .

退货
String the ERROR(/String) baseband version or null if it cannot be determined (device has no radio or version string cannot be read)

投掷
DeviceNotAvailableException

getBattery

public Integer getBattery ()

Returns the current battery level of a device or Null if battery level unavailable.

退货
Integer

getBooleanProperty

public boolean getBooleanProperty (String name, 
                boolean defaultValue)

Returns boolean value of the given property.

参数
name String : the property name

defaultValue boolean : default value to return if property is empty or doesn't exist.

退货
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.

投掷
DeviceNotAvailableException

getBootHistory

public  getBootHistory ()

Helper method collects the boot history map with boot time and boot reason.

退货
Map of boot time (UTC time in second since Epoch) and boot reason

投掷
DeviceNotAvailableException

getBootHistorySince

public  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. The current device utcEpochTime in Millisecond can be obtained by method getDeviceDate() .

参数
utcEpochTime long : the device time since Epoch.

timeUnit TimeUnit : the time unit TimeUnit .

退货
Map of boot time (UTC time in second since Epoch) and boot reason

投掷
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)

退货
String the ERROR(/String) bootloader version or null if it cannot be found

投掷
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).

退货
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

退货
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

退货
String the build alias or fall back to build id if it could not be retrieved

投掷
DeviceNotAvailableException

getBuildFlavor

public String getBuildFlavor ()

Retrieve the build flavor for the device.

退货
String the build flavor or null if it could not be retrieved

投掷
DeviceNotAvailableException

getBuildId

public String getBuildId ()

Retrieve the build the device is currently running.

退货
String the build id or IBuildInfo#UNKNOWN_BUILD_ID if it could not be retrieved

投掷
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)

退货
String The signing key if found, null otherwise.

投掷
DeviceNotAvailableException

getCachedDeviceDescriptor

public DeviceDescriptor getCachedDeviceDescriptor ()

Returns a cached DeviceDescriptor if the device is allocated, otherwise returns the current DeviceDescriptor .

退货
DeviceDescriptor

getCachedDeviceDescriptor

public DeviceDescriptor getCachedDeviceDescriptor (boolean shortDescriptor)

Returns a cached DeviceDescriptor if the device is allocated, otherwise returns the current DeviceDescriptor .

参数
shortDescriptor boolean : Whether or not to limit descriptor to bare minimum info

退货
DeviceDescriptor

getChildren

public String[] getChildren (String path)

Alternative to using IFileEntry that sometimes won't work because of permissions.

参数
path String : is the path on the device where to do the search

退货
String[] Array of string containing all the file in a path on the device.

投掷
DeviceNotAvailableException

getConnection

public AbstractConnection getConnection ()

The current connection associated with the device.

退货
AbstractConnection

getCurrentFoldableState

public DeviceFoldableState getCurrentFoldableState ()

Returns the current foldable state of the device or null if some issues occurred.

退货
DeviceFoldableState

投掷
DeviceNotAvailableException

getCurrentUser

public int getCurrentUser ()

Return the id of the current running user. In case of error, return -10000.

退货
int

投掷
DeviceNotAvailableException

getDeviceClass

public String getDeviceClass ()

Get the device class.

退货
String the ERROR(/String) device class.

getDeviceDate

public long getDeviceDate ()

Return the date of the device in millisecond since epoch.

退货
long the date of the device in epoch format.

投掷
DeviceNotAvailableException

getDeviceDescriptor

public DeviceDescriptor getDeviceDescriptor ()

Return a DeviceDescriptor from the device information to get info on it without passing the actual device object.

退货
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.

参数
shortDescriptor boolean : Whether or not to limit descriptor to bare minimum info

退货
DeviceDescriptor

getDeviceState

public TestDeviceState getDeviceState ()

Get the device's state.

退货
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.

参数
date Date

退货
long the difference in milliseconds

投掷
DeviceNotAvailableException

getEmulatorOutput

public InputStreamSource getEmulatorOutput ()

Get the stream of emulator stdout and stderr

退货
InputStreamSource emulator output

getEmulatorProcess

public Process getEmulatorProcess ()

Return the ERROR(/Process) corresponding to this emulator.

退货
Process the ERROR(/Process) or null

getExecuteShellCommandLog

public final File getExecuteShellCommandLog ()

The log that contains all the executeShellCommand(String) logs.

退货
File

getExternalStoreFreeSpace

public long getExternalStoreFreeSpace ()

Helper method to determine amount of free space on device external storage.

退货
long the amount of free space in KB

投掷
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.

退货
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.

退货
String the ERROR(/String) product type name or null if it cannot be determined

投掷
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.

退货
String the ERROR(/String) product type name or null if it cannot be determined

投掷
DeviceNotAvailableException

getFastbootSerialNumber

public String getFastbootSerialNumber ()

Returns the fastboot mode serial number.

退货
String

getFastbootVariable

public String getFastbootVariable (String variableName)

Retrieve the given fastboot variable value from the device.

参数
variableName String : the variable name

退货
String the property value or null if it does not exist

投掷
DeviceNotAvailableException

getFastbootVersion

public String getFastbootVersion ()

Returns the version string of the fastboot binary being used. Or null if something goes wrong.

退货
String

getFileEntry

public IFileEntry getFileEntry (String path)

Retrieve a reference to a remote file on device.

参数
path String : the file path to retrieve. Can be an absolute path or path relative to '/'. (ie both "/system" and "system" syntax is supported)

退货
IFileEntry the IFileEntry or null if file at given path cannot be found

投掷
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).

参数
entry FileListingService.FileEntry : a FileEntry not necessarily root as Ddmlib requires.

退货
IFileEntry a FileEntryWrapper representing the FileEntry.

投掷
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

getFoldableStates

public  getFoldableStates ()

Returns the list of foldable states on the device. Can be obtained with "cmd device_state print-states".

退货

投掷
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.

退货
IDevice the IDevice

getInstalledPackageNames

public  getInstalledPackageNames ()

Fetch the application package names present on the device.

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

投掷
DeviceNotAvailableException

getIntProperty

public long getIntProperty (String name, 
                long defaultValue)

Returns integer value of the given property from the device.

参数
name String : the property name

defaultValue long : default value to return if property is empty or doesn't exist.

退货
long the property value or defaultValue if the property is empty, doesn't exist, or doesn't have an integer value.

投掷
DeviceNotAvailableException

getIpAddress

public String getIpAddress ()

Gets the device's IP address.

退货
String the device's IP address, or null if device has no IP address

投掷
DeviceNotAvailableException

getKeyguardState

public KeyguardControllerState getKeyguardState ()

Return an object to get the current state of the keyguard or null if not supported.

退货
KeyguardControllerState a KeyguardControllerState containing a snapshot of the state of the keyguard and returns Null if the Keyguard query is not supported.

投掷
DeviceNotAvailableException

getLastExpectedRebootTimeMillis

public long getLastExpectedRebootTimeMillis ()

Returns the last time Tradefed APIs triggered a reboot in milliseconds since EPOCH as returned by ERROR(/System#currentTimeMillis()) .

退货
long

getLaunchApiLevel

public int getLaunchApiLevel ()

Get the device's first launched API Level. Defaults to UNKNOWN_API_LEVEL .

退货
int an integer indicating the first launched API Level of device

投掷
DeviceNotAvailableException

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

    退货
    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.

    参数
    maxBytes int : the maximum amount of data to return. Should be an amount that can comfortably fit in memory

    退货
    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.

    退货
    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() .

    参数
    date long : in millisecond since epoch format of when to start the snapshot until present. (can be be obtained using 'date +%s')

    退货
    InputStreamSource

    getMacAddress

    public String getMacAddress ()

    Returns the MAC address of the device, null if it fails to query from the device.

    退货
    String

    getMainUserId

    public Integer getMainUserId ()

    Returns the main user id.

    退货
    Integer the userId of the main user if there is one, and null if there is no main user.

    投掷
    DeviceNotAvailableException

    getMainlineModuleInfo

    public  getMainlineModuleInfo ()

    Get the information about the mainline modules installed on the device.

    退货
    ERROR(/Set) of ERROR(/String) mainline modules currently installed on the device.

    投掷
    DeviceNotAvailableException

    getMaxNumberOfRunningUsersSupported

    public int getMaxNumberOfRunningUsersSupported ()

    Get the maximum number of supported simultaneously running users. Defaults to 0.

    退货
    int an integer indicating the number of simultaneously running users

    投掷
    DeviceNotAvailableException

    getMaxNumberOfUsersSupported

    public int getMaxNumberOfUsersSupported ()

    Get the maximum number of supported users. Defaults to 0.

    退货
    int an integer indicating the number of supported users

    投掷
    DeviceNotAvailableException

    getMicrodroidProcess

    public Process getMicrodroidProcess ()

    退货
    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.

    退货
    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)

    参数
    mountName String : the name of the mount point

    退货
    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.

    参数
    mountpoint String

    退货
    ITestDevice.MountPointInfo A ERROR(/List) of MountPointInfo containing the information in "/proc/mounts"

    投掷
    DeviceNotAvailableException

    getMountPointInfo

    public  getMountPointInfo ()

    Returns a parsed version of the information in /proc/mounts on the device

    退货
    A ERROR(/List) of MountPointInfo containing the information in "/proc/mounts"

    投掷
    DeviceNotAvailableException

    getOptions

    public TestDeviceOptions getOptions ()

    Fetch the test options for the device.

    退货
    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.

    参数
    partition String

    退货
    long the amount of free space in KB

    投掷
    DeviceNotAvailableException

    getPrimaryUserId

    public Integer getPrimaryUserId ()

    Returns the primary user id.

    退货
    Integer the userId of the primary user if there is one, and null if there is no primary user.

    投掷
    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.

    参数
    processName String : the proces name String.

    退货
    ProcessInfo ProcessInfo of given processName

    投掷
    DeviceNotAvailableException

    getProcessPid

    public String getProcessPid (String process)

    Returns the pid of the service or null if something went wrong.

    参数
    process String : The proces name String.

    退货
    String

    投掷
    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.

    退货
    String the ERROR(/String) product type name. Will not be null

    投掷
    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.

    退货
    String the ERROR(/String) product variant name or null if it cannot be determined

    投掷
    DeviceNotAvailableException

    getProperty

    public String getProperty (String name)

    Retrieve the given property value from the device.

    参数
    name String : the property name

    退货
    String the property value or null if it does not exist

    投掷
    DeviceNotAvailableException

    getRecoveryMode

    public ITestDevice.RecoveryMode getRecoveryMode ()

    Get the current recovery mode used for the device.

    退货
    ITestDevice.RecoveryMode the current recovery mode used for the device.

    getScreenshot

    public InputStreamSource getScreenshot (String format)

    Grabs a screenshot from the device. Recommended to use getScreenshot(format) instead with JPEG encoding for smaller size

    参数
    format String : supported PNG, JPEG

    退货
    InputStreamSource a InputStreamSource of the screenshot in format, or null if the screenshot was not successful.

    投掷
    DeviceNotAvailableException

    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'

    参数
    displayId long : the display id of the screen to get screenshot from.

    退货
    InputStreamSource a InputStreamSource of the screenshot in format, or null if the screenshot was not successful.

    投掷
    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.

    参数
    format String : supported PNG, JPEG

    rescale boolean : if screenshot should be rescaled to reduce the size of resulting image

    退货
    InputStreamSource a InputStreamSource of the screenshot in format, or null if the screenshot was not successful.

    投掷
    DeviceNotAvailableException

    getScreenshot

    public InputStreamSource getScreenshot ()

    Grabs a screenshot from the device.

    退货
    InputStreamSource a InputStreamSource of the screenshot in png format, or null if the screenshot was not successful.

    投掷
    DeviceNotAvailableException

    getSerialNumber

    public String getSerialNumber ()

    Convenience method to get serial number of this device.

    退货
    String the ERROR(/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"}

    参数
    userId int

    namespace String

    key String

    退货
    String the value associated with the namespace:key of a user. Null if not found.

    投掷
    DeviceNotAvailableException

    getSetting

    public String getSetting (String namespace, 
                    String key)

    See getSetting(int, String, String) and performed on system user.

    参数
    namespace String

    key String

    退货
    String

    投掷
    DeviceNotAvailableException

    getSimOperator

    public String getSimOperator ()

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

    退货
    String

    getSimState

    public String getSimState ()

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

    退货
    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.

    退货
    A list of tombstone files, empty if no tombstone.

    投掷
    DeviceNotAvailableException

    getTotalMemory

    public long getTotalMemory ()

    Returns total physical memory size in bytes or -1 in case of internal error

    退货
    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.

    退货
    ERROR(/Set) of uninstallable ERROR(/String) package names currently installed on the device.

    投掷
    DeviceNotAvailableException

    getUseFastbootErase

    public boolean getUseFastbootErase ()

    Get whether to use fastboot erase or fastboot format to wipe a partition on the device.

    退货
    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.

    参数
    userId int

    退货
    int the flags associated with the userId provided if found, -10000 in any other cases.

    投掷
    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.

    退货
    the list of UserInfo objects.

    投掷
    DeviceNotAvailableException

    getUserSerialNumber

    public int getUserSerialNumber (int userId)

    Return the serial number associated to the userId if found, -10000 in any other cases.

    参数
    userId int

    退货
    int

    投掷
    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.

    参数
    event DeviceEvent

    退货
    IManagedTestDevice.DeviceEventResponse

    hasFeature

    public boolean hasFeature (String feature)

    Check if a feature is available on a device.

    参数
    feature String : which format should be "feature: " or " " directly.

    退货
    boolean True if feature is found, false otherwise.

    投掷
    DeviceNotAvailableException

    installPackage

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

    Install an Android package on device.

    参数
    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.

    退货
    String a ERROR(/String) with an error code, or null if success.

    投掷
    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.

    参数
    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.

    退货
    String a ERROR(/String) with an error code, or null if success.

    投掷
    DeviceNotAvailableException

    installPackageForUser

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

    Install an Android package on device for a given user.

    参数
    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.

    退货
    String a ERROR(/String) with an error code, or null if success.

    投掷
    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.

    参数
    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.

    退货
    String a ERROR(/String) with an error code, or null if success.

    投掷
    DeviceNotAvailableException

    isAdbRoot

    public boolean isAdbRoot ()

    退货
    boolean

    投掷
    DeviceNotAvailableException

    isAdbTcp

    public boolean isAdbTcp ()

    退货
    boolean

    isAppEnumerationSupported

    public boolean isAppEnumerationSupported ()

    Check whether platform on device supports app enumeration

    退货
    boolean True if app enumeration is supported, false otherwise

    投掷
    DeviceNotAvailableException

    isBypassLowTargetSdkBlockSupported

    public boolean isBypassLowTargetSdkBlockSupported ()

    Check whether platform on device supports bypassing low target sdk block on app installs

    退货
    boolean True if bypass low target sdk block is supported, false otherwise

    投掷
    DeviceNotAvailableException

    isDeviceEncrypted

    public boolean isDeviceEncrypted ()

    Returns if the device is encrypted.

    退货
    boolean true if the device is encrypted.

    投掷
    DeviceNotAvailableException

    isDirectory

    public boolean isDirectory (String path)

    Return True if the path on the device is a directory, false otherwise.

    参数
    path String

    退货
    boolean

    投掷
    DeviceNotAvailableException

    isEnableAdbRoot

    public boolean isEnableAdbRoot ()

    退货
    boolean true if adb root should be enabled on device

    isEncryptionSupported

    public boolean isEncryptionSupported ()

    Returns if encryption is supported on the device.

    退货
    boolean true if the device supports encryption.

    投掷
    DeviceNotAvailableException

    isExecutable

    public boolean isExecutable (String fullPath)

    Returns True if the file path on the device is an executable file, false otherwise.

    参数
    fullPath String

    退货
    boolean

    投掷
    DeviceNotAvailableException

    isFastbootEnabled

    public boolean isFastbootEnabled ()

    Return if fastboot is available for the device.

    退货
    boolean

    isHeadless

    public boolean isHeadless ()

    Return true if the device is headless (no screen), false otherwise.

    退货
    boolean

    投掷
    DeviceNotAvailableException

    isHeadlessSystemUserMode

    public boolean isHeadlessSystemUserMode ()

    Returns whether the device uses headless system user mode.

    退货
    boolean

    投掷
    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.

    退货
    boolean

    投掷
    DeviceNotAvailableException

    isMultiUserSupported

    public boolean isMultiUserSupported ()

    Determines if multi user is supported.

    退货
    boolean true if multi user is supported, false otherwise

    投掷
    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.

    参数
    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.

    退货
    boolean True if the package is reported as installed. False otherwise.

    投掷
    DeviceNotAvailableException

    isPackageInstalled

    public boolean isPackageInstalled (String packageName)

    Query the device for a given package name to check if it's currently installed or not.

    参数
    packageName String

    退货
    boolean True if the package is reported as installed. False otherwise.

    投掷
    DeviceNotAvailableException

    isRuntimePermissionSupported

    public boolean isRuntimePermissionSupported ()

    Check whether platform on device supports runtime permission granting

    退货
    boolean True if runtime permission are supported, false otherwise.

    投掷
    DeviceNotAvailableException

    isStateBootloaderOrFastbootd

    public boolean isStateBootloaderOrFastbootd ()

    Returns true if device is in TestDeviceState#FASTBOOT or TestDeviceState.FASTBOOTD .

    退货
    boolean

    isUserRunning

    public boolean isUserRunning (int userId)

    Check if a given user is running.

    参数
    userId int

    退货
    boolean True if the user is running, false in every other cases.

    投掷
    DeviceNotAvailableException

    isUserSecondary

    public boolean isUserSecondary (int userId)

    Return whether the specified user is a secondary user according to it's flags.

    参数
    userId int

    退货
    boolean true if the user is secondary, false otherwise.

    投掷
    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).

    参数
    userId int

    退货
    boolean

    投掷
    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.

    参数
    userId int

    displayId int

    退货
    boolean

    投掷
    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) ).

    退货
    boolean

    投掷
    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() .

    退货
    boolean

    投掷
    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.

    退货
    boolean true if wifi is enabled. false if disabled

    投掷
    DeviceNotAvailableException

    listDisplayIds

    public  listDisplayIds ()

    Collect the list of available displays id on the device as reported by "dumpsys SurfaceFlinger".

    退货
    The list of displays. Default always returns the default display 0.

    投掷
    DeviceNotAvailableException

    listDisplayIdsForStartingVisibleBackgroundUsers

    public  listDisplayIdsForStartingVisibleBackgroundUsers ()

    Gets the list of displays that can be used to start a user visible in the background .

    退货

    投掷
    DeviceNotAvailableException

    listUsers

    public  listUsers ()

    Gets the list of users on the device. Will throw DeviceRuntimeException if output from device is not as expected.

    退货
    the list of user ids.

    投掷
    DeviceNotAvailableException

    logAnrs

    public boolean logAnrs (ITestLogger logger)

    Collects and log ANRs from the device.

    参数
    logger ITestLogger : an ITestLogger to log the ANRs.

    退货
    boolean True if the logging was successful, false otherwise.

    投掷
    DeviceNotAvailableException

    logBugreport

    public boolean logBugreport (String dataName, 
                    ITestLogger listener)

    Helper method to take a bugreport and log it to the reporters.

    参数
    dataName String : name under which the bugreport will be reported.

    listener ITestLogger : an ITestLogger to log the bugreport.

    退货
    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.

    参数
    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.

    投掷
    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.

    投掷
    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.

    投掷
    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)

    投掷
    DeviceNotAvailableException

    postInvocationTearDown

    public void postInvocationTearDown (Throwable exception)

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

    参数
    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.

    参数
    info IBuildInfo : The IBuildInfo of the device.

    attributes MultiMap : The attributes stored in the invocation context

    投掷
    DeviceNotAvailableException
    TargetSetupError

    pullDir

    public boolean pullDir (String deviceFilePath, 
                    File localDir)

    Recursively pull directory contents from device.

    参数
    deviceFilePath String : the absolute file path of the remote source

    localDir File : the local directory to pull files into

    退货
    boolean true if file was pulled successfully. false otherwise.

    投掷
    DeviceNotAvailableException

    pullFile

    public boolean pullFile (String remoteFilePath, 
                    File localFile)

    Retrieves a file off device.

    参数
    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.

    退货
    boolean true if file was retrieved successfully. false otherwise.

    投掷
    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 .

    参数
    remoteFilePath String : the absolute path to file on device.

    userId int : The user id to pull from

    退货
    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)

    投掷
    DeviceNotAvailableException

    pullFile

    public File pullFile (String remoteFilePath)

    Retrieves a file off device, stores it in a local temporary ERROR(/File) , and returns that File .

    参数
    remoteFilePath String : the absolute path to file on device.

    退货
    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)

    投掷
    DeviceNotAvailableException

    pullFile

    public boolean pullFile (String remoteFilePath, 
                    File localFile, 
                    int userId)

    Retrieves a file off device.

    参数
    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

    退货
    boolean true if file was retrieved successfully. false otherwise.

    投掷
    DeviceNotAvailableException

    pullFileContents

    public String pullFileContents (String remoteFilePath)

    Retrieves a file off device, and returns the contents.

    参数
    remoteFilePath String : the absolute path to file on device.

    退货
    String A ERROR(/String) containing the contents of the device file, or null if the copy failed for any reason (including problems with the host filesystem)

    投掷
    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 .

    参数
    remoteFilePath String : the path to file on device, relative to the device's external storage mountpoint

    退货
    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)

    投掷
    DeviceNotAvailableException

    pushDir

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

    Recursively push directory contents to device while excluding some directories that are filtered.

    参数
    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.

    退货
    boolean true if file was pushed successfully. false otherwise.

    投掷
    DeviceNotAvailableException

    pushDir

    public boolean pushDir (File localFileDir, 
                    String deviceFilePath)

    Recursively push directory contents to device.

    参数
    localFileDir File : the local directory to push

    deviceFilePath String : the absolute file path of the remote destination

    退货
    boolean true if file was pushed successfully. false otherwise.

    投掷
    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.

    参数
    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

    退货
    boolean true if file was pushed successfully. false otherwise.

    投掷
    DeviceNotAvailableException

    pushFile

    public boolean pushFile (File localFile, 
                    String remoteFilePath)

    Push a file to device. By default using a content provider.

    参数
    localFile File : the local file to push

    remoteFilePath String : the remote destination absolute file path

    退货
    boolean true if file was pushed successfully. false otherwise.

    投掷
    DeviceNotAvailableException

    pushString

    public boolean pushString (String contents, 
                    String remoteFilePath)

    Push file created from a string to device

    参数
    contents String : the contents of the file to push

    remoteFilePath String : the remote destination absolute file path

    退货
    boolean true if string was pushed successfully. false otherwise.

    投掷
    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.

    参数
    reason String : a reason for this reboot, or null if no reason is specified.

    投掷
    DeviceNotAvailableException

    reboot

    public void reboot ()

    Reboots the device into adb mode.

    Blocks until device becomes available.

    投掷
    DeviceNotAvailableException

    rebootIntoBootloader

    public void rebootIntoBootloader ()

    Reboots the device into bootloader mode.

    Blocks until device is in bootloader mode.

    投掷
    DeviceNotAvailableException

    rebootIntoFastbootd

    public void rebootIntoFastbootd ()

    Reboots the device into fastbootd mode.

    Blocks until device is in fastbootd mode.

    投掷
    DeviceNotAvailableException

    rebootIntoRecovery

    public void rebootIntoRecovery ()

    Reboots the device into adb recovery mode.

    Blocks until device enters recovery

    投掷
    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

    投掷
    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

    参数
    autoReboot boolean : whether to automatically reboot the device after sideload

    投掷
    DeviceNotAvailableException

    rebootUntilOnline

    public void rebootUntilOnline ()

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

    投掷
    DeviceNotAvailableException

    rebootUntilOnline

    public void rebootUntilOnline (String reason)

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

    参数
    reason String : a reason for this reboot, or null if no reason is specified.

    投掷
    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.

    投掷
    DeviceNotAvailableException

    rebootUserspaceUntilOnline

    public void rebootUserspaceUntilOnline ()

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

    投掷
    DeviceNotAvailableException

    recoverDevice

    public boolean recoverDevice ()

    Attempts to recover device communication.

    退货
    boolean True if recovery attempted and successful, returns False if recovery was skipped

    投掷
    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.

    参数
    deviceActionReceiver IDeviceActionReceiver : A IDeviceActionReceiver which will be registered.

    remountSystemWritable

    public void remountSystemWritable ()

    Make the system partition on the device writable. May reboot the device.

    投掷
    DeviceNotAvailableException

    remountVendorWritable

    public void remountVendorWritable ()

    Make the vendor partition on the device writable. May reboot the device.

    投掷
    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.

    参数
    componentName String : of device admin to be removed.

    userId int : of user that the device admin lives in.

    退货
    boolean True if it is successful, false otherwise.

    投掷
    DeviceNotAvailableException

    removeOwners

    public void removeOwners ()

    Remove all existing device profile owners with the best effort.

    投掷
    DeviceNotAvailableException

    removeUser

    public boolean removeUser (int userId)

    Remove a given user from the device.

    参数
    userId int : of the user to remove

    退货
    boolean true if we were successful in removing the user, false otherwise.

    投掷
    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.

    参数
    runner IRemoteAndroidTestRunner : the IRemoteAndroidTestRunner which runs the tests

    listeners ITestLifeCycleReceiver : the test result listener(s)

    退货
    boolean true if test command completed. false if it failed to complete, but recovery succeeded

    投掷
    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.

    参数
    runner IRemoteAndroidTestRunner : the IRemoteAndroidTestRunner which runs the tests

    listeners : the test result listeners

    退货
    boolean true if test command completed. false if it failed to complete due to device communication exception, but recovery succeeded

    投掷
    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.

    参数
    runner IRemoteAndroidTestRunner

    userId int

    listeners

    退货
    boolean

    投掷
    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.

    参数
    runner IRemoteAndroidTestRunner

    userId int

    listeners ITestLifeCycleReceiver

    退货
    boolean

    投掷
    DeviceNotAvailableException

    setConfiguration

    public void setConfiguration (IConfiguration configuration)

    Injects the IConfiguration in use.

    参数
    configuration IConfiguration

    setDate

    public void setDate (Date date)

    Sets the date on device

    Note: setting date on device requires root

    参数
    date Date : specify a particular date; will use host date if null

    投掷
    DeviceNotAvailableException

    setDeviceOwner

    public boolean setDeviceOwner (String componentName, 
                    int userId)

    Set a device admin component as device owner in given user.

    参数
    componentName String : of device admin to be device owner.

    userId int : of the user that the device owner lives in.

    退货
    boolean True if it is successful, false otherwise.

    投掷
    DeviceNotAvailableException

    setDeviceState

    public void setDeviceState (TestDeviceState deviceState)

    Update the device's state.

    参数
    deviceState TestDeviceState : the TestDeviceState

    setEmulatorOutputStream

    public void setEmulatorOutputStream (SizeLimitedOutputStream output)

    For emulator set SizeLimitedOutputStream to log output

    参数
    output SizeLimitedOutputStream : to log the output

    setEmulatorProcess

    public void setEmulatorProcess (Process p)

    Sets the ERROR(/Process) , when this device is an emulator.

    参数
    p Process

    setFastbootEnabled

    public void setFastbootEnabled (boolean fastbootEnabled)

    Set the fastboot option for the device. Should be set when device is first allocated.

    参数
    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.

    参数
    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

    参数
    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.

    参数
    delay int : the delay in ms

    setOptions

    public void setOptions (TestDeviceOptions options)

    Set the TestDeviceOptions for the device

    参数
    options TestDeviceOptions

    setProperty

    public boolean setProperty (String propKey, 
                    String propValue)

    Sets the given property value on the device. Requires adb root is true.

    参数
    propKey String : The key targeted to be set.

    propValue String : The property value to be set.

    退货
    boolean returns True if the setprop command was successful, False otherwise.

    投掷
    DeviceNotAvailableException

    setRecovery

    public void setRecovery (IDeviceRecovery recovery)

    Set the IDeviceRecovery to use for this device. Should be set when device is first allocated.

    参数
    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

    参数
    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.

    参数
    namespace String

    key String

    value String

    投掷
    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"}

    参数
    userId int

    namespace String

    key String

    value String

    投掷
    DeviceNotAvailableException

    setTestLogger

    public void setTestLogger (ITestLogger testLogger)

    Injects the ITestLogger instance

    参数
    testLogger ITestLogger

    setUseFastbootErase

    public void setUseFastbootErase (boolean useFastbootErase)

    Set whether to use fastboot erase or fastboot format to wipe a partition on the device.

    参数
    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.

    参数
    userId int : of the user to start in the background

    退货
    boolean true if the user was successfully started in the background.

    投掷
    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.

    参数
    userId int : of the user to start in the background

    waitFlag boolean : will make the command wait until user is started and unlocked.

    退货
    boolean true if the user was successfully started in the background.

    投掷
    DeviceNotAvailableException

    startVisibleBackgroundUser

    public boolean startVisibleBackgroundUser (int userId, 
                    int displayId, 
                    boolean waitFlag)

    Starts a given user in the background, visible in the given display (ie, 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.

    参数
    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.

    退货
    boolean true if the user was successfully started visible in the background.

    投掷
    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.

    参数
    userId int : of the user to stop.

    退货
    boolean true if the user was successfully stopped.

    投掷
    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.

    参数
    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.

    退货
    boolean true if the user was successfully stopped.

    投掷
    DeviceNotAvailableException

    switchToAdbTcp

    public String switchToAdbTcp ()

    Switch device to adb-over-tcp mode.

    退货
    String the tcp serial number or null if device could not be switched

    投掷
    DeviceNotAvailableException

    switchToAdbUsb

    public boolean switchToAdbUsb ()

    Switch device to adb over usb mode.

    退货
    boolean true if switch was successful, false otherwise.

    投掷
    DeviceNotAvailableException

    switchUser

    public boolean switchUser (int userId)

    Switch to another userId with a default timeout. switchUser(int, long) .

    参数
    userId int

    退货
    boolean True if the new userId matches the userId provider. False otherwise.

    投掷
    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.

    参数
    userId int

    timeout long : to wait before returning false for switch-user failed.

    退货
    boolean True if the new userId matches the userId provider. False otherwise.

    投掷
    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.

    参数
    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

    退货
    boolean true if files were synced successfully. false otherwise.

    投掷
    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() .

    退货
    Bugreport

    uninstallPackage

    public String uninstallPackage (String packageName)

    Uninstall an Android package from device.

    参数
    packageName String : the Android package to uninstall

    退货
    String a ERROR(/String) with an error code, or null if success.

    投掷
    DeviceNotAvailableException

    uninstallPackageForUser

    public String uninstallPackageForUser (String packageName, 
                    int userId)

    Uninstall an Android package from device for a given user.

    参数
    packageName String : the Android package to uninstall

    userId int : the integer user id to uninstall for.

    退货
    String a ERROR(/String) with an error code, or null if success.

    投掷
    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.

    退货
    boolean true if successful or if the device is unencrypted.

    投掷
    DeviceNotAvailableException

    waitForBootComplete

    public boolean waitForBootComplete (long timeOut)

    Blocks until the device's boot complete flag is set.

    参数
    timeOut long : time in msecs to wait for the flag to be set

    退货
    boolean true if device's boot complete flag is set within the timeout

    投掷
    DeviceNotAvailableException

    waitForDeviceAvailable

    public boolean waitForDeviceAvailable ()

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

    退货
    boolean True if device is available, False if recovery is disabled and unavailable.

    投掷
    DeviceNotAvailableException

    waitForDeviceAvailable

    public boolean waitForDeviceAvailable (long waitTime)

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

    参数
    waitTime long : the time in ms to wait

    退货
    boolean True if device is available, False if recovery is disabled and unavailable.

    投掷
    DeviceNotAvailableException

    waitForDeviceAvailableInRecoverPath

    public boolean waitForDeviceAvailableInRecoverPath (long waitTime)

    Waits for the device to be responsive and available without considering recovery path.

    参数
    waitTime long

    退货
    boolean True if device is available, False if unavailable.

    投掷
    DeviceNotAvailableException

    waitForDeviceBootloader

    public void waitForDeviceBootloader ()

    Blocks until device is visible via fastboot. Use default timeout.

    投掷
    DeviceNotAvailableException

    waitForDeviceInRecovery

    public boolean waitForDeviceInRecovery (long waitTime)

    Blocks for the device to be in the 'adb recovery' state (note this is distinct from IDeviceRecovery ).

    参数
    waitTime long : the time in ms to wait

    退货
    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

    参数
    waitTime long : the time in ms to wait

    退货
    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

    参数
    waitTime long : the time in ms to wait

    退货
    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.

    投掷
    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.

    参数
    waitTime long : the time in ms to wait

    投掷
    DeviceNotAvailableException

    waitForDeviceShell

    public boolean waitForDeviceShell (long waitTime)

    Waits for device to be responsive to a basic adb shell command.

    参数
    waitTime long : the time in ms to wait

    退货
    boolean true if device becomes responsive before waitTime elapses.

    Protected methods

    buildAdbShellCommand

    protected String[] buildAdbShellCommand (String command, 
                    boolean forceExitStatusDetection)

    Builds the OS command for the given adb shell command session and args

    参数
    command String

    forceExitStatusDetection boolean

    退货
    String[]

    checkApiLevelAgainst

    protected void checkApiLevelAgainst (String feature, 
                    int strictMinLevel)

    参数
    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.

    参数
    rebootMode NativeDevice.RebootMode : a mode of this reboot.

    reason String : for this reboot.

    退货
    NativeDevice.RebootDeviceAction the created RebootDeviceAction .

    createRunUtil

    protected IRunUtil createRunUtil ()

    退货
    IRunUtil

    doAdbReboot

    protected void doAdbReboot (NativeDevice.RebootMode rebootMode, 
                    String reason)

    Perform a adb reboot.

    参数
    rebootMode NativeDevice.RebootMode : a mode of this reboot.

    reason String : for this reboot.

    投掷
    com.android.tradefed.device.DeviceNotAvailableException
    DeviceNotAvailableException

    ensureRuntimePermissionSupported

    protected void ensureRuntimePermissionSupported ()

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

    投掷
    com.android.tradefed.device.DeviceNotAvailableException
    DeviceNotAvailableException

    getApiLevelSafe

    protected int getApiLevelSafe ()

    退货
    int

    getLogger

    protected ITestLogger getLogger ()

    退货
    ITestLogger

    getRunUtil

    protected IRunUtil getRunUtil ()

    Get the RunUtil instance to use.

    退货
    IRunUtil

    initializeConnection

    protected void initializeConnection (IBuildInfo info, 
                    MultiMap<String, String> attributes)

    参数
    info IBuildInfo

    attributes MultiMap

    投掷
    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.

    参数
    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.

    退货
    String A string, possibly null or empty, containing the value of the given property

    投掷
    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.

    退货
    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.

    参数
    localFile File

    entry IFileEntry

    退货
    boolean

    notifyRebootEnded

    protected void notifyRebootEnded ()

    Notifies all IDeviceActionReceiver about reboot end event.

    投掷
    com.android.tradefed.device.DeviceNotAvailableException
    DeviceNotAvailableException

    notifyRebootStarted

    protected void notifyRebootStarted ()

    Notifies all IDeviceActionReceiver about reboot start event.

    投掷
    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.

    参数
    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

    退货
    boolean true if action was performed successfully

    投掷
    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.

    投掷
    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.

    投掷
    com.android.tradefed.device.DeviceNotAvailableException
    DeviceNotAvailableException

    pullFileInternal

    protected boolean pullFileInternal (String remoteFilePath, 
                    File localFile)

    参数
    remoteFilePath String

    localFile File

    退货
    boolean

    投掷
    DeviceNotAvailableException

    setClock

    protected void setClock (Clock clock)

    Set the Clock instance to use.

    参数
    clock Clock

    setMicrodroidProcess

    protected void setMicrodroidProcess (Process process)

    Marks the TestDevice as microdroid and sets its CID.

    参数
    process Process : Process of the Microdroid VM.

    setTestDeviceOptions

    protected void setTestDeviceOptions ( deviceOptions)

    参数
    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.

    参数
    timeout long

    envVarMap

    fullCmd String

    退货
    CommandResult

    simpleFastbootCommand

    protected CommandResult simpleFastbootCommand (long timeout, 
                    String[] fullCmd)

    Executes a simple fastboot command and report the status of the command.

    参数
    timeout long

    fullCmd String

    退货
    CommandResult

    waitForDeviceNotAvailable

    protected boolean waitForDeviceNotAvailable (String operationDesc, 
                    long time)

    Wait to see the device going unavailable (stop reporting to adb).

    参数
    operationDesc String : The name of the operation that is waiting for unavailable.

    time long : The time to wait for unavailable to occur.

    退货
    boolean True if device did become unavailable.