测试装置

public class TestDevice
extends NativeDevice

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


全栈 Android 设备的ITestDevice实现

概括

嵌套类

class TestDevice.MicrodroidBuilder

用于创建 Microdroid TestDevice 的构建器。

领域

public static final String DISMISS_KEYGUARD_CMD

可用于关闭键盘保护的命令。

公共构造函数

TestDevice (IDevice device, IDeviceStateMonitor stateMonitor, IDeviceMonitor allocationMonitor)

公共方法

boolean canSwitchToHeadlessSystemUser ()

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

boolean clearErrorDialogs ()

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

int createUser (String name)

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

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

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

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

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

int createUserNoThrow (String name)

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

void disableKeyguard ()

尝试禁用键盘保护。

boolean doesFileExist (String deviceFilePath)

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

boolean doesFileExist (String deviceFilePath, int userId)

用于确定给定用户的设备上的文件是否存在的帮助程序方法。

File dumpHeap (String process, String devicePath)

尝试从 system_server 转储堆。

getActiveApexes ()

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

getAllSettings (String namespace)

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

String getAndroidId (int userId)

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

getAndroidIds ()

创建一个找到匹配用户 ID 的 Android ID 地图。

PackageInfo getAppPackageInfo (String packageName)

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

getAppPackageInfos ()

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

InputStreamSource getBugreport ()

从设备检索错误报告。

InputStreamSource getBugreportz ()

从设备检索错误报告。

DeviceFoldableState getCurrentFoldableState ()

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

int getCurrentUser ()

返回当前运行用户的id。

getFoldableStates ()

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

getInstalledPackageNames ()

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

KeyguardControllerState getKeyguardState ()

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

Integer getMainUserId ()

返回主用户 ID。

getMainlineModuleInfo ()

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

int getMaxNumberOfRunningUsersSupported ()

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

int getMaxNumberOfUsersSupported ()

获取支持的最大用户数。

Integer getPrimaryUserId ()

返回主要用户 ID。

InputStreamSource getScreenshot ()

从设备抓取屏幕截图。

InputStreamSource getScreenshot (String format, boolean rescale)

从设备抓取屏幕截图。

InputStreamSource getScreenshot (String format)

从设备抓取屏幕截图。

InputStreamSource getScreenshot (long displayId)

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

String getSetting (String namespace, String key)

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

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

返回所请求设置的值。

getUninstallablePackageNames ()

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

int getUserFlags (int userId)

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

getUserInfos ()

获取设备上 useId 到UserInfo的 Map。

int getUserSerialNumber (int userId)

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

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 installPackage (File packageFile, File certFile, boolean reinstall, String... extraArgs)

在设备上安装 Android 软件包。

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

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

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

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

String installPackages ( packageFiles, boolean reinstall, String... extraArgs) installPackages ( packageFiles, boolean reinstall, String... extraArgs)

String installPackages ( packageFiles, boolean reinstall, boolean grantPermissions, String... extraArgs) installPackages ( packageFiles, boolean reinstall, boolean grantPermissions, String... extraArgs)

String installPackagesForUser ( packageFiles, boolean reinstall, boolean grantPermissions, int userId, String... extraArgs) installPackagesForUser ( packageFiles, boolean reinstall, boolean grantPermissions, int userId, String... extraArgs)

String installPackagesForUser ( packageFiles, boolean reinstall, int userId, String... extraArgs) installPackagesForUser ( packageFiles, boolean reinstall, int userId, String... extraArgs)

String installRemotePackages ( remoteApkPaths, boolean reinstall, String... extraArgs) installRemotePackages ( remoteApkPaths, boolean reinstall, String... extraArgs)

String installRemotePackages ( remoteApkPaths, boolean reinstall, boolean grantPermissions, String... extraArgs) installRemotePackages ( remoteApkPaths, boolean reinstall, boolean grantPermissions, String... extraArgs)

boolean isAppEnumerationSupported ()

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

boolean isHeadlessSystemUserMode ()

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

boolean isMainUserPermanentAdmin ()

返回主用户是否是永久管理员且无法删除或降级为非管理员状态。

