测试设备

public interface ITestDevice
implements INativeDevice

com.android.tradefed.device.ITestDevice


为 ddmlib IDevice提供可靠且级别稍高的 API。

重试设备命令可配置的次数,并为无响应的设备提供设备恢复接口。

概括

嵌套类

class ITestDevice.ApexInfo

一个简单的结构类,用于存储有关单个 APEX 的信息

class ITestDevice.MountPointInfo

一个简单的结构类,用于存储有关单个安装点的信息

公共方法

abstract boolean canSwitchToHeadlessSystemUser ()

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

abstract boolean checkConnectivity ()

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

abstract boolean clearErrorDialogs ()

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

abstract void clearLastConnectedWifiNetwork ()

清除上次连接的 wifi 网络。

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

连接到 wifi 网络。

abstract boolean connectToWifiNetwork ( wifiSsidToPsk) connectToWifiNetwork ( wifiSsidToPsk)

连接到 wifi 网络。

abstract boolean connectToWifiNetwork (String wifiSsid, String wifiPsk)

连接到 wifi 网络。

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

连接到 wifi 网络。

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

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

abstract boolean connectToWifiNetworkIfNeeded (String wifiSsid, String wifiPsk)

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

abstract int createUser (String name)

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

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

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

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

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

abstract int createUserNoThrow (String name)

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

abstract void deregisterDeviceActionReceiver ( IDeviceActionReceiver deviceActionReceiver)

删除已注册的IDeviceActionReceiver

abstract void disableKeyguard ()

尝试禁用键盘保护。

abstract boolean disableNetworkMonitor ()

禁用设备上的网络监控。

abstract boolean disconnectFromWifi ()

与 WiFi 网络断开连接。

abstract boolean doesFileExist (String deviceFilePath, int userId)

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

abstract File dumpHeap (String process, String devicePath)

尝试从 system_server 转储堆。

abstract boolean enableNetworkMonitor ()

启用设备上的网络监控。

abstract getActiveApexes ()

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

abstract getAllSettings (String namespace)

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

abstract String getAndroidId (int userId)

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

abstract getAndroidIds ()

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

abstract PackageInfo getAppPackageInfo (String packageName)

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

abstract getAppPackageInfos ()

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

abstract InputStreamSource getBugreport ()

从设备检索错误报告。

abstract InputStreamSource getBugreportz ()

从设备检索错误报告。

abstract DeviceFoldableState getCurrentFoldableState ()

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

abstract int getCurrentUser ()

返回当前运行用户的id。

abstract getFoldableStates ()

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

abstract getInstalledPackageNames ()

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

abstract String getIpAddress ()

获取设备的IP地址。

abstract KeyguardControllerState getKeyguardState ()

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

abstract Integer getMainUserId ()

返回主用户 ID。

abstract getMainlineModuleInfo ()

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

abstract int getMaxNumberOfRunningUsersSupported ()

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

abstract int getMaxNumberOfUsersSupported ()

获取支持的最大用户数。

abstract TestDeviceOptions getOptions ()

获取设备的测试选项。

abstract Integer getPrimaryUserId ()

返回主要用户 ID。

abstract InputStreamSource getScreenshot ()

从设备抓取屏幕截图。

abstract InputStreamSource getScreenshot (String format, boolean rescale)

从设备抓取屏幕截图。

abstract InputStreamSource getScreenshot (String format)

从设备抓取屏幕截图。

abstract InputStreamSource getScreenshot (long displayId)

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

abstract String getSetting (String namespace, String key)

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

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

返回所请求设置的值。

abstract getUninstallablePackageNames ()

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

abstract int getUserFlags (int userId)

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

abstract getUserInfos ()

获取设备上 useId 到UserInfo的 Map。

abstract int getUserSerialNumber (int userId)

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

abstract boolean hasFeature (String feature)

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

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

在设备上安装 Android 软件包。

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

在设备上安装 Android 软件包。

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

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

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

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

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

安装由多个 APK 文件(一个主包和额外的拆分包)组成的 Android 应用程序。

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

安装由 Android 设备上的多个 APK 文件(一个主包和额外的拆分包)组成的 Android 应用程序。

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

为给定用户安装由多个 APK 文件(一个主包和额外的拆分包)组成的 Android 应用程序。

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