boolean isMultiUserSupported ()

确定是否支持多用户。

boolean isPackageInstalled (String packageName)

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

boolean isPackageInstalled (String packageName, String userId)

查询设备中给定的软件包名称和给定的用户 ID,以检查当前是否已为该用户安装。

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

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

listDisplayIds ()

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

listDisplayIdsForStartingVisibleBackgroundUsers ()

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

listUsers ()

获取设备上的用户列表。

boolean logBugreport (String dataName, ITestLogger listener)

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

void postInvocationTearDown (Throwable exception)

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

boolean removeAdmin (String componentName, int userId)

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

void removeOwners ()

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

boolean removeUser (int userId)

从设备中删除给定用户。

boolean setDeviceOwner (String componentName, int userId)

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

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

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

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

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

void shutdownMicrodroid ( ITestDevice microdroidDevice)

关闭 microdroid 设备(如果存在)。

boolean startUser (int userId)

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

boolean startUser (int userId, boolean waitFlag)

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

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

在后台启动给定用户,在给定显示中可见(即允许用户在该显示中启动活动)。

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

停止给定用户。

boolean stopUser (int userId)

停止给定用户。

boolean supportsMicrodroid ()

检查运行微型机器人的先决条件。

boolean supportsMicrodroid (boolean protectedVm)

检查运行微型机器人的先决条件。

boolean switchUser (int userId)

切换到另一个具有默认超时的用户 ID。

boolean switchUser (int userId, long timeout)

切换到另一个用户 ID,并以提供的超时为截止时间。

Bugreport takeBugreport ()

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

String uninstallPackage (String packageName)

从设备卸载 Android 软件包。

String uninstallPackageForUser (String packageName, int userId)

从设备上为给定用户卸载 Android 软件包。

受保护的方法

AaptParser createParser (File appFile)
void doAdbReboot ( NativeDevice.RebootMode rebootMode, String reason)

执行 adb 重启。

InputStreamSource getBugreportInternal ()
File getBugreportzInternal ()

将 bugreportz zip 文件作为ERROR(/File)获取的内部帮助程序方法。

long getCheckNewUserSleep ()

暴露进行测试。

long getHostCurrentTime ()

暴露测试

void prePostBootSetup ()

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

领域

DISMISS_KEYGUARD_CMD

public static final String DISMISS_KEYGUARD_CMD

可用于关闭键盘保护的命令。

公共构造函数

测试装置

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

公共方法

可以切换到Headless系统用户

public boolean canSwitchToHeadlessSystemUser ()

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

退货
boolean

投掷
DeviceNotAvailableException

清除错误对话框

public boolean clearErrorDialogs ()

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

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

投掷
DeviceNotAvailableException

创建用户

public int createUser (String name)

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

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

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

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

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

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

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

退货
int创建用户的id

投掷
DeviceNotAvailableException

创建用户不抛出

public int createUserNoThrow (String name)

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

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

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

投掷
DeviceNotAvailableException

禁用键盘锁

public void disableKeyguard ()

尝试禁用键盘保护。

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

投掷
DeviceNotAvailableException

文件是否存在

public boolean doesFileExist (String deviceFilePath)

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

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

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

投掷
DeviceNotAvailableException

文件是否存在

public boolean doesFileExist (String deviceFilePath, 
                int userId)

用于确定给定用户的设备上的文件是否存在的帮助程序方法。

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

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

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

投掷
DeviceNotAvailableException

转储堆

public File dumpHeap (String process, 
                String devicePath)

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

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

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

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

投掷
DeviceNotAvailableException

获取活动顶点

public  getActiveApexes ()

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

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

投掷
DeviceNotAvailableException

获取所有设置

public  getAllSettings (String namespace)

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

参数
namespace String :必须是 {"system", "secure", "global"} 之一

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

投掷
DeviceNotAvailableException

获取AndroidId

public String getAndroidId (int userId)

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

参数
userId int

退货
String

投掷
DeviceNotAvailableException

获取AndroidId

public  getAndroidIds ()

创建一个找到匹配用户 ID 的 Android ID 地图。无法保证每个用户 ID 都会在此函数中找到关联的 Android ID,因此某些用户 ID 可能会匹配 null。

退货
Android ID 地图找到匹配的用户 ID。

投掷
DeviceNotAvailableException

获取应用程序包信息

public PackageInfo getAppPackageInfo (String packageName)

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

参数
packageName String

退货
PackageInfo如果无法检索信息,则为PackageInfonull

投掷
DeviceNotAvailableException

获取应用程序包信息

public  getAppPackageInfos ()

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

退货
设备上安装的PackageInfo ERROR(/List)

投掷
DeviceNotAvailableException

获取错误报告

public InputStreamSource getBugreport ()

从设备检索错误报告。

这个实现保证在没有 SD 卡的设备上(或者尚未安装 SD 卡的设备)继续工作。

退货
InputStreamSource一个InputStreamSource ,它将根据需要生成错误报告内容。如果失败, InputStreamSource将产生一个空的ERROR(/InputStream)

获取错误报告

public InputStreamSource getBugreportz ()

从设备检索错误报告。 Zip 格式的错误报告包含主要错误报告和其他对调试有用的日志文件。

仅支持“adb 版本”> 1.0.36

退货
InputStreamSource包含 bugreportz 的 zip 文件的InputStreamSource ,如果失败则返回 null。

获取当前可折叠状态

public DeviceFoldableState getCurrentFoldableState ()

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

退货
DeviceFoldableState

投掷
DeviceNotAvailableException

获取当前用户

public int getCurrentUser ()

返回当前运行用户的id。如果出现错误,则返回-10000。

退货
int

投掷
DeviceNotAvailableException

获取可折叠状态

public  getFoldableStates ()

返回设备上可折叠状态的列表。可以通过“cmd device_state print-states”获得。

退货

投掷
DeviceNotAvailableException

获取安装包名称

public  getInstalledPackageNames ()

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

退货
设备上当前安装的String包名称ERROR(/Set)

投掷
DeviceNotAvailableException

获取KeyguardState

public KeyguardControllerState getKeyguardState ()

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

退货
KeyguardControllerState包含键盘锁状态快照的KeyguardControllerState ,如果不支持键盘锁查询,则返回 Null。

投掷
DeviceNotAvailableException

获取主用户ID

public Integer getMainUserId ()

返回主用户 ID。

退货
Integer有主用户则为主用户的userId,无主用户则为null。

投掷
DeviceNotAvailableException

获取主线模块信息

public  getMainlineModuleInfo ()

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

退货
设备上当前安装的String主线模块ERROR(/Set)

投掷
DeviceNotAvailableException

getMaxNumberOfRunningUsersSupported

public int getMaxNumberOfRunningUsersSupported ()

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

退货
int一个整数,表示同时运行的用户数

投掷
DeviceNotAvailableException

获取支持的最大用户数

public int getMaxNumberOfUsersSupported ()

获取支持的最大用户数。默认为 0。

退货
int一个整数,表示支持的用户数

投掷
DeviceNotAvailableException

获取主用户ID

public Integer getPrimaryUserId ()

返回主要用户 ID。

退货
Integer有主用户则为主用户的userId,无主用户则为null。

投掷
DeviceNotAvailableException

获取屏幕截图

public InputStreamSource getScreenshot ()

从设备抓取屏幕截图。

退货
InputStreamSource png 格式的屏幕截图的InputStreamSource ,如果屏幕截图不成功则为null

投掷
DeviceNotAvailableException

获取屏幕截图

public InputStreamSource getScreenshot (String format, 
                boolean rescale)

从设备抓取屏幕截图。建议使用getScreenshot(String)代替 JPEG 编码以获得较小的尺寸。

参数
format String :支持PNG、JPEG

rescale boolean :是否应重新缩放屏幕截图以减小结果图像的大小

退货
InputStreamSource屏幕截图的InputStreamSource格式,如果屏幕截图不成功,则返回null

投掷
DeviceNotAvailableException

获取屏幕截图

public InputStreamSource getScreenshot (String format)