为给定用户安装由多个 APK 文件(一个主包和额外的拆分包)组成的 Android 应用程序。

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

安装由 Android 设备上的多个 APK 文件(一个主包和额外的拆分包)组成的 Android 应用程序。

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

安装由 Android 设备上的多个 APK 文件(一个主包和额外的拆分包)组成的 Android 应用程序。

abstract boolean isHeadlessSystemUserMode ()

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

abstract boolean isMainUserPermanentAdmin ()

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

abstract boolean isMultiUserSupported ()

确定是否支持多用户。

abstract boolean isPackageInstalled (String packageName)

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

abstract boolean isPackageInstalled (String packageName, String userId)

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

abstract boolean isUserRunning (int userId)

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

abstract boolean isUserSecondary (int userId)

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

abstract boolean isUserVisible (int userId)

检查给定用户是否可见。

abstract boolean isUserVisibleOnDisplay (int userId, int displayId)

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

abstract boolean isVisibleBackgroundUsersOnDefaultDisplaySupported ()

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

abstract boolean isVisibleBackgroundUsersSupported ()

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

abstract boolean isWifiEnabled ()

测试 wifi 是否已启用。

abstract listDisplayIds ()

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

abstract listDisplayIdsForStartingVisibleBackgroundUsers ()

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

abstract listUsers ()

获取设备上的用户列表。

abstract boolean logBugreport (String dataName, ITestLogger listener)

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

abstract void registerDeviceActionReceiver ( IDeviceActionReceiver deviceActionReceiver)

为此设备注册一个IDeviceActionReceiver

abstract boolean removeAdmin (String componentName, int userId)

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

abstract void removeOwners ()

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

abstract boolean removeUser (int userId)

从设备中删除给定用户。

abstract boolean setDeviceOwner (String componentName, int userId)

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

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

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

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

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

abstract boolean startUser (int userId)

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

abstract boolean startUser (int userId, boolean waitFlag)

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

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

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

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

停止给定用户。

abstract boolean stopUser (int userId)

停止给定用户。

abstract boolean switchUser (int userId)

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

abstract boolean switchUser (int userId, long timeout)

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

abstract Bugreport takeBugreport ()

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

abstract String uninstallPackage (String packageName)

从设备卸载 Android 软件包。

abstract String uninstallPackageForUser (String packageName, int userId)

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

公共方法

可以切换到Headless系统用户

public abstract boolean canSwitchToHeadlessSystemUser ()

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

退货
boolean

投掷
DeviceNotAvailableException

检查连接性

public abstract boolean checkConnectivity ()

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

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

投掷
DeviceNotAvailableException如果与设备的连接丢失且无法恢复。

清除错误对话框

public abstract boolean clearErrorDialogs ()

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

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

投掷
DeviceNotAvailableException如果与设备的连接丢失且无法恢复。

清除上次连接的 Wifi 网络

public abstract void clearLastConnectedWifiNetwork ()

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

连接到Wifi网络

public abstract 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 abstract boolean connectToWifiNetwork ( wifiSsidToPsk)

连接到 wifi 网络。

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

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

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

投掷
DeviceNotAvailableException如果与设备的连接丢失且无法恢复。

连接到Wifi网络

public abstract 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 abstract boolean connectToWifiNetwork (String wifiSsid, 
                String wifiPsk, 
                boolean scanSsid)

连接到 wifi 网络。

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

参数
wifiSsid String : 要连接的 wifi ssid

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

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

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

投掷
DeviceNotAvailableException如果与设备的连接丢失且无法恢复。

如果需要连接到 Wifi 网络

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

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

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

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

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

如果需要连接到 Wifi 网络

public abstract boolean connectToWifiNetworkIfNeeded (String wifiSsid, 
                String wifiPsk)

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

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

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

创建用户

public abstract int createUser (String name)

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

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

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

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

创建用户

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

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

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

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

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

forTesting boolean :在创建过程中启用测试标志 --for-testing

退货
int创建用户的id

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

创建用户

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

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

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

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

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

退货
int创建用户的id

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

创建用户不抛出

public abstract int createUserNoThrow (String name)

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

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

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

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

注销设备操作接收器

public abstract void deregisterDeviceActionReceiver (IDeviceActionReceiver deviceActionReceiver)