从设备抓取屏幕截图。建议使用 getScreenshot(format) 代替 JPEG 编码以获得较小的尺寸

参数
format String :支持PNG、JPEG

退货
InputStreamSource屏幕截图的InputStreamSource格式,如果屏幕截图不成功,则返回null

投掷
DeviceNotAvailableException

获取屏幕截图

public InputStreamSource getScreenshot (long displayId)

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

TODO:扩展上述实现以支持“格式”和“重新缩放”

参数
displayId long :要从中获取屏幕截图的屏幕的显示 ID。

退货
InputStreamSource屏幕截图的InputStreamSource格式,如果屏幕截图不成功,则返回null

投掷
DeviceNotAvailableException

获取设置

public String getSetting (String namespace, 
                String key)

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

参数
namespace String

key String

退货
String

投掷
DeviceNotAvailableException

获取设置

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

返回所请求设置的值。命名空间必须是以下之一:{"system", "secure", "global"}

参数
userId int

namespace String

key String

退货
String与用户的命名空间:键关联的值。如果没有找到则为空。

投掷
DeviceNotAvailableException

获取UninstallablePackageNames

public  getUninstallablePackageNames ()

获取可卸载的应用程序包名称。目前将其定义为非系统包和更新的系统包。

退货
设备上当前安装的可卸载String包名称ERROR(/Set)

投掷
DeviceNotAvailableException

获取用户标志

public int getUserFlags (int userId)

查找并返回给定用户的标志。标志在 Android 开源项目的“android.content.pm.UserInfo”类中定义。

参数
userId int

退货
int如果找到,则提供与 userId 关联的标志,在任何其他情况下为 -10000。

投掷
DeviceNotAvailableException

获取用户信息

public  getUserInfos ()

获取设备上 useId 到UserInfo的 Map。如果设备的输出不符合预期,将抛出DeviceRuntimeException

退货
UserInfo 对象的列表。

投掷
DeviceNotAvailableException

获取用户序列号

public int getUserSerialNumber (int userId)

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

参数
userId int

退货
int

投掷
DeviceNotAvailableException

有特征

public boolean hasFeature (String feature)

检查设备上是否有可用的功能。

参数
feature String :格式应为“feature: “ 或者 ” “ 直接地。

退货
boolean如果找到功能则为 true,否则为 false。

投掷
DeviceNotAvailableException

安装包

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

在设备上安装 Android 软件包。

参数
packageFile File :要安装的apk文件

reinstall boolean : true如果应重新安装

extraArgs String :要传递的可选额外参数。有关可用选项,请参阅“adb shell pm -h”。

退货
String带有错误代码的String ,如果成功则为null

投掷
DeviceNotAvailableException

安装包

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

在设备上安装 Android 软件包。

注意:只有需要在安装时显式控制授予运行时权限的用例才应调用此函数。

参数
packageFile File :要安装的apk文件

reinstall boolean : true如果应重新安装

grantPermissions boolean :是否应在安装时授予所有运行时权限

extraArgs String :要传递的可选额外参数。有关可用选项,请参阅“adb shell pm -h”。

退货
String带有错误代码的String ,如果成功则为null

投掷
DeviceNotAvailableException

安装包

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

在设备上安装 Android 软件包。

注意:只有需要在安装时显式控制授予运行时权限的用例才应调用此函数。

参数
packageFile File :要安装的apk文件

certFile File : true如果应重新安装

reinstall boolean :是否应在安装时授予所有运行时权限

extraArgs String :要传递的可选额外参数。有关可用选项,请参阅“adb shell pm -h”。

退货
String带有错误代码的String ,如果成功则为null

投掷
DeviceNotAvailableException

为用户安装包

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

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

注意:只有需要在安装时显式控制授予运行时权限的用例才应调用此函数。

参数
packageFile File :要安装的apk文件

reinstall boolean : true如果应重新安装

grantPermissions boolean :是否应在安装时授予所有运行时权限

userId int :要安装的整数用户 ID。

extraArgs String :要传递的可选额外参数。有关可用选项,请参阅“adb shell pm -h”。

退货
String带有错误代码的String ,如果成功则为null