删除已注册的IDeviceActionReceiver

参数
deviceActionReceiver IDeviceActionReceiver :将被删除的IDeviceActionReceiver

禁用键盘锁

public abstract void disableKeyguard ()

尝试禁用键盘保护。

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

投掷
DeviceNotAvailableException

禁用网络监视器

public abstract boolean disableNetworkMonitor ()

禁用设备上的网络监控。

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

投掷
DeviceNotAvailableException如果与设备的连接丢失且无法恢复。

断开与Wifi的连接

public abstract boolean disconnectFromWifi ()

与 WiFi 网络断开连接。

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

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

投掷
DeviceNotAvailableException如果与设备的连接丢失且无法恢复。

文件是否存在

public abstract boolean doesFileExist (String deviceFilePath, 
                int userId)

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

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

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

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

投掷
DeviceNotAvailableException如果与设备的连接丢失且无法恢复。

转储堆

public abstract File dumpHeap (String process, 
                String devicePath)

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

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

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

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

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

启用网络监视器

public abstract boolean enableNetworkMonitor ()

启用设备上的网络监控。

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

投掷
DeviceNotAvailableException如果与设备的连接丢失且无法恢复。

获取活动顶点

public abstract  getActiveApexes ()

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

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

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

获取所有设置

public abstract  getAllSettings (String namespace)

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

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

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

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

获取AndroidId

public abstract String getAndroidId (int userId)

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

参数
userId int

退货
String

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

获取AndroidId

public abstract  getAndroidIds ()

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

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

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

获取应用程序包信息

public abstract PackageInfo getAppPackageInfo (String packageName)

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

参数
packageName String

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

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

获取应用程序包信息

public abstract  getAppPackageInfos ()

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

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

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

获取错误报告

public abstract InputStreamSource getBugreport ()

从设备检索错误报告。

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

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

获取错误报告

public abstract InputStreamSource getBugreportz ()

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

仅支持“adb 版本”> 1.0.36

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

获取当前可折叠状态

public abstract DeviceFoldableState getCurrentFoldableState ()

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

退货
DeviceFoldableState

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

获取当前用户

public abstract int getCurrentUser ()

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

退货
int

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

获取可折叠状态

public abstract  getFoldableStates ()

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

退货

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

获取安装包名称

public abstract  getInstalledPackageNames ()

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

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

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

获取IP地址

public abstract String getIpAddress ()

获取设备的IP地址。

退货
String设备的 IP 地址,如果设备没有 IP 地址,则为null

投掷
DeviceNotAvailableException如果与设备的连接丢失且无法恢复。

获取KeyguardState

public abstract KeyguardControllerState getKeyguardState ()

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

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

投掷
DeviceNotAvailableException如果与设备的连接丢失且无法恢复。

获取主用户ID

public abstract Integer getMainUserId ()

返回主用户 ID。

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

投掷
com.android.tradefed.device.DeviceNotAvailableException
DeviceRuntimeException如果设备的输出不符合预期。
DeviceNotAvailableException

获取主线模块信息

public abstract  getMainlineModuleInfo ()

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

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

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

getMaxNumberOfRunningUsersSupported

public abstract int getMaxNumberOfRunningUsersSupported ()

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

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

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

获取支持的最大用户数

public abstract int getMaxNumberOfUsersSupported ()

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

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

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

获取选项

public abstract TestDeviceOptions getOptions ()

获取设备的测试选项。

退货
TestDeviceOptions TestDeviceOptions与被测设备相关。

获取主用户ID

public abstract Integer getPrimaryUserId ()

返回主要用户 ID。

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

投掷
com.android.tradefed.device.DeviceNotAvailableException
DeviceRuntimeException如果设备的输出不符合预期。
DeviceNotAvailableException

获取屏幕截图

public abstract InputStreamSource getScreenshot ()

从设备抓取屏幕截图。

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

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

获取屏幕截图

public abstract InputStreamSource getScreenshot (String format, 
                boolean rescale)

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

参数
format String :支持PNG、JPEG

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

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

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

获取屏幕截图

public abstract InputStreamSource getScreenshot (String format)

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

参数
format String :支持PNG、JPEG

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

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

获取屏幕截图

public abstract InputStreamSource getScreenshot (long displayId)

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

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

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

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

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

获取设置

public abstract String getSetting (String namespace, 
                String key)

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

参数
namespace String

key String

退货
String

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

获取设置

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

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

参数
userId int

namespace String

key String

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

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

获取UninstallablePackageNames

public abstract  getUninstallablePackageNames ()

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

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

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

获取用户标志

public abstract int getUserFlags (int userId)

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

参数
userId int

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

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

获取用户信息

public abstract  getUserInfos ()

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

退货
UserInfo 对象的列表。

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

获取用户序列号

public abstract int getUserSerialNumber (int userId)

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

参数
userId int

退货
int

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

有特征

public abstract boolean hasFeature (String feature)

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

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

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

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

安装包

public abstract 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 abstract 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如果与设备的连接丢失且无法恢复。
UnsupportedOperationException如果设备上的平台不支持运行时权限。

为用户安装包

public abstract 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如果与设备的连接丢失且无法恢复。
UnsupportedOperationException如果设备上的平台不支持运行时权限。

为用户安装包

public abstract 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)

安装由多个 APK 文件(一个主包和额外的拆分包)组成的 Android 应用程序。请参阅“https://developer.android.com/studio/build/configure-apk-splits”了解如何将 apk 拆分为多个文件。

参数
packageFiles :本地apk文件

reinstall boolean : true如果应重新安装

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

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

投掷
DeviceNotAvailableException如果与设备的连接丢失且无法恢复。
UnsupportedOperationException如果设备上的平台不支持运行时权限。

安装包

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

安装由 Android 设备上的多个 APK 文件(一个主包和额外的拆分包)组成的 Android 应用程序。请参阅“https://developer.android.com/studio/build/configure-apk-splits”了解如何将 apk 拆分为多个文件。

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

参数
packageFiles :要安装的远程apk文件路径

reinstall boolean : true如果应重新安装

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

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

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

投掷
DeviceNotAvailableException如果与设备的连接丢失且无法恢复。
UnsupportedOperationException如果设备上的平台不支持运行时权限。

为用户安装包

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

为给定用户安装由多个 APK 文件(一个主包和额外的拆分包)组成的 Android 应用程序。请参阅“https://developer.android.com/studio/build/configure-apk-splits”了解如何将 apk 拆分为多个文件。

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

参数
packageFiles :本地apk文件

reinstall boolean : true如果应重新安装

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

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

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

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

投掷
DeviceNotAvailableException如果与设备的连接丢失且无法恢复。
UnsupportedOperationException如果设备上的平台不支持运行时权限。

为用户安装包

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

为给定用户安装由多个 APK 文件(一个主包和额外的拆分包)组成的 Android 应用程序。请参阅“https://developer.android.com/studio/build/configure-apk-splits”了解如何将 apk 拆分为多个文件。

参数
packageFiles :本地apk文件

reinstall boolean : true如果应重新安装

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

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

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

投掷
DeviceNotAvailableException如果与设备的连接丢失且无法恢复。
UnsupportedOperationException如果设备上的平台不支持运行时权限。

安装远程包

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

安装由 Android 设备上的多个 APK 文件(一个主包和额外的拆分包)组成的 Android 应用程序。请参阅“https://developer.android.com/studio/build/configure-apk-splits”了解如何将 apk 拆分为多个文件。

参数
remoteApkPaths :远程apk文件路径

reinstall boolean : true如果应重新安装

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

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

投掷
DeviceNotAvailableException如果与设备的连接丢失且无法恢复。
UnsupportedOperationException如果设备上的平台不支持运行时权限。

安装远程包

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

安装由 Android 设备上的多个 APK 文件(一个主包和额外的拆分包)组成的 Android 应用程序。请参阅“https://developer.android.com/studio/build/configure-apk-splits”了解如何将 apk 拆分为多个文件。

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

参数
remoteApkPaths :远程apk文件路径

reinstall boolean : true如果应重新安装

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

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

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

投掷
DeviceNotAvailableException如果与设备的连接丢失且无法恢复。
UnsupportedOperationException如果设备上的平台不支持运行时权限。

isHeadlessSystemUserMode

public abstract boolean isHeadlessSystemUserMode ()

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

退货
boolean

投掷
DeviceNotAvailableException

是主用户永久管理员

public abstract boolean isMainUserPermanentAdmin ()

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