投掷
DeviceNotAvailableException

为用户安装包

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

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

参数
packageFile File :要安装的apk文件

reinstall boolean : true如果应重新安装

userId int :要安装的整数用户 ID。

extraArgs String :要传递的可选额外参数。有关可用选项,请参阅“adb shell pm -h”。

退货
String带有错误代码的String ,如果成功则为null

投掷
DeviceNotAvailableException

安装包

public String installPackages ( packageFiles, 
                boolean reinstall, 
                String... extraArgs)

参数
packageFiles

reinstall boolean

extraArgs String

退货
String

投掷
DeviceNotAvailableException

安装包

public String installPackages ( packageFiles, 
                boolean reinstall, 
                boolean grantPermissions, 
                String... extraArgs)

参数
packageFiles

reinstall boolean

grantPermissions boolean

extraArgs String

退货
String

投掷
DeviceNotAvailableException

为用户安装包

public String installPackagesForUser ( packageFiles, 
                boolean reinstall, 
                boolean grantPermissions, 
                int userId, 
                String... extraArgs)

参数
packageFiles

reinstall boolean

grantPermissions boolean

userId int

extraArgs String

退货
String

投掷
DeviceNotAvailableException

为用户安装包

public String installPackagesForUser ( packageFiles, 
                boolean reinstall, 
                int userId, 
                String... extraArgs)

参数
packageFiles

reinstall boolean

userId int

extraArgs String

退货
String

投掷
DeviceNotAvailableException

安装远程包

public String installRemotePackages ( remoteApkPaths, 
                boolean reinstall, 
                String... extraArgs)

参数
remoteApkPaths

reinstall boolean

extraArgs String

退货
String

投掷
DeviceNotAvailableException

安装远程包

public String installRemotePackages ( remoteApkPaths, 
                boolean reinstall, 
                boolean grantPermissions, 
                String... extraArgs)

参数
remoteApkPaths

reinstall boolean

grantPermissions boolean

extraArgs String

退货
String

投掷
DeviceNotAvailableException

isAppEnumerationSupported 是否支持

public boolean isAppEnumerationSupported ()

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

退货
boolean如果支持应用程序枚举,则为 true,否则为 false

投掷
DeviceNotAvailableException

isHeadlessSystemUserMode

public boolean isHeadlessSystemUserMode ()

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

退货
boolean

投掷
DeviceNotAvailableException

是主用户永久管理员

public boolean isMainUserPermanentAdmin ()

返回主用户是否是永久管理员且无法删除或降级为非管理员状态。

退货
boolean

投掷
DeviceNotAvailableException

是否支持多用户

public boolean isMultiUserSupported ()

确定是否支持多用户。

退货
boolean如果支持多用户则为 true,否则为 false

投掷
DeviceNotAvailableException

软件包已安装

public boolean isPackageInstalled (String packageName)

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

参数
packageName String

退货
boolean如果报告软件包已安装,则为 true。否则为假。

投掷
DeviceNotAvailableException

软件包已安装

public boolean isPackageInstalled (String packageName, 
                String userId)

查询设备中给定的软件包名称和给定的用户 ID,以检查当前是否已为该用户安装。

参数
packageName String :我们正在检查是否已安装的包。

userId String :我们正在检查安装包的用户 ID。如果为空,则将使用主用户零。

退货
boolean如果报告软件包已安装,则为 true。否则为假。

投掷
DeviceNotAvailableException

正在运行

public boolean isUserRunning (int userId)

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

参数
userId int

退货
boolean如果用户正在运行,则为 true;在其他情况下为 false。

投掷
DeviceNotAvailableException

是用户次要的

public boolean isUserSecondary (int userId)

根据其标志返回指定用户是否为次要用户。

参数
userId int

退货
boolean如果用户是次要用户,则为 true,否则为 false。

投掷
DeviceNotAvailableException

是否用户可见

public boolean isUserVisible (int userId)

检查给定用户是否可见。

“可见”用户是与“人类”用户交互的用户,因此能够启动启动活动(通常在默认显示中)。

参数
userId int

退货
boolean

投掷
DeviceNotAvailableException

isUserVisibleOnDisplay

public boolean isUserVisibleOnDisplay (int userId, 
                int displayId)

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

“可见”用户是与“人类”用户交互的用户,因此能够在该显示中启动启动活动。

参数
userId int

displayId int

退货
boolean

投掷
DeviceNotAvailableException

isVisibleBackgroundUsersOnDefaultDisplaySupported

public boolean isVisibleBackgroundUsersOnDefaultDisplaySupported ()

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

如果是这样,您可以调用startVisibleBackgroundUser(int, int, boolean) ,传递listDisplayIdsForStartingVisibleBackgroundUsers()返回的显示(其中应包括ERROR(/java.android.view.Display#DEFAULT_DISPLAY) )。

退货
boolean

投掷
DeviceNotAvailableException

isVisibleBackgroundUsersSupported

public boolean isVisibleBackgroundUsersSupported ()

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

如果是这样,您可以调用startVisibleBackgroundUser(int, int, boolean) ,传递listDisplayIdsForStartingVisibleBackgroundUsers()返回的显示。

退货
boolean

投掷
DeviceNotAvailableException

列表显示 ID

public  listDisplayIds ()

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

退货
显示列表。默认值始终返回默认显示 0。

投掷
DeviceNotAvailableException

listDisplayIdsForStartingVisibleBackgroundUsers

public  listDisplayIdsForStartingVisibleBackgroundUsers ()

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

退货

投掷
DeviceNotAvailableException

列出用户

public  listUsers ()

获取设备上的用户列表。如果设备的输出不符合预期,将抛出DeviceRuntimeException

退货
用户 ID 列表。

投掷
DeviceNotAvailableException

日志错误报告

public boolean logBugreport (String dataName, 
                ITestLogger listener)

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

参数
dataName String :将报告错误报告的名称。

listener ITestLogger :用于记录错误报告的ITestLogger

退货
boolean如果记录成功则为 true,否则为 false。

调用后拆卸

public void postInvocationTearDown (Throwable exception)

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

参数
exception Throwable :如果有的话,调用失败引发的最终异常。

删除管理员

public boolean removeAdmin (String componentName, 
                int userId)

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

参数
componentName String :要删除的设备管理员。

userId int :设备管理员所在的用户。

退货
boolean如果成功则为 true,否则为 false。

投掷
DeviceNotAvailableException

删除所有者

public void removeOwners ()

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

投掷
DeviceNotAvailableException

删除用户

public boolean removeUser (int userId)

从设备中删除给定用户。

参数
userId int : 要删除的用户

退货
boolean如果我们成功删除用户,则为 true,否则为 false。

投掷
DeviceNotAvailableException

设置设备所有者

public boolean setDeviceOwner (String componentName, 
                int userId)

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

参数
componentName String :设备管理员成为设备所有者。

userId int :设备所有者所在的用户。

退货
boolean如果成功则为 true,否则为 false。

投掷
DeviceNotAvailableException

设置设置

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

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

参数
namespace String

key String

value String

投掷
DeviceNotAvailableException

设置设置

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

将设置值添加到给定用户的命名空间。某些设置仅在重新启动后才可用。命名空间必须是以下之一:{"system", "secure", "global"}

参数
userId int

namespace String

key String

value String

投掷
DeviceNotAvailableException

关闭Microdroid

public void shutdownMicrodroid (ITestDevice microdroidDevice)

关闭 microdroid 设备(如果存在)。

参数
microdroidDevice ITestDevice

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

启动用户

public boolean startUser (int userId)

如果给定用户当前已停止,则在后台启动该用户。如果用户已经在后台运行,则此方法是 NOOP。

参数
userId int : 在后台启动的用户

退货
boolean如果用户在后台成功启动,则为 true。

投掷
DeviceNotAvailableException

启动用户

public boolean startUser (int userId, 
                boolean waitFlag)

如果给定用户当前已停止,则在后台启动该用户。如果用户已经在后台运行,则此方法是 NOOP。可以提供额外的标志来等待操作生效。

参数
userId int : 在后台启动的用户

waitFlag boolean :将使命令等待,直到用户启动并解锁。

退货
boolean如果用户在后台成功启动,则为 true。

投掷
DeviceNotAvailableException

启动可见背景用户

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

在后台启动给定用户,在给定显示中可见(即允许用户在该显示中启动活动)。

注意:此命令不会检查用户是否存在、显示是否可用、 device supports such feature等。

参数
userId int : 在后台启动的用户

displayId int : 显示开始用户可见

waitFlag boolean :将使命令等待,直到用户启动并解锁。

退货
boolean true如果用户成功启动并在后台可见。

投掷
DeviceNotAvailableException

停止用户

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

停止给定用户。可以提供额外的标志来等待操作生效,并强制终止用户。无法停止当前用户和系统用户。

参数
userId int :要停止的用户。

waitFlag boolean :将使命令等待,直到用户停止。

forceFlag boolean :将强制停止用户。

退货
boolean如果用户已成功停止,则为 true。

投掷
DeviceNotAvailableException

停止用户

public boolean stopUser (int userId)

停止给定用户。如果用户已经停止,则此方法是 NOOP。无法停止当前用户和系统用户。

参数
userId int :要停止的用户。

退货
boolean如果用户已成功停止,则为 true。

投掷
DeviceNotAvailableException

支持Microdroid

public boolean supportsMicrodroid ()

检查运行微型机器人的先决条件。

退货
boolean如果满足前提条件则返回 true,否则返回 false。

支持Microdroid

public boolean supportsMicrodroid (boolean protectedVm)

检查运行微型机器人的先决条件。

参数
protectedVm boolean :如果 microdroid 打算在受保护的虚拟机上运行,​​则为 true。

退货
boolean如果满足前提条件则返回 true,否则返回 false。

切换用户

public boolean switchUser (int userId)

切换到另一个具有默认超时的用户 ID。 switchUser(int, long)

参数
userId int

退货
boolean如果新的 userId 与 userId 提供者匹配,则为 true。否则为假。

投掷
DeviceNotAvailableException

切换用户

public boolean switchUser (int userId, 
                long timeout)

切换到另一个用户 ID,并以提供的超时为截止时间。用户更改成功后尝试禁用键盘保护。

参数
userId int

timeout long :在切换用户失败返回 false 之前等待。

退货
boolean如果新的 userId 与 userId 提供者匹配,则为 true。否则为假。

投掷
DeviceNotAvailableException

采取错误报告

public Bugreport takeBugreport ()

获取错误报告并将其返回到Bugreport对象中以进行处理。如果出现问题,则返回 null。 Bugreport 对象中引用的文件需要通过Bugreport.close()进行清理。

退货
Bugreport

卸载包

public String uninstallPackage (String packageName)

从设备卸载 Android 软件包。

参数
packageName String : 要卸载的 Android 包

退货
String带有错误代码的String ,如果成功则为null

投掷
DeviceNotAvailableException

卸载用户包

public String uninstallPackageForUser (String packageName, 
                int userId)

从设备上为给定用户卸载 Android 软件包。

参数
packageName String : 要卸载的 Android 包

userId int :要卸载的整数用户 ID。

退货
String带有错误代码的String ,如果成功则为null

投掷
DeviceNotAvailableException

受保护的方法

创建解析器

protected AaptParser createParser (File appFile)

参数
appFile File

退货
AaptParser

执行AdbReboot

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

执行 adb 重启。

参数
rebootMode NativeDevice.RebootMode :重启的一种模式。

reason String :用于此次重新启动。

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

获取错误报告内部

protected InputStreamSource getBugreportInternal ()

退货
InputStreamSource

获取 BugreportzInternal

protected File getBugreportzInternal ()

将 bugreportz zip 文件作为ERROR(/File)获取的内部帮助程序方法。

退货
File

获取检查新用户睡眠

protected long getCheckNewUserSleep ()

暴露进行测试。

退货
long

获取主机当前时间

protected long getHostCurrentTime ()

暴露测试

退货
long

启动后设置前

protected void prePostBootSetup ()

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

投掷
DeviceNotAvailableException