退货
boolean

投掷
DeviceNotAvailableException

是否支持多用户

public abstract boolean isMultiUserSupported ()

确定是否支持多用户。

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

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

软件包已安装

public abstract boolean isPackageInstalled (String packageName)

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

参数
packageName String

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

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

软件包已安装

public abstract boolean isPackageInstalled (String packageName, 
                String userId)

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

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

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

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

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

正在运行

public abstract boolean isUserRunning (int userId)

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

参数
userId int

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

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

是用户次要的

public abstract boolean isUserSecondary (int userId)

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

参数
userId int

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

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

是否用户可见

public abstract boolean isUserVisible (int userId)

检查给定用户是否可见。

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

参数
userId int

退货
boolean

投掷
DeviceNotAvailableException

isUserVisibleOnDisplay

public abstract boolean isUserVisibleOnDisplay (int userId, 
                int displayId)

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

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

参数
userId int

displayId int

退货
boolean

投掷
DeviceNotAvailableException

isVisibleBackgroundUsersOnDefaultDisplaySupported

public abstract 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 abstract boolean isVisibleBackgroundUsersSupported ()

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

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

退货
boolean

投掷
DeviceNotAvailableException

是否启用Wifi

public abstract boolean isWifiEnabled ()

测试 wifi 是否已启用。

检查设备上是否启用了 wifi。对于在不应使用 wifi 运行的测试(例如移动数据测试)之前断言 wifi 状态很有用。

退货
boolean如果启用了 wifi,则为true 。如果禁用则为false

投掷
DeviceNotAvailableException如果与设备的连接丢失且无法恢复。

列表显示 ID

public abstract  listDisplayIds ()

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

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

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

listDisplayIdsForStartingVisibleBackgroundUsers

public abstract  listDisplayIdsForStartingVisibleBackgroundUsers ()

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

退货

投掷
DeviceNotAvailableException

列出用户

public abstract  listUsers ()

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

退货
用户 ID 列表。

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

日志错误报告

public abstract boolean logBugreport (String dataName, 
                ITestLogger listener)

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

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

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

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

注册设备动作接收器

public abstract void registerDeviceActionReceiver (IDeviceActionReceiver deviceActionReceiver)

为此设备注册一个IDeviceActionReceiver

所有已注册的IDeviceActionReceiver将在设备操作开始之前和设备操作结束之后收到通知。

参数
deviceActionReceiver IDeviceActionReceiver :将注册的IDeviceActionReceiver

删除管理员

public abstract boolean removeAdmin (String componentName, 
                int userId)

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

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

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

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

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

删除所有者

public abstract void removeOwners ()

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

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

删除用户

public abstract boolean removeUser (int userId)

从设备中删除给定用户。

参数
userId int : 要删除的用户

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

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

设置设备所有者

public abstract boolean setDeviceOwner (String componentName, 
                int userId)

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

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

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

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

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

设置设置

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

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

参数
namespace String

key String

value String

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

设置设置

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

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

参数
userId int

namespace String

key String

value String

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

启动用户

public abstract boolean startUser (int userId)

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

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

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

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

启动用户

public abstract boolean startUser (int userId, 
                boolean waitFlag)

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

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

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

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

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

启动可见背景用户

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

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

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

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

displayId int : 显示开始用户可见

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

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

投掷
DeviceNotAvailableException

停止用户

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

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

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

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

forceFlag boolean :将强制停止用户。

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

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

停止用户

public abstract boolean stopUser (int userId)

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

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

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

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

切换用户

public abstract boolean switchUser (int userId)

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

参数
userId int

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

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

切换用户

public abstract boolean switchUser (int userId, 
                long timeout)

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

参数
userId int

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

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

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

采取错误报告

public abstract Bugreport takeBugreport ()

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

退货
Bugreport

卸载包

public abstract String uninstallPackage (String packageName)

从设备卸载 Android 软件包。

参数
packageName String : 要卸载的 Android 包

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

投掷
DeviceNotAvailableException如果与设备的连接丢失且无法恢复。

卸载用户包

public abstract String uninstallPackageForUser (String packageName, 
                int userId)

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

参数
packageName String : 要卸载的 Android 包

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

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

投掷
DeviceNotAvailableException如果与设备的连接丢失且无法恢复。