NativeDevice
public
class
NativeDevice
extends Object
implements
IConfigurationReceiver,
IManagedTestDevice,
ITestLoggerReceiver
java.lang.Object | |
↳ | com.android.tradefed.device.NativeDevice |
ITestDevice
非完整堆栈 Android 设备的默认实现。
摘要
常量 | |
---|---|
int |
INVALID_USER_ID
针对任何无效/未找到的用户 ID 返回的值:UserHandle 定义了 -10000 值 |
long |
MAX_HOST_DEVICE_TIME_OFFSET
|
int |
MAX_RETRY_ATTEMPTS
要执行的默认命令重试尝试次数 |
字段 | |
---|---|
public
static
final
String |
DEBUGFS_PATH
|
protected
static
final
String |
SD_CARD
|
protected
static
final
String |
STORAGE_EMULATED
|
protected
TestDeviceOptions |
mOptions
|
protected
final
IDeviceStateMonitor |
mStateMonitor
|
公共构造函数 | |
---|---|
NativeDevice(IDevice device, IDeviceStateMonitor stateMonitor, IDeviceMonitor allocationMonitor)
创建 |
公共方法 | |
---|---|
void
|
batchPrefetchStartupBuildProps()
通过预加载我们需要的所有属性(而不是为每个属性调用“adb getprop”),实现了微优化(大约 400 毫秒)。 |
boolean
|
canSwitchToHeadlessSystemUser()
返回是否允许切换到无头 SYSTEM 用户。 |
boolean
|
checkApiLevelAgainstNextRelease(int strictMinLevel)
检查给定最低支持级别目前是否支持某项功能。 |
boolean
|
checkConnectivity()
检查设备是否已连接到网络。 |
boolean
|
clearErrorDialogs()
尝试关闭设备界面上当前显示的所有错误对话框。 |
void
|
clearLastConnectedWifiNetwork()
清除上次连接的 Wi-Fi 网络。 |
void
|
clearLogcat()
删除所有累积的 Logcat 数据。 |
boolean
|
connectToWifiNetwork(
连接到 Wi-Fi 网络。 |
boolean
|
connectToWifiNetwork(String wifiSsid, String wifiPsk)
连接到 Wi-Fi 网络。 |
boolean
|
connectToWifiNetwork(
连接到 Wi-Fi 网络。 |
boolean
|
connectToWifiNetwork(String wifiSsid, String wifiPsk, boolean scanSsid)
连接到 Wi-Fi 网络。 |
boolean
|
connectToWifiNetworkIfNeeded(String wifiSsid, String wifiPsk, boolean scanSsid)
|
boolean
|
connectToWifiNetworkIfNeeded(String wifiSsid, String wifiPsk)
|
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, int userId)
用于删除设备上的文件或目录的辅助方法。 |
void
|
deleteFile(String deviceFilePath)
用于删除设备上文件或目录的辅助方法。 |
void
|
deregisterDeviceActionReceiver(IDeviceActionReceiver deviceActionReceiver)
移除已注册的 |
boolean
|
deviceSoftRestarted(ProcessInfo prevSystemServerProcess)
一种辅助方法,用于通过比较当前的 system_server 与之前的 system_server |
boolean
|
deviceSoftRestartedSince(long utcEpochTime, TimeUnit timeUnit)
一种辅助方法,用于从设备及其 |
boolean
|
disableAdbRoot()
关闭 adb root。 |
void
|
disableKeyguard()
尝试停用屏幕锁定功能。 |
boolean
|
disableNetworkMonitor()
在设备上停用网络监控。 |
boolean
|
disconnectFromWifi()
断开 Wi-Fi 网络连接。 |
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,
辅助方法,用于将 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(
辅助方法,用于将长时间运行的 fastboot 命令作为系统命令(包含系统环境变量)执行。 |
String
|
executeShellCommand(String command)
一种辅助方法,用于执行 adb shell 命令并返回 |
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
|
executeShellV2Command(String cmd, OutputStream pipeToOutput)
一种辅助方法,用于执行 adb shell 命令并将结果作为 |
CommandResult
|
executeShellV2Command(String cmd, File pipeAsInput)
一种辅助方法,用于执行 adb shell 命令并将结果作为 |
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()
创建一个映射,将找到的 Android ID 与用户 ID 匹配。 |
int
|
getApiLevel()
获取设备 API 级别。 |
PackageInfo
|
getAppPackageInfo(String packageName)
提取设备上安装的软件包的相关信息。 |
|
getAppPackageInfos()
提取设备上安装的软件包的相关信息。 |
String
|
getBasebandVersion()
用于获取此设备的基带 (radio) 版本的便捷方法。 |
Integer
|
getBattery()
返回设备的当前电池电量;如果电池电量不可用,则返回 null。 |
boolean
|
getBooleanProperty(String name, boolean defaultValue)
返回指定属性的布尔值。 |
|
getBootHistory()
辅助方法会收集包含启动时间和启动原因的启动历史记录映射。 |
|
getBootHistorySince(long utcEpochTime, TimeUnit timeUnit)
辅助方法会收集包含自从公元纪年开始的给定时间(来自设备)和指定的时间单位以来的启动时间和启动原因的启动历史记录映射。 |
String
|
getBootloaderVersion()
用于获取此设备的引导加载程序版本的便捷方法。 |
InputStreamSource
|
getBugreport()
从设备检索 bug 报告。 |
InputStreamSource
|
getBugreportz()
从设备中检索 bugreportz。 |
String
|
getBuildAlias()
检索设备当前运行的 build 的别名。 |
String
|
getBuildFlavor()
检索设备的 build 变种。 |
String
|
getBuildId()
检索设备当前正在运行的 build。 |
String
|
getBuildSigningKeys()
返回用于为设备映像签名的密钥类型 通常,Android 设备可以使用测试密钥(如 AOSP 中)或发布密钥(由各个设备制造商控制)进行签名 |
DeviceDescriptor
|
getCachedDeviceDescriptor()
如果分配了设备,则返回缓存的 |
DeviceDescriptor
|
getCachedDeviceDescriptor(boolean shortDescriptor)
如果已分配设备,则返回缓存的 |
String[]
|
getChildren(String path)
使用 |
AbstractConnection
|
getConnection()
与设备关联的当前连接。 |
ContentProviderHandler
|
getContentProvider(int userId)
返回 |
DeviceFoldableState
|
getCurrentFoldableState()
返回设备的当前可折叠状态;如果发生了一些问题,则返回 null。 |
int
|
getCurrentUser()
返回当前正在运行的用户的 ID。 |
String
|
getDeviceClass()
获取设备类。 |
long
|
getDeviceDate()
返回设备的日期(以自公元纪年以来的毫秒数表示)。 |
DeviceDescriptor
|
getDeviceDescriptor()
从设备信息返回 |
DeviceDescriptor
|
getDeviceDescriptor(boolean shortDescriptor)
从设备信息中返回 |
TestDeviceState
|
getDeviceState()
获取设备的状态。 |
long
|
getDeviceTimeOffset(Date date)
用于获取设备与给定 |
InputStreamSource
|
getEmulatorOutput()
获取模拟器 stdout 和 stderr 的流 |
Process
|
getEmulatorProcess()
返回与此模拟器对应的 |
final
File
|
getExecuteShellCommandLog()
包含所有 |
long
|
getExternalStoreFreeSpace()
用于确定设备外部存储空间中可用空间量的辅助方法。 |
String
|
getFastbootPath()
返回正在使用的 fastboot 二进制文件的路径。 |
String
|
getFastbootProductType()
用于在设备处于 fastboot 模式时获取此设备的商品类型的便捷方法。 |
String
|
getFastbootProductVariant()
用于在设备处于 fastboot 模式时获取此设备的商品类型的便捷方法。 |
String
|
getFastbootSerialNumber()
返回 Fastboot 模式序列号。 |
String
|
getFastbootVariable(String variableName)
从设备检索指定的 fastboot 变量值。 |
String
|
getFastbootVersion()
返回正在使用的 fastboot 二进制文件的版本字符串。 |
IFileEntry
|
getFileEntry(String path)
检索设备上远程文件的引用。 |
IFileEntry
|
getFileEntry(FileListingService.FileEntry entry)
用于从非根路径获取 |
|
getFoldableStates()
返回设备上的可折叠状态列表。 |
IDevice
|
getIDevice()
返回对关联的 ddmlib |
|
getInstalledPackageNames()
提取设备上存在的应用软件包名称。 |
long
|
getIntProperty(String name, long defaultValue)
返回设备中给定属性的整数值。 |
String
|
getIpAddress()
获取设备的 IP 地址。 |
KeyguardControllerState
|
getKeyguardState()
返回一个对象以获取键盘锁的当前状态,如果不受支持,则返回 null。 |
long
|
getLastExpectedRebootTimeMillis()
返回 Tradefed API 上次触发重新启动的时间(以自纪元以来经过的毫秒数为单位),如 |
int
|
getLaunchApiLevel()
获取设备的首次启动 API 级别。 |
InputStreamSource
|
getLogcat()
抓取 Logcat 数据的快照流。 |
InputStreamSource
|
getLogcat(int maxBytes)
获取所捕获 logcat 数据的最后一个 |
InputStreamSource
|
getLogcatDump()
获取设备当前 logcat 的转储。 |
InputStreamSource
|
getLogcatSince(long date)
从提供的日期开始,获取已捕获 logcat 数据的快照流。 |
String
|
getMacAddress()
返回设备的 MAC 地址。如果无法从设备查询,则返回 null。 |
Integer
|
getMainUserId()
返回主要用户 ID。 |
|
getMainlineModuleInfo()
获取设备上安装的主线模块的相关信息。 |
int
|
getMaxNumberOfRunningUsersSupported()
获取支持的并发运行用户数上限。 |
int
|
getMaxNumberOfUsersSupported()
获取支持的用户数量上限。 |
Process
|
getMicrodroidProcess()
|
IDeviceStateMonitor
|
getMonitor()
返回与设备关联的 |
String
|
getMountPoint(String mountName)
返回一个挂载点。 |
ITestDevice.MountPointInfo
|
getMountPointInfo(String mountpoint)
返回与指定的装载点路径相对应的 |
|
getMountPointInfo()
返回设备上 /proc/mounts 中信息的解析版本 |
TestDeviceOptions
|
getOptions()
提取设备的测试选项。 |
long
|
getPartitionFreeSpace(String partition)
用于确定设备分区上可用空间量的辅助方法。 |
Integer
|
getPrimaryUserId()
返回主要用户 ID。 |
ProcessInfo
|
getProcessByName(String processName)
辅助方法会运行“pidof”和“stat”命令,并返回包含给定进程的 PID 和进程启动时间的 |
String
|
getProcessPid(String process)
返回服务的 pid,如果出错,则返回 null。 |
String
|
getProductType()
用于获取此设备的商品类型的便捷方法。 |
String
|
getProductVariant()
用于获取此设备的商品款式/规格的便捷方法。 |
String
|
getProperty(String name)
从设备检索指定的属性值。 |
ITestDevice.RecoveryMode
|
getRecoveryMode()
获取设备当前使用的恢复模式。 |
InputStreamSource
|
getScreenshot(long displayId)
从指定显示屏 ID 的设备抓取屏幕截图。 |
InputStreamSource
|
getScreenshot(String format)
从设备截取屏幕截图。 |
InputStreamSource
|
getScreenshot(String format, boolean rescale)
从设备截取屏幕截图。 |
InputStreamSource
|
getScreenshot()
从设备截取屏幕截图。 |
String
|
getSerialNumber()
用于获取此设备序列号的便捷方法。 |
String
|
getSetting(int userId, String namespace, String key)
返回请求的设置的值。 |
String
|
getSetting(String namespace, String key)
请参阅 |
String
|
getSimOperator()
返回 SIM 卡运营商,如果没有可用或设备不可用,则返回 null。 |
String
|
getSimState()
返回 SIM 卡状态,如果不可用或设备不可用,则返回 null。 |
|
getTombstones()
从设备提取并返回墓碑列表。 |
long
|
getTotalMemory()
返回总物理内存大小(以字节为单位),如果出现内部错误,则返回 -1 |
String
|
getTrackingSerial()
出于设备管理目的,请获取用于跟踪设备的序列号。 |
|
getUninstallablePackageNames()
获取可卸载的应用软件包名称。 |
boolean
|
getUseFastbootErase()
获取是使用 fastboot erase 还是 fastboot format 来擦除设备上的分区。 |
int
|
getUserFlags(int userId)
查找并返回指定用户的标志。 |
|
getUserInfos()
获取设备上 useId 与 |
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 软件包。 |
void
|
invalidatePropertyCache()
|
boolean
|
isAdbRoot()
|
boolean
|
isAdbTcp()
|
boolean
|
isAppEnumerationSupported()
检查设备上的平台是否支持应用枚举 |
boolean
|
isBypassLowTargetSdkBlockSupported()
检查设备上的平台是否支持在应用安装时绕过低目标 SDK 屏蔽 |
boolean
|
isDebugfsMounted()
检查 debugfs 是否已挂载。 |
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()
如果设备处于 |
boolean
|
isUserRunning(int userId)
检查指定用户是否正在运行。 |
boolean
|
isUserSecondary(int userId)
根据指定用户的标志返回该用户是否为次要用户。 |
boolean
|
isUserVisible(int userId)
检查指定用户是否可见。 |
boolean
|
isUserVisibleOnDisplay(int userId, int displayId)
检查指定用户是否在指定显示屏中显示。 |
boolean
|
isVisibleBackgroundUsersOnDefaultDisplaySupported()
返回设备是否允许用户在 |
boolean
|
isVisibleBackgroundUsersSupported()
返回设备是否允许用户在后台启动。 |
boolean
|
isWifiEnabled()
测试 Wi-Fi 是否已启用。 |
|
listDisplayIds()
收集“dumpsys SurfaceFlinger”报告的设备上可用显示屏 ID 的列表。 |
|
listDisplayIdsForStartingVisibleBackgroundUsers()
获取可用于 |
|
listUsers()
获取设备上的用户列表。 |
boolean
|
logAnrs(ITestLogger logger)
从设备收集 ANR 并将其记录到日志中。 |
boolean
|
logBugreport(String dataName, ITestLogger listener)
用于获取 bugreport 并将其记录到报告程序的辅助方法。 |
void
|
logOnDevice(String tag, Log.LogLevel level, String format, Object... args)
在设备的 Logcat 中记录消息。 |
void
|
mountDebugfs()
装载 debugfs。 |
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, int userId)
以递归方式从设备拉取目录内容。 |
boolean
|
pullDir(String deviceFilePath, File localDir)
以递归方式从设备拉取目录内容。 |
boolean
|
pullFile(String remoteFilePath, File localFile)
从设备检索文件。 |
File
|
pullFile(String remoteFilePath, int userId)
从设备检索文件,将其存储在本地临时 |
File
|
pullFile(String remoteFilePath)
从设备检索文件,将其存储在本地临时 |
boolean
|
pullFile(String remoteFilePath, File localFile, int userId)
从设备检索文件。 |
String
|
pullFileContents(String remoteFilePath)
从设备检索文件并返回内容。 |
File
|
pullFileFromExternal(String remoteFilePath)
一种便捷的方法,用于从设备的外部存储空间检索文件,将其存储在本地临时 |
boolean
|
pushDir(File localFileDir, String deviceFilePath,
递归地将目录内容推送到设备,同时排除一些被过滤的目录。 |
boolean
|
pushDir(File localFileDir, String deviceFilePath)
以递归方式将目录内容推送到设备。 |
boolean
|
pushDir(File localFileDir, String deviceFilePath, int userId)
以递归方式将目录内容推送到设备。 |
boolean
|
pushFile(File localFile, String remoteFilePath, boolean evaluateContentProviderNeeded)
|
boolean
|
pushFile(File localFile, String remoteFilePath)
将文件推送到设备。 |
boolean
|
pushFile(File localFile, String remoteFilePath, int userId)
将文件推送到设备。 |
boolean
|
pushString(String contents, String remoteFilePath)
将字符串创建的文件推送到设备 |
void
|
reboot(String reason)
使用指定的 |
void
|
reboot()
将设备重新启动到 adb 模式。 |
void
|
rebootIntoBootloader()
将设备重新启动到引导加载程序模式。 |
void
|
rebootIntoFastbootd()
将设备重新启动为 fastbootd 模式。 |
void
|
rebootIntoRecovery()
将设备重新启动为 adb 恢复模式。 |
void
|
rebootIntoSideload()
将设备重新启动到 adb 旁加载模式(请注意,这是恢复模式下的特殊模式) 在设备进入旁加载模式之前屏蔽 |
void
|
rebootIntoSideload(boolean autoReboot)
将设备重新启动到 adb 旁加载模式(请注意,这是恢复模式下的特殊模式) 阻塞,直到设备进入旁加载模式 |
void
|
rebootUntilOnline()
|
void
|
rebootUntilOnline(String reason)
|
void
|
rebootUserspace()
仅重启设备的用户空间部分。 |
void
|
rebootUserspaceUntilOnline()
|
boolean
|
recoverDevice()
尝试恢复设备通信。 |
void
|
registerDeviceActionReceiver(IDeviceActionReceiver deviceActionReceiver)
为此设备注册 |
void
|
remountSystemReadOnly()
将设备上的系统分区设为只读。 |
void
|
remountSystemWritable()
将设备上的系统分区设为可写入。 |
void
|
remountVendorReadOnly()
将设备上的供应商分区设为只读。 |
void
|
remountVendorWritable()
将设备上的供应商分区设为可写入。 |
boolean
|
removeAdmin(String componentName, int userId)
移除给定用户中的给定设备管理员,如果成功,则返回 |
void
|
removeOwners()
尽最大努力移除所有现有的设备个人资料所有者。 |
boolean
|
removeUser(int userId)
从设备中移除指定用户。 |
void
|
resetContentProviderSetup()
重置内容提供方设置的标志,以便再次触发该设置。 |
boolean
|
runInstrumentationTests(IRemoteAndroidTestRunner runner, ITestLifeCycleReceiver... listeners)
使用一个或多个监听器作为参数传递的便捷方法。 |
boolean
|
runInstrumentationTests(IRemoteAndroidTestRunner runner,
运行插桩测试,并提供设备恢复功能。 |
boolean
|
runInstrumentationTestsAsUser(IRemoteAndroidTestRunner runner, int userId,
|
boolean
|
runInstrumentationTestsAsUser(IRemoteAndroidTestRunner runner, int userId, ITestLifeCycleReceiver... listeners)
与 |
void
|
setConfiguration(IConfiguration configuration)
注入正在使用的 |
final
void
|
setConnectionAvdInfo(GceAvdInfo avdInfo)
|
void
|
setDate(Date date)
设置设备上的日期 注意:在设备上设置日期需要 root 权限 |
boolean
|
setDeviceOwner(String componentName, int userId)
在指定用户中将设备管理组件设为设备所有者。 |
void
|
setDeviceState(TestDeviceState deviceState)
更新设备的状态。 |
void
|
setEmulatorOutputStream(SizeLimitedOutputStream output)
对于模拟器,请将 |
void
|
setEmulatorProcess(Process p)
当此设备为模拟器时,设置 |
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)
为设备设置 |
boolean
|
setProperty(String propKey, String propValue)
在设备上设置给定属性值。 |
void
|
setRecovery(IDeviceRecovery recovery)
设置要用于此设备的 |
void
|
setRecoveryMode(ITestDevice.RecoveryMode mode)
设置要为设备使用的当前恢复模式。 |
void
|
setSetting(String namespace, String key, String value)
请参阅 |
void
|
setSetting(int userId, String namespace, String key, String value)
向给定用户的命名空间添加设置值。 |
void
|
setTestLogger(ITestLogger testLogger)
注入 |
void
|
setTrackingSerial(String trackingSerial)
出于设备管理目的,请跟踪我们用于引用设备的序列号。 |
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)
在后台启动给定用户,在给定显示屏中显示(即允许用户在该显示屏中启动 activity)。 |
void
|
stopEmulatorOutput()
关闭并删除模拟器输出。 |
void
|
stopLogcat()
停止从设备捕获 logcat 输出,并舍弃当前保存的 logcat 数据。 |
boolean
|
stopUser(int userId)
停止给定用户。 |
boolean
|
stopUser(int userId, boolean waitFlag, boolean forceFlag)
停止给定用户。 |
String
|
switchToAdbTcp()
将设备切换到 adb-over-tcp 模式。 |
boolean
|
switchToAdbUsb()
通过 USB 模式将设备切换到 adb。 |
boolean
|
switchUser(int userId)
切换到另一个 userId(默认超时)。 |
boolean
|
switchUser(int userId, long timeout)
将其他 userId 作为截止期限切换到提供的超时。 |
boolean
|
syncFiles(File localFileDir, String deviceFilePath)
将本地文件目录的内容增量同步到设备。 |
Bugreport
|
takeBugreport()
获取 bugreport 并将其返回到 |
String
|
uninstallPackage(String packageName)
从设备中卸载 Android 软件包。 |
String
|
uninstallPackageForUser(String packageName, int userId)
为指定用户从设备上卸载 Android 软件包。 |
boolean
|
unlockDevice()
如果设备处于加密状态,则解锁设备。 |
void
|
unmountDebugfs()
卸载 debugfs。 |
boolean
|
waitForBootComplete(long timeOut)
会阻塞,直到设备的启动完成标志设置完毕。 |
boolean
|
waitForDeviceAvailable()
等待设备响应迅速并可供测试。 |
boolean
|
waitForDeviceAvailable(long waitTime)
等待设备响应迅速并可供测试。 |
boolean
|
waitForDeviceAvailableInRecoverPath(long waitTime)
等待设备响应并可用,而不考虑恢复路径。 |
void
|
waitForDeviceBootloader()
阻塞,直到设备通过 fastboot 可见。 |
boolean
|
waitForDeviceInRecovery(long waitTime)
阻止设备处于“adb recovery”状态(请注意,这与 |
boolean
|
waitForDeviceInSideload(long waitTime)
阻止设备处于“adb 侧加载”状态 |
boolean
|
waitForDeviceNotAvailable(long waitTime)
导致设备不可用(即 adb 中缺失)的块 |
void
|
waitForDeviceOnline()
阻塞,直到设备可通过 adb 看到。 |
void
|
waitForDeviceOnline(long waitTime)
屏蔽,直到设备通过 adb 可见。 |
boolean
|
waitForDeviceShell(long waitTime)
等待设备响应基本 adb shell 命令。 |
受保护的方法 | |
---|---|
void
|
addExtraConnectionBuilderArgs(DefaultConnection.ConnectionBuilder builder)
|
String[]
|
buildAdbShellCommand(String command, boolean forceExitStatusDetection)
针对给定的 adb shell 命令会话和参数构建操作系统命令 |
void
|
checkApiLevelAgainst(String feature, int strictMinLevel)
|
NativeDevice.RebootDeviceAction
|
createRebootDeviceAction(NativeDevice.RebootMode rebootMode, String reason)
创建一个 |
IRunUtil
|
createRunUtil()
|
void
|
doAdbReboot(NativeDevice.RebootMode rebootMode, String reason)
执行 adb 重启。 |
void
|
ensureRuntimePermissionSupported()
在运行时权限不受支持时抛出异常的辅助方法 |
int
|
getApiLevelSafe()
|
ITestLogger
|
getLogger()
|
IRunUtil
|
getRunUtil()
获取要使用的 |
void
|
initializeConnection(IBuildInfo info, MultiMap<String, String> attributes)
|
String
|
internalGetProperty(String propName, String fastbootVar, String description)
默认情况下,从 ddmlib 缓存中提取设备属性,并回退到 `adb shell getprop` 或 `fastboot getvar`,具体取决于设备是否处于 Fastboot 模式。 |
boolean
|
isInRebootCallback()
返回当前是否正在执行重新启动回调。 |
boolean
|
isNewer(File localFile, IFileEntry entry)
如果本地文件比远程文件新,则返回 |
void
|
notifyRebootEnded()
向所有 |
void
|
notifyRebootStarted()
向所有 |
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 标记为 microdroid 并设置其 CID。 |
void
|
setTestDeviceOptions(
|
CommandResult
|
simpleFastbootCommand(long timeout,
使用环境变量执行简单的 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)
字段
DEBUGFS_PATH
public static final String DEBUGFS_PATH
SD_CARD
protected static final String SD_CARD
STORAGE_EMULATED
protected static final String STORAGE_EMULATED
公共构造函数
NativeDevice
public NativeDevice (IDevice device, IDeviceStateMonitor stateMonitor, IDeviceMonitor allocationMonitor)
创建 TestDevice
。
参数 | |
---|---|
device |
IDevice :关联的 IDevice |
stateMonitor |
IDeviceStateMonitor :要使用的 IDeviceStateMonitor 机制 |
allocationMonitor |
IDeviceMonitor :用于通知分配状态变化的 IDeviceMonitor 。
可以为 null |
公共方法
batchPrefetchStartupBuildProps
public void batchPrefetchStartupBuildProps ()
通过预加载我们需要的所有属性(而不是为每个属性调用“adb getprop”),实现了微优化(大约 400 毫秒)。即提取所有属性的速度与提取一个属性的速度一样快。device.getApiLevel()、checkApiLevelAgainstNextRelease 和 getBuildAlias 等功能都在后台调用 `adb getprop`。我们在一次调用中提取它们,然后调用 NativeDevice.setProperty。即使我们不执行此操作,NativeDevice 本身也会调用 setProperty 并缓存结果以供日后调用。我们只是提前一点进行此操作。如果设备处于恢复状态或提取属性时出现其他错误,我们会直接忽略这些错误。
canSwitchToHeadlessSystemUser
public boolean canSwitchToHeadlessSystemUser ()
返回是否允许切换到无头 SYSTEM 用户。
返回 | |
---|---|
boolean |
抛出 | |
---|---|
DeviceNotAvailableException |
checkApiLevelAgainstNextRelease
public boolean checkApiLevelAgainstNextRelease (int strictMinLevel)
根据最低支持级别,检查目前是否支持某项功能。此方法会在提高 API 级别之前考虑尚未发布的功能。
参数 | |
---|---|
strictMinLevel |
int :支持该功能的严格最低级别。 |
返回 | |
---|---|
boolean |
如果支持相应级别,则为 true。否则为 false。 |
抛出 | |
---|---|
DeviceNotAvailableException |
checkConnectivity
public boolean checkConnectivity ()
检查设备是否已连接到网络。
返回 | |
---|---|
boolean |
如果设备的网络连接正常,则为 true ;否则为 false 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
clearErrorDialogs
public boolean clearErrorDialogs ()
尝试关闭设备界面上当前显示的所有错误对话框。
返回 | |
---|---|
boolean |
如果没有对话框或对话框已成功清除,则为 true 。
否则为 false 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
clearLastConnectedWifiNetwork
public void clearLastConnectedWifiNetwork ()
清除上次连接的 Wi-Fi 网络。应在启动新的调用时调用此方法,以避免在设备重启后连接到上次测试中使用的 Wi-Fi 网络。
clearLogcat
public void clearLogcat ()
删除所有累积的 Logcat 数据。
如果您想确保 ITestDevice#getLogcat()
仅返回在特定时间点(例如刷写新的设备 build 后等)之后生成的日志数据,这非常有用。
connectToWifiNetwork
public boolean connectToWifiNetwork (wifiSsidToPsk, boolean scanSsid)
连接到 Wi-Fi 网络。
开启 Wi-Fi 并屏蔽,直到与 wifiSsidToPsk 映射中指定的某个 Wi-Fi 网络成功建立连接。建立连接后,实例会在每次重新启动后尝试恢复连接,直到调用 ITestDevice#disconnectFromWifi()
或 ITestDevice#clearLastConnectedWifiNetwork()
。
参数 | |
---|---|
wifiSsidToPsk |
:Wi-Fi SSID 到密码的映射。 |
scanSsid |
boolean :是否扫描此网络的隐藏 SSID。 |
返回 | |
---|---|
boolean |
true (如果已成功连接到 Wi-Fi 网络)。false
否则 |
抛出 | |
---|---|
DeviceNotAvailableException |
connectToWifiNetwork
public boolean connectToWifiNetwork (String wifiSsid, String wifiPsk)
连接到 Wi-Fi 网络。
开启 Wi-Fi 并屏蔽,直到成功连接到指定的 Wi-Fi 网络。
建立连接后,实例会在每次重新启动后尝试恢复连接,直到调用 ITestDevice#disconnectFromWifi()
或 ITestDevice#clearLastConnectedWifiNetwork()
。
参数 | |
---|---|
wifiSsid |
String :要连接到的 Wi-Fi SSID |
wifiPsk |
String :PSK 密码(如果未加密,则为 null) |
返回 | |
---|---|
boolean |
true (如果已成功连接到 Wi-Fi 网络)。false
otherwise |
抛出 | |
---|---|
DeviceNotAvailableException |
connectToWifiNetwork
public boolean connectToWifiNetwork (wifiSsidToPsk)
连接到 Wi-Fi 网络。
开启 Wi-Fi 并阻止,直到与 wifiSsidToPsk 映射中提供的其中一个 Wi-Fi 网络成功建立连接。建立连接后,实例会在每次重新启动后尝试恢复连接,直到调用 ITestDevice#disconnectFromWifi()
或 ITestDevice#clearLastConnectedWifiNetwork()
。
参数 | |
---|---|
wifiSsidToPsk |
:Wi-Fi SSID 与密码的映射。 |
返回 | |
---|---|
boolean |
true (如果已成功连接到 Wi-Fi 网络)。false
否则 |
抛出 | |
---|---|
DeviceNotAvailableException |
connectToWifiNetwork
public boolean connectToWifiNetwork (String wifiSsid, String wifiPsk, boolean scanSsid)
连接到 Wi-Fi 网络。
开启 Wi-Fi 并阻止,直到成功连接到指定的 Wi-Fi 网络。
建立连接后,实例会在每次重新启动后尝试恢复连接,直到调用 ITestDevice#disconnectFromWifi()
或 ITestDevice#clearLastConnectedWifiNetwork()
。
参数 | |
---|---|
wifiSsid |
String :要连接到的 Wi-Fi SSID |
wifiPsk |
String :PSK 密码(如果未加密,则为 null) |
scanSsid |
boolean :是否扫描此网络的隐藏 SSID。 |
返回 | |
---|---|
boolean |
true (如果已成功连接到 Wi-Fi 网络)。false
otherwise |
抛出 | |
---|---|
DeviceNotAvailableException |
connectToWifiNetworkIfNeeded
public boolean connectToWifiNetworkIfNeeded (String wifiSsid, String wifiPsk, boolean scanSsid)
connectToWifiNetwork(String, String)
的变体,仅在设备当前没有网络连接时才进行连接。
参数 | |
---|---|
scanSsid |
boolean :是否扫描此网络的隐藏 SSID |
返回 | |
---|---|
boolean |
true (如果已成功连接到 Wi-Fi 网络)。false
otherwise |
抛出 | |
---|---|
DeviceNotAvailableException |
connectToWifiNetworkIfNeeded
public boolean connectToWifiNetworkIfNeeded (String wifiSsid, String wifiPsk)
connectToWifiNetwork(String, String)
的变体,仅在设备当前没有网络连接时才进行连接。
返回 | |
---|---|
boolean |
true (如果已成功连接到 Wi-Fi 网络)。false
otherwise |
抛出 | |
---|---|
DeviceNotAvailableException |
createUser
public int createUser (String name, boolean guest, boolean ephemeral)
使用指定的名称和提供的标志创建用户
参数 | |
---|---|
name |
String :要在设备上创建的用户 |
guest |
boolean :在创建期间启用用户标志 --guest |
ephemeral |
boolean :在创建时启用用户标志 --ephemeral |
返回 | |
---|---|
int |
所创建用户的 ID |
抛出 | |
---|---|
DeviceNotAvailableException |
createUser
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 |
createUser
public int createUser (String name)
创建一个具有给定名称和默认标志 0 的用户。
参数 | |
---|---|
name |
String :在设备上创建的用户的级别 |
返回 | |
---|---|
int |
创建的用户 ID 对应的整数 |
抛出 | |
---|---|
DeviceNotAvailableException |
createUserNoThrow
public int createUserNoThrow (String name)
创建一个具有给定名称和默认标志 0 的用户。
参数 | |
---|---|
name |
String :在设备上创建的用户的级别 |
返回 | |
---|---|
int |
创建的用户 ID 对应的整数,如果出错,则为 -1。 |
抛出 | |
---|---|
DeviceNotAvailableException |
deleteFile
public void deleteFile (String deviceFilePath, int userId)
用于删除设备上文件或目录的辅助方法。
参数 | |
---|---|
deviceFilePath |
String :设备上文件的绝对路径。 |
userId |
int :要从中删除的用户 ID |
抛出 | |
---|---|
DeviceNotAvailableException |
deleteFile
public void deleteFile (String deviceFilePath)
用于删除设备上文件或目录的辅助方法。
参数 | |
---|---|
deviceFilePath |
String :设备上文件的绝对路径。 |
抛出 | |
---|---|
DeviceNotAvailableException |
deregisterDeviceActionReceiver
public void deregisterDeviceActionReceiver (IDeviceActionReceiver deviceActionReceiver)
移除已注册的 IDeviceActionReceiver
。
参数 | |
---|---|
deviceActionReceiver |
IDeviceActionReceiver :要移除的 IDeviceActionReceiver 。 |
deviceSoftRestarted
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)
一种辅助方法,用于从设备及其 ERROR(/TimeUnit)
检查设备自 UTC 时间起自新纪元起是否已软重启。软重启是指 system_server 在设备硬重启(例如请求重启)后重启。可通过 getDeviceDate()
方法获取当前设备 utcEpochTime(以 Milliseccond 表示)。
参数 | |
---|---|
utcEpochTime |
long :设备时间(自公元纪年起算,以秒为单位)。 |
timeUnit |
TimeUnit :给定 utcEpochTime 的时间单位 TimeUnit 。 |
返回 | |
---|---|
boolean |
true (如果设备软重启) |
抛出 | |
---|---|
DeviceNotAvailableException |
disableAdbRoot
public boolean disableAdbRoot ()
关闭 adb root。
停用 adb root 可能会导致设备与 adb 断开连接。此方法将阻塞,直到设备可用。
返回 | |
---|---|
boolean |
如果成功,则为 true 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
停用键盘锁
public void disableKeyguard ()
尝试停用屏幕锁定功能。
首先等待输入调度准备就绪,大约在设备报告 BOOT_COMPLETE 时也会发生这种情况,这明显是异步的,因为当前的框架实现偶尔会出现竞态条件。然后发送命令以关闭键盘锁(仅适用于非安全键盘)
抛出 | |
---|---|
DeviceNotAvailableException |
disableNetworkMonitor
public boolean disableNetworkMonitor ()
停用设备上的网络监控功能。
返回 | |
---|---|
boolean |
如果监控功能已成功停用,则为 true 。如果失败,则为 false 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
disconnectFromWifi
public boolean disconnectFromWifi ()
断开 Wi-Fi 网络连接。
从已知网络列表中移除所有网络,并停用 Wi-Fi。
返回 | |
---|---|
boolean |
如果成功断开与 Wi-Fi 网络的连接,则为 true ;false 。如果断开连接失败,则为 false 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
doesFileExist
public boolean doesFileExist (String deviceFilePath, int userId)
用于确定设备上是否存在给定用户的文件的辅助方法。
参数 | |
---|---|
deviceFilePath |
String :要检查的设备端文件的绝对路径 |
userId |
int :用于检查文件是否存在的用户 ID |
返回 | |
---|---|
boolean |
如果文件存在,则为 true ;否则为 false 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
doFileExist
public boolean doesFileExist (String deviceFilePath)
用于确定设备上是否存在文件的辅助方法。
参数 | |
---|---|
deviceFilePath |
String :要检查的设备上文件的绝对路径 |
返回 | |
---|---|
boolean |
如果文件存在,则为 true ;否则为 false 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
dumpHeap
public File dumpHeap (String process, String devicePath)
尝试从 system_server 转储堆。调用方负责清理转储的文件。
参数 | |
---|---|
process |
String :要转储堆的设备进程的名称。 |
devicePath |
String :设备上用于放置转储文件的路径。这必须是权限允许的位置。 |
返回 | |
---|---|
File |
包含报告的 ERROR(/File) 。如果失败,则为 null。 |
抛出 | |
---|---|
DeviceNotAvailableException |
启用 AdbRoot
public boolean enableAdbRoot ()
开启 adb root。如果“enable-root”设置为“false”,则会记录一条消息并返回,而不会启用 root。
启用 adb root 可能会导致设备与 adb 断开连接。此方法将阻塞,直到设备可用。
返回 | |
---|---|
boolean |
如果成功,则为 true 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
enableNetworkMonitor
public boolean enableNetworkMonitor ()
启用设备上的网络监控功能。
返回 | |
---|---|
boolean |
如果已成功启用监控,则为 true 。false 。如果失败,则为 false 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
executeAdbCommand
public String executeAdbCommand (long timeout, String... cmdArgs)
辅助方法,用于将 adb 命令作为系统命令以指定的超时执行。
应尽可能改用 executeShellCommand(String)
,因为该方法可提供更好的失败检测和性能。
参数 | |
---|---|
timeout |
long :表示设备无响应前的时间(以毫秒为单位),0L 表示无超时 |
cmdArgs |
String :要运行的 adb 命令和参数 |
返回 | |
---|---|
String |
命令的标准输出。如果命令执行失败,则为 null 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
executeAdbCommand
public String executeAdbCommand (long timeout,envMap, String... cmdArgs)
辅助方法,用于将 adb 命令作为系统命令以指定的超时执行。
应尽可能改用 executeShellCommand(String)
,因为该方法可提供更好的失败检测和性能。
参数 | |
---|---|
timeout |
long :设备被视为无响应之前的时间(以毫秒为单位),0L 表示无超时 |
envMap |
:为命令设置的环境 |
cmdArgs |
String :要运行的 adb 命令和参数 |
返回 | |
---|---|
String |
命令的标准输出。如果命令执行失败,则为 null 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
执行 AdbCommand
public String executeAdbCommand (String... cmdArgs)
将 adb 命令作为系统命令执行的帮助程序方法。
应尽可能改用 executeShellCommand(String)
,因为该方法可提供更好的失败检测和性能。
参数 | |
---|---|
cmdArgs |
String :要运行的 adb 命令和参数 |
返回 | |
---|---|
String |
命令的标准输出。如果命令执行失败,则为 null 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
executeFastbootCommand
public CommandResult executeFastbootCommand (String... cmdArgs)
辅助方法,用于将 fastboot 命令作为系统命令执行,默认超时时间为 2 分钟。
预计在设备已处于 fastboot 模式时使用。
参数 | |
---|---|
cmdArgs |
String :要运行的 fastboot 命令和参数 |
返回 | |
---|---|
CommandResult |
包含命令输出的 CommandResult |
抛出 | |
---|---|
DeviceNotAvailableException |
executeFastbootCommand
public CommandResult executeFastbootCommand (long timeout, String... cmdArgs)
一种辅助方法,用于将 fastboot 命令作为系统命令执行。
应在设备已处于 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 |
executeShellCommand
public String executeShellCommand (String command)
执行 adb shell 命令并将输出作为 String
返回的辅助方法。
参数 | |
---|---|
command |
String :要运行的 adb shell 命令 |
返回 | |
---|---|
String |
shell 输出 |
抛出 | |
---|---|
DeviceNotAvailableException |
executeShellCommand
public void executeShellCommand (String command, IShellOutputReceiver receiver, long maxTimeToOutputShellResponse, TimeUnit timeUnit, int retryAttempts)
执行 adb shell 命令,并提供更多参数来控制命令行为。
参数 | |
---|---|
command |
String :要运行的 adb shell 命令 |
receiver |
IShellOutputReceiver :要将 shell 输出重定向到的 IShellOutputReceiver 。 |
maxTimeToOutputShellResponse |
long :允许命令在多长时间内不输出任何响应;单位为 timeUnit 中指定的单位 |
timeUnit |
TimeUnit :maxTimeToOutputShellResponse 的单位 |
retryAttempts |
int :命令因异常而失败时的最大重试次数。如果 retryAttempts 执行失败,系统会抛出 DeviceNotResponsiveException。 |
抛出 | |
---|---|
DeviceNotAvailableException |
executeShellCommand
public void executeShellCommand (String command, IShellOutputReceiver receiver, long maxTimeoutForCommand, long maxTimeToOutputShellResponse, TimeUnit timeUnit, int retryAttempts)
执行 adb shell 命令,并提供更多参数来控制命令行为。
参数 | |
---|---|
command |
String :要运行的 adb shell 命令 |
receiver |
IShellOutputReceiver :要将 shell 输出重定向到的 IShellOutputReceiver 。 |
maxTimeoutForCommand |
long :要完成的命令的最长超时时间;单位为 timeUnit 中指定的 |
maxTimeToOutputShellResponse |
long :允许命令在多长时间内不输出任何响应;单位为 timeUnit 中指定的单位 |
timeUnit |
TimeUnit :maxTimeToOutputShellResponse 的单位 |
retryAttempts |
int :在命令因异常而失败时,最多可以重试的次数。如果执行 retryAttempts 失败,系统会抛出 DeviceNotResponsiveException。 |
抛出 | |
---|---|
DeviceNotAvailableException |
executeShellCommand
public void executeShellCommand (String command, IShellOutputReceiver receiver)
执行指定的 adb shell 命令,如果命令失败,则多次重试。
一种更简单的 executeShellCommand(String, com.android.ddmlib.IShellOutputReceiver, long, TimeUnit, int)
形式,具有默认值。
参数 | |
---|---|
command |
String :要运行的 adb shell 命令 |
receiver |
IShellOutputReceiver :要将 shell 输出重定向到的 IShellOutputReceiver 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
executeShellV2Command
public CommandResult executeShellV2Command (String cmd)
辅助方法,用于执行 adb shell 命令,并将结果作为 CommandResult
返回,其中包含已正确填充的命令状态输出、标准输出和标准错误输出。
参数 | |
---|---|
cmd |
String :应运行的命令。 |
返回 | |
---|---|
CommandResult |
CommandResult 中的结果。 |
抛出 | |
---|---|
DeviceNotAvailableException |
executeShellV2Command
public CommandResult executeShellV2Command (String cmd, OutputStream pipeToOutput)
一种辅助方法,用于执行 adb shell 命令并返回结果为 CommandResult
(已正确填充命令状态输出和 stderr)。stdout 将被定向到指定的流。
参数 | |
---|---|
cmd |
String :应运行的命令。 |
pipeToOutput |
OutputStream :要将标准输出重定向到的 ERROR(/OutputStream) ,或 null。 |
返回 | |
---|---|
CommandResult |
CommandResult 中的结果。 |
抛出 | |
---|---|
DeviceNotAvailableException |
executeShellV2Command
public CommandResult executeShellV2Command (String cmd, File pipeAsInput)
辅助方法,用于执行 adb shell 命令,并将结果作为 CommandResult
返回,其中包含已正确填充的命令状态输出、标准输出和标准错误输出。
参数 | |
---|---|
cmd |
String :应运行的命令。 |
pipeAsInput |
File :将作为输入管道传递给命令的 ERROR(/File) ,或 null。 |
返回 | |
---|---|
CommandResult |
CommandResult 中的结果。 |
抛出 | |
---|---|
DeviceNotAvailableException |
executeShellV2Command
public CommandResult executeShellV2Command (String cmd, long maxTimeoutForCommand, TimeUnit timeUnit, int retryAttempts)
执行 adb shell 命令,并提供更多参数来控制命令行为。
参数 | |
---|---|
cmd |
String :要运行的 adb shell 命令 |
maxTimeoutForCommand |
long :命令完成的超时上限;单位为 timeUnit 中指定的单位 |
timeUnit |
TimeUnit :maxTimeToOutputShellResponse 的单位 |
retryAttempts |
int :在命令因异常而失败时,最多可以重试的次数。如果执行 retryAttempts 但未成功,则会抛出 DeviceNotResponsiveException。 |
返回 | |
---|---|
CommandResult |
抛出 | |
---|---|
DeviceNotAvailableException |
executeShellV2Command
public CommandResult executeShellV2Command (String cmd, long maxTimeoutForCommand, TimeUnit timeUnit)
执行 adb shell 命令,并提供更多参数来控制命令行为。
参数 | |
---|---|
cmd |
String :要运行的 adb shell 命令 |
maxTimeoutForCommand |
long :命令完成的超时上限;单位为 timeUnit 中指定的单位 |
timeUnit |
TimeUnit :maxTimeToOutputShellResponse 的单位 |
返回 | |
---|---|
CommandResult |
抛出 | |
---|---|
DeviceNotAvailableException |
executeShellV2Command
public CommandResult executeShellV2Command (String cmd, File pipeAsInput, OutputStream pipeToOutput, long maxTimeoutForCommand, TimeUnit timeUnit, int retryAttempts)
执行 adb shell 命令,并提供更多参数来控制命令行为。
参数 | |
---|---|
cmd |
String :要运行的 adb shell 命令 |
pipeAsInput |
File :将作为命令输入的 ERROR(/File) 或 null。 |
pipeToOutput |
OutputStream :ERROR(/OutputStream) (系统将在其中重定向 std 输出)或 null。 |
maxTimeoutForCommand |
long :命令完成的超时上限;单位为 timeUnit 中指定的单位 |
timeUnit |
TimeUnit :maxTimeToOutputShellResponse 的单位 |
retryAttempts |
int :在命令因异常而失败时,最多可以重试的次数。如果执行 retryAttempts 但未成功,则会抛出 DeviceNotResponsiveException。 |
返回 | |
---|---|
CommandResult |
抛出 | |
---|---|
DeviceNotAvailableException |
executeShellV2Command
public CommandResult executeShellV2Command (String cmd, File pipeAsInput, OutputStream pipeToOutput, OutputStream pipeToError, long maxTimeoutForCommand, TimeUnit timeUnit, int retryAttempts)
执行 adb shell 命令,并提供更多参数来控制命令行为。
参数 | |
---|---|
cmd |
String :要运行的 adb shell 命令 |
pipeAsInput |
File :将作为命令输入的 ERROR(/File) 或 null。 |
pipeToOutput |
OutputStream :ERROR(/OutputStream) (系统将在其中重定向 std 输出)或 null。 |
pipeToError |
OutputStream :要将标准错误重定向到的 ERROR(/OutputStream) ,或 null。 |
maxTimeoutForCommand |
long :要完成的命令的最长超时时间;单位为 timeUnit 中指定的 |
timeUnit |
TimeUnit :maxTimeToOutputShellResponse 的单位 |
retryAttempts |
int :在命令因异常而失败时,最多可以重试的次数。如果执行 retryAttempts 但未成功,则会抛出 DeviceNotResponsiveException。 |
返回 | |
---|---|
CommandResult |
抛出 | |
---|---|
DeviceNotAvailableException |
fastbootWipePartition
public CommandResult fastbootWipePartition (String partition)
用于擦除设备分区的辅助方法。
如果 getUseFastbootErase()
为 true
,则系统会使用 fastboot erase 擦除分区。然后,设备必须在下次启动时创建文件系统。否则,系统会使用 fastboot 格式,这会在设备上创建一个新的文件系统。
应在设备已处于 fastboot 模式时使用。
参数 | |
---|---|
partition |
String :要擦除的分区 |
返回 | |
---|---|
CommandResult |
包含命令输出的 CommandResult |
抛出 | |
---|---|
DeviceNotAvailableException |
getActiveApexes
publicgetActiveApexes ()
提取有关设备上已启用的 APEX 的信息。
返回 | |
---|---|
|
设备上目前已激活 ERROR(/Set) 个(共 ApexInfo 个) |
抛出 | |
---|---|
DeviceNotAvailableException |
getAllSettings
publicgetAllSettings (String namespace)
返回请求的命名空间的键值对。
参数 | |
---|---|
namespace |
String :必须是 {"system", "secure", "global"} 之一 |
返回 | |
---|---|
|
键值对的映射。如果不支持命名空间,则为 null。 |
抛出 | |
---|---|
DeviceNotAvailableException |
getAllocationState
public DeviceAllocationState getAllocationState ()
返回设备的当前分配状态
返回 | |
---|---|
DeviceAllocationState |
getAndroidId
public String getAndroidId (int userId)
查找并返回与 userId 关联的 android-id,如果未找到,则返回 null。
参数 | |
---|---|
userId |
int |
返回 | |
---|---|
String |
抛出 | |
---|---|
DeviceNotAvailableException |
getAndroidIds
publicgetAndroidIds ()
创建一个映射,将找到的 Android ID 与用户 ID 匹配。我们无法保证每个用户 ID 都能在此函数中找到关联的 Android ID,因此某些用户 ID 可能会与 null 匹配。
返回 | |
---|---|
|
找到了与用户 ID 匹配的 Android ID 映射。 |
抛出 | |
---|---|
DeviceNotAvailableException |
getApiLevel
public int getApiLevel ()
获取设备 API 级别。默认为 UNKNOWN_API_LEVEL
。
返回 | |
---|---|
int |
一个整数,表示设备的 API 级别 |
抛出 | |
---|---|
DeviceNotAvailableException |
getAppPackageInfo
public PackageInfo getAppPackageInfo (String packageName)
提取设备上安装的软件包的相关信息。
参数 | |
---|---|
packageName |
String |
返回 | |
---|---|
PackageInfo |
PackageInfo 或 null (如果无法检索到信息) |
抛出 | |
---|---|
DeviceNotAvailableException |
getAppPackageInfos
publicgetAppPackageInfos ()
提取设备上安装的软件包的信息。
返回 | |
---|---|
|
设备上已安装 ERROR(/List) 个(共 PackageInfo 个)。 |
抛出 | |
---|---|
DeviceNotAvailableException |
getBasebandVersion
public String getBasebandVersion ()
用于获取此设备的基带(无线)版本的便捷方法。获取无线电版本因设备而异,因此可能不会针对所有设备返回正确的信息。此方法依赖于 gsm.version.baseband 属性来返回正确的版本信息。这对于某些 CDMA 设备来说并不准确,而且此处返回的版本可能与 fastboot 报告的版本不一致,并且可能不会返回 CDMA 无线装置的版本。
要点:只有当 gsm.version.baseband 属性与 fastboot getvar version-baseband
返回的版本相同时,此方法才会报告准确的版本。
返回 | |
---|---|
String |
String 基带版本,如果无法确定则为 null (设备没有无线电或无法读取版本字符串) |
抛出 | |
---|---|
DeviceNotAvailableException |
getBattery
public Integer getBattery ()
返回设备的当前电池电量;如果电池电量不可用,则返回 null。
返回 | |
---|---|
Integer |
getBooleanProperty
public boolean getBooleanProperty (String name, boolean defaultValue)
返回指定属性的布尔值。
参数 | |
---|---|
name |
String :属性名称 |
defaultValue |
boolean :如果属性为空或不存在,则返回的默认值。 |
返回 | |
---|---|
boolean |
如果属性的值为 "1" 、"y" 、"yes" 、"on" 或 "true" ,则为 true ;如果属性的值为 "0" 、"n" 、"no" 、"off" 、"false" ,则为 defaultValue ,则为 false 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
getBootHistory
publicgetBootHistory ()
辅助方法收集包含启动时间和启动原因的启动历史记录映射。
返回 | |
---|---|
|
启动时间(自公元纪年起算的世界协调时间,以秒为单位)与启动原因的映射 |
抛出 | |
---|---|
DeviceNotAvailableException |
getBootHistorySince
publicgetBootHistorySince (long utcEpochTime, TimeUnit timeUnit)
辅助方法会收集包含自从公元纪年开始的给定时间(来自设备)和指定的时间单位以来的启动时间和启动原因的启动历史记录映射。您可以通过 getDeviceDate()
方法获取当前设备的 utcEpochTime(以毫秒为单位)。
参数 | |
---|---|
utcEpochTime |
long :自公元纪年以来的设备时间。 |
timeUnit |
TimeUnit :时间单位 TimeUnit 。 |
返回 | |
---|---|
|
启动时间(自公元纪年起算的世界协调时间,以秒为单位)与启动原因的映射 |
抛出 | |
---|---|
DeviceNotAvailableException |
getBootloaderVersion
public String getBootloaderVersion ()
用于获取此设备的引导加载程序版本的便捷方法。
会尝试从设备的当前状态检索引导加载程序版本。(例如,如果设备处于 fastboot 模式,则会尝试从 fastboot 检索版本)
返回 | |
---|---|
String |
String 引导加载程序版本;如果找不到,则为 null |
抛出 | |
---|---|
DeviceNotAvailableException |
获取错误报告
public InputStreamSource getBugreport ()
从设备检索 bug 报告。
此实现保证可在没有 SD 卡(或尚未装载 SD 卡)的设备上继续正常运行。
返回 | |
---|---|
InputStreamSource |
一个 InputStreamSource ,用于按需生成 bugreport 内容。如果失败了,InputStreamSource 将生成一个空的 ERROR(/InputStream) 。 |
getBugreportz
public InputStreamSource getBugreportz ()
从设备检索 bugreportz。Zip 格式的 bugreport 包含主要 bugreport 和其他对调试有用的日志文件。
仅适用于“adb 版本”高于 1.0.36 的设备
返回 | |
---|---|
InputStreamSource |
包含 bugreportz 的 zip 文件的 InputStreamSource ,如果失败,则返回 null。 |
getBuildAlias
public String getBuildAlias ()
检索设备当前正在运行的 build 的别名。
build 别名通常比 build ID(通常是 Nexus build 的数字)可读性更强。例如,最终的 Android 4.2 版本具有 build 别名 JDQ39 和 build ID 573038
返回 | |
---|---|
String |
build 别名;如果无法检索,则回退到 build ID |
抛出 | |
---|---|
DeviceNotAvailableException |
getBuildFlavor
public String getBuildFlavor ()
检索设备的 build 变种。
返回 | |
---|---|
String |
build 变种,如果无法检索则为 null |
抛出 | |
---|---|
DeviceNotAvailableException |
getBuildId
public String getBuildId ()
检索设备当前运行的 build。
返回 | |
---|---|
String |
build ID,如果无法检索,则为 IBuildInfo#UNKNOWN_BUILD_ID |
抛出 | |
---|---|
DeviceNotAvailableException |
getBuildSigningKeys
public String getBuildSigningKeys ()
返回用于为设备映像签名的密钥类型
通常,Android 设备可能会使用测试密钥(如在 AOSP 中)或发布密钥(由各设备制造商控制)签名
返回 | |
---|---|
String |
如果找到签名密钥,则返回该密钥;否则,返回 null。 |
抛出 | |
---|---|
DeviceNotAvailableException |
getCachedDeviceDescriptor
public DeviceDescriptor getCachedDeviceDescriptor ()
如果已分配设备,则返回缓存的 DeviceDescriptor
,否则返回当前的 DeviceDescriptor
。
返回 | |
---|---|
DeviceDescriptor |
getCachedDeviceDescriptor
public DeviceDescriptor getCachedDeviceDescriptor (boolean shortDescriptor)
如果分配了设备,则返回缓存的 DeviceDescriptor
;否则,返回当前的 DeviceDescriptor
。
参数 | |
---|---|
shortDescriptor |
boolean :是否将描述符限制为仅包含必要信息 |
返回 | |
---|---|
DeviceDescriptor |
getChildren
public String[] getChildren (String path)
使用 IFileEntry
的替代方案,有时因权限问题而无法使用。
参数 | |
---|---|
path |
String :是设备上执行搜索的路径 |
返回 | |
---|---|
String[] |
包含设备路径中所有文件的字符串数组。 |
抛出 | |
---|---|
DeviceNotAvailableException |
getContentProvider
public ContentProviderHandler getContentProvider (int userId)
返回 ContentProviderHandler
,如果不可用,则返回 null。
如果内容提供程序之前是使用相同的 userId
构建的,则可以重复使用。
参数 | |
---|---|
userId |
int :用于初始化内容提供方的用户 ID。 |
返回 | |
---|---|
ContentProviderHandler |
抛出 | |
---|---|
DeviceNotAvailableException |
getCurrentFoldableState
public DeviceFoldableState getCurrentFoldableState ()
返回设备的当前可折叠状态;如果发生某些问题,则返回 null。
返回 | |
---|---|
DeviceFoldableState |
抛出 | |
---|---|
DeviceNotAvailableException |
getCurrentUser
public int getCurrentUser ()
返回当前正在运行的用户的 ID。如果发生错误,则返回 -10000。
返回 | |
---|---|
int |
抛出 | |
---|---|
DeviceNotAvailableException |
getDeviceDate
public long getDeviceDate ()
返回设备的日期(以从纪元算起的毫秒数为单位)。
返回 | |
---|---|
long |
设备的日期(采用公元纪年格式)。 |
抛出 | |
---|---|
DeviceNotAvailableException |
获取设备描述符
public DeviceDescriptor getDeviceDescriptor ()
从设备信息中返回 DeviceDescriptor
以获取其相关信息,而无需传递实际的设备对象。
返回 | |
---|---|
DeviceDescriptor |
getDeviceDescriptor
public DeviceDescriptor getDeviceDescriptor (boolean shortDescriptor)
从设备信息返回 DeviceDescriptor
,以获取其相关信息,而无需传递实际的设备对象。
参数 | |
---|---|
shortDescriptor |
boolean :是否将描述符限制为仅包含必要信息 |
返回 | |
---|---|
DeviceDescriptor |
getDeviceTimeOffset
public long getDeviceTimeOffset (Date date)
帮助获取设备与给定 ERROR(/Date)
之间的时差。在内部使用纪元时间。
参数 | |
---|---|
date |
Date |
返回 | |
---|---|
long |
以毫秒计的差值 |
抛出 | |
---|---|
DeviceNotAvailableException |
getEmulatorOutput
public InputStreamSource getEmulatorOutput ()
获取模拟器 stdout 和 stderr 的数据流
返回 | |
---|---|
InputStreamSource |
模拟器输出 |
getEmulatorProcess
public Process getEmulatorProcess ()
返回与此模拟器对应的 Process
。
返回 | |
---|---|
Process |
Process 或 null |
getExecuteShellCommandLog
public final File getExecuteShellCommandLog ()
包含所有 executeShellCommand(String)
日志的日志。
返回 | |
---|---|
File |
getExternalStoreFreeSpace
public long getExternalStoreFreeSpace ()
用于确定设备外部存储空间可用空间量的辅助方法。
返回 | |
---|---|
long |
可用空间量(以 KB 为单位) |
抛出 | |
---|---|
DeviceNotAvailableException |
getFastbootPath
public String getFastbootPath ()
返回正在使用的 fastboot 二进制文件的路径。仍需要 isFastbootEnabled()
为 true,才能启用 fastboot 函数。
返回 | |
---|---|
String |
getFastbootProductType
public String getFastbootProductType ()
用于在设备处于 fastboot 模式时获取此设备的商品类型的便捷方法。
仅当设备应处于 fastboot 模式时,才应使用此方法。在这种情况下,它比通用 getProductType()
方法稍微安全一些,因为如果设备处于错误状态或无响应,ITestDevice 会知道将设备恢复到快速启动模式。
返回 | |
---|---|
String |
String 商品类型名称,如果无法确定,则为 null |
抛出 | |
---|---|
DeviceNotAvailableException |
getFastbootProductVariant
public String getFastbootProductVariant ()
用于在设备处于 fastboot 模式时获取此设备的商品类型的便捷方法。
仅当设备应处于 fastboot 模式时,才应使用此方法。在这种情况下,它的变体比通用 getProductType()
方法更安全,因为 ITestDevice 知道在设备处于错误状态或无响应时将设备恢复到 fastboot 中。
返回 | |
---|---|
String |
String 产品类型名称;如果无法确定,则为 null |
抛出 | |
---|---|
DeviceNotAvailableException |
getFastbootSerialNumber
public String getFastbootSerialNumber ()
返回 Fastboot 模式序列号。
返回 | |
---|---|
String |
getFastbootVariable
public String getFastbootVariable (String variableName)
从设备检索指定的 fastboot 变量值。
参数 | |
---|---|
variableName |
String :变量名称 |
返回 | |
---|---|
String |
属性值,如果不存在则为 null |
抛出 | |
---|---|
DeviceNotAvailableException |
getFastbootVersion
public String getFastbootVersion ()
返回正在使用的 fastboot 二进制文件的版本字符串。或者,如果出现问题,则为 null。
返回 | |
---|---|
String |
getFileEntry
public IFileEntry getFileEntry (String path)
检索设备上远程文件的引用。
参数 | |
---|---|
path |
String :要检索的文件路径。可以是绝对路径,也可以是相对于“/”的路径。即,系统支持“/system”和“system”两种语法 |
返回 | |
---|---|
IFileEntry |
如果找不到给定 path 中的文件,则为 IFileEntry 或 null |
抛出 | |
---|---|
DeviceNotAvailableException |
getFileEntry
public IFileEntry getFileEntry (FileListingService.FileEntry entry)
非官方帮助程序,用于从非根路径获取 FileEntry
。FIXME:重构 FileEntry 系统,使其可从任何路径访问。(即使非 root 用户)。
参数 | |
---|---|
entry |
FileListingService.FileEntry :FileEntry 不一定是 Ddmlib 所要求的 root。 |
返回 | |
---|---|
IFileEntry |
表示 FileEntry 的 FileEntryWrapper。 |
抛出 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
getFoldableStates
publicgetFoldableStates ()
返回设备上的可折叠状态列表。可以使用“cmd device_state print-states”获取。
返回 | |
---|---|
|
抛出 | |
---|---|
DeviceNotAvailableException |
getIDevice
public IDevice getIDevice ()
返回对关联的 ddmlib IDevice
的引用。
每当设备断开与 adb 的连接并重新连接时,DDMS 都可能会分配一个新的 IDevice
。因此,调用方不应保留对 IDevice
的引用,因为该引用可能会过时。
返回 | |
---|---|
IDevice |
IDevice |
getInstallPackageNames
publicgetInstalledPackageNames ()
提取设备上存在的应用软件包名称。
返回 | |
---|---|
|
设备上当前安装的 String 软件包名称的 ERROR(/Set) 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
getIntProperty
public long getIntProperty (String name, long defaultValue)
返回设备中给定属性的整数值。
参数 | |
---|---|
name |
String :属性名称 |
defaultValue |
long :如果属性为空或不存在,则返回的默认值。 |
返回 | |
---|---|
long |
属性值;如果属性为空、不存在或没有整数值,则为 defaultValue 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
getIpAddress
public String getIpAddress ()
获取设备的 IP 地址。
返回 | |
---|---|
String |
设备的 IP 地址,或者 null (如果设备没有 IP 地址) |
抛出 | |
---|---|
DeviceNotAvailableException |
getKeyguardState
public KeyguardControllerState getKeyguardState ()
返回一个对象以获取屏幕锁定功能的当前状态,如果不受支持,则返回 null。
返回 | |
---|---|
KeyguardControllerState |
一个 KeyguardControllerState ,其中包含屏幕保护程序状态的快照;如果不支持屏幕保护程序查询,则返回 null。 |
抛出 | |
---|---|
DeviceNotAvailableException |
getLastExpectedRebootTimeMillis
public long getLastExpectedRebootTimeMillis ()
返回自 EPOCH 以来 Tradefed API 上次触发重新启动的时间(以毫秒为单位),由 System.currentTimeMillis()
返回。
返回 | |
---|---|
long |
getLaunchApiLevel
public int getLaunchApiLevel ()
获取设备的第一个已发布 API 级别。默认为 UNKNOWN_API_LEVEL
。
返回 | |
---|---|
int |
一个整数,表示设备的首次启动 API 级别 |
抛出 | |
---|---|
DeviceNotAvailableException |
getLogcat
public InputStreamSource getLogcat ()
抓取 Logcat 数据的快照流。
可在两种模式下运行:
TestDeviceOptions.getMaxLogcatDataSize()
字节)
返回 | |
---|---|
InputStreamSource |
getLogcat
public InputStreamSource getLogcat (int maxBytes)
抓取最近 maxBytes
个捕获的 Logcat 数据的快照流。
适用于以下情形:您想要捕获已捕获 logcat 数据频繁的快照,而又不因获取整个 getLogcat()
快照而造成磁盘空间巨大损失。
参数 | |
---|---|
maxBytes |
int :要返回的最大数据量。应是一个适合内存大小的数值 |
返回 | |
---|---|
InputStreamSource |
getLogcatDump
public InputStreamSource getLogcatDump ()
获取设备当前 logcat 的转储。与 getLogcat()
不同,此方法将始终返回 logcat 的静态转储。
缺点是,如果设备不可访问,则不会返回任何内容。
返回 | |
---|---|
InputStreamSource |
Logcat 数据的 InputStreamSource 。如果无法捕获 Logcat 数据,则返回空串流。 |
getLogcatSince
public InputStreamSource getLogcatSince (long date)
从所提供的日期开始抓取捕获的 Logcat 数据的快照流。应使用设备上的时区 getDeviceDate()
。
参数 | |
---|---|
date |
long :以自纪元以来的毫秒数表示,从开始截取快照到当前时间。
(可使用“date +%s”获取) |
返回 | |
---|---|
InputStreamSource |
getMacAddress
public String getMacAddress ()
返回设备的 MAC 地址,如果无法从设备中查询,则返回 null。
返回 | |
---|---|
String |
getMainUserId
public Integer getMainUserId ()
返回主要用户 ID。
返回 | |
---|---|
Integer |
主要用户的 userId(如果有),如果没有主要用户,则返回 null。 |
抛出 | |
---|---|
DeviceNotAvailableException |
getMainlineModuleInfo
publicgetMainlineModuleInfo ()
获取设备上安装的 Mainline 模块的相关信息。
返回 | |
---|---|
|
设备上当前安装的 String Mainline 模块的 ERROR(/Set) 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
支持运行的用户数达到上限
public int getMaxNumberOfRunningUsersSupported ()
获取支持的并发运行用户数上限。默认设置为 0。
返回 | |
---|---|
int |
一个整数,表示同时运行的用户数 |
抛出 | |
---|---|
DeviceNotAvailableException |
getMaxNumberOfUsersSupported
public int getMaxNumberOfUsersSupported ()
获取支持的用户数量上限。默认设置为 0。
返回 | |
---|---|
int |
一个整数,表示支持的用户数 |
抛出 | |
---|---|
DeviceNotAvailableException |
getMicrodroidProcess
public Process getMicrodroidProcess ()
返回 | |
---|---|
Process |
返回 Microdroid 虚拟机的进程。如果 TestDevice 不是 Microdroid,则返回 null。 |
getMonitor
public IDeviceStateMonitor getMonitor ()
返回与设备关联的 IDeviceStateMonitor
。
返回 | |
---|---|
IDeviceStateMonitor |
getMountPoint
public String getMountPoint (String mountName)
返回一个挂载点。
如果 IDevice
中的缓存信息不可用,则直接查询设备。
TODO:将此行为移至 IDevice#getMountPoint(String)
参数 | |
---|---|
mountName |
String :挂载点的名称 |
返回 | |
---|---|
String |
装载点或 null |
getMountPointInfo
public ITestDevice.MountPointInfo getMountPointInfo (String mountpoint)
返回与指定的挂载点路径对应的 MountPointInfo
;如果该路径未挂载任何内容,或者未以挂载点的形式显示在 /proc/mounts 中,则返回 null
。
参数 | |
---|---|
mountpoint |
String |
返回 | |
---|---|
ITestDevice.MountPointInfo |
包含“/proc/mounts”中信息的 MountPointInfo 的 ERROR(/List) |
抛出 | |
---|---|
DeviceNotAvailableException |
getMountPointInfo
publicgetMountPointInfo ()
返回设备上 /proc/mounts 中信息的解析版本
返回 | |
---|---|
|
包含“/proc/mounts”中信息的 MountPointInfo 的 ERROR(/List) |
抛出 | |
---|---|
DeviceNotAvailableException |
getOptions
public TestDeviceOptions getOptions ()
提取设备的测试选项。
返回 | |
---|---|
TestDeviceOptions |
与被测设备相关的 TestDeviceOptions 。 |
getPartitionFreeSpace
public long getPartitionFreeSpace (String partition)
用于确定设备分区上可用空间量的辅助方法。
参数 | |
---|---|
partition |
String |
返回 | |
---|---|
long |
可用空间量(以 KB 为单位) |
抛出 | |
---|---|
DeviceNotAvailableException |
getPrimaryUserId
public Integer getPrimaryUserId ()
返回主要用户 ID。
返回 | |
---|---|
Integer |
主要用户的 userId(如果有),如果没有主要用户,则为 null。 |
抛出 | |
---|---|
DeviceNotAvailableException |
getProcessByName
public ProcessInfo getProcessByName (String processName)
辅助方法会运行“pidof”和“stat”命令,并返回包含给定进程的 PID 和进程启动时间的 ProcessInfo
对象。
参数 | |
---|---|
processName |
String :进程名称字符串。 |
返回 | |
---|---|
ProcessInfo |
给定 processName 的 ProcessInfo |
抛出 | |
---|---|
DeviceNotAvailableException |
getProcessPid
public String getProcessPid (String process)
返回服务的 pid,如果出错,则返回 null。
参数 | |
---|---|
process |
String :进程名称字符串。 |
返回 | |
---|---|
String |
抛出 | |
---|---|
DeviceNotAvailableException |
getProductType
public String getProductType ()
用于获取此设备的商品类型的便捷方法。
如果设备处于 adb 或 fastboot 模式,此方法将有效。
返回 | |
---|---|
String |
String 商品类型名称。不会为 null |
抛出 | |
---|---|
DeviceNotAvailableException |
getProductVariant
public String getProductVariant ()
获取此设备的产品款式/规格的便捷方法。
如果设备处于 adb 或 fastboot 模式,此方法将有效。
返回 | |
---|---|
String |
String 商品款式/规格名称,如果无法确定,则为 null |
抛出 | |
---|---|
DeviceNotAvailableException |
getProperty
public String getProperty (String name)
从设备检索指定的属性值。
参数 | |
---|---|
name |
String :属性名称 |
返回 | |
---|---|
String |
属性值,如果不存在则为 null |
抛出 | |
---|---|
DeviceNotAvailableException |
getRecoveryMode
public ITestDevice.RecoveryMode getRecoveryMode ()
获取设备当前使用的恢复模式。
返回 | |
---|---|
ITestDevice.RecoveryMode |
设备当前使用的恢复模式。 |
getScreenshot
public InputStreamSource getScreenshot (long displayId)
从指定显示屏 ID 的设备抓取屏幕截图。格式为 PNG。
TODO:扩展上述实现以支持“format”和“rescale”
参数 | |
---|---|
displayId |
long :要获取屏幕截图的屏幕的显示 ID。 |
返回 | |
---|---|
InputStreamSource |
屏幕截图的 InputStreamSource (采用 .jpg 格式),如果屏幕截图未成功,则为 null 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
getScreenshot
public InputStreamSource getScreenshot (String format)
从设备截取屏幕截图。 建议改用 getScreenshot(format) 并采用 JPEG 编码,以缩减文件大小
参数 | |
---|---|
format |
String :支持 PNG、JPEG |
返回 | |
---|---|
InputStreamSource |
屏幕截图的 InputStreamSource (格式);如果屏幕截图失败,则返回 null 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
getScreenshot
public InputStreamSource getScreenshot (String format, boolean rescale)
从设备截取屏幕截图。建议改用 getScreenshot(String)
并采用 JPEG 编码,以缩减大小。
参数 | |
---|---|
format |
String :支持 PNG、JPEG |
rescale |
boolean :确定是否应重新缩放屏幕截图以减小生成图片的大小 |
返回 | |
---|---|
InputStreamSource |
屏幕截图的 InputStreamSource (采用 .jpg 格式),如果屏幕截图未成功,则为 null 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
获取屏幕截图
public InputStreamSource getScreenshot ()
从设备截取屏幕截图。
返回 | |
---|---|
InputStreamSource |
png 格式的屏幕截图的 InputStreamSource ,如果屏幕截图失败,则返回 null 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
getSetting
public String getSetting (int userId, String namespace, String key)
返回请求的设置的值。 命名空间必须为以下各项之一:{"system", "secure", "global"}
参数 | |
---|---|
userId |
int |
namespace |
String |
key |
String |
返回 | |
---|---|
String |
与用户的命名空间:键关联的值。如果未找到,则为 null。 |
抛出 | |
---|---|
DeviceNotAvailableException |
getSetting
public String getSetting (String namespace, String key)
请参阅 getSetting(int, String, String)
,并在系统用户上执行。
参数 | |
---|---|
namespace |
String |
key |
String |
返回 | |
---|---|
String |
抛出 | |
---|---|
DeviceNotAvailableException |
getSimOperator
public String getSimOperator ()
返回 SIM 卡运营商,如果没有可用或设备不可用,则返回 null。
返回 | |
---|---|
String |
getSimState
public String getSimState ()
如果 SIM 卡不可用或设备不可用,则返回 SIM 卡状态或 null。
返回 | |
---|---|
String |
getTombstone
publicgetTombstones ()
从设备提取并返回墓碑列表。需要 root 权限。
方法是尽力而为的,因此如果因任何原因而无法拉取某个墓碑,该墓碑将不会出现在列表中。只有 DeviceNotAvailableException
会提前终止该方法。
返回 | |
---|---|
|
墓碑文件列表,如果没有墓碑,则为空。 |
抛出 | |
---|---|
DeviceNotAvailableException |
getTotalMemory
public long getTotalMemory ()
返回物理内存总大小(以字节为单位),如果发生内部错误,则返回 -1
返回 | |
---|---|
long |
getTrackingSerial
public String getTrackingSerial ()
出于设备管理目的,请获取用于跟踪设备的序列号。
返回 | |
---|---|
String |
getUninstallablePackageNames
publicgetUninstallablePackageNames ()
提取可卸载的应用软件包名称。目前,这定义为非系统软件包和更新后的系统软件包。
返回 | |
---|---|
|
设备上当前安装的不可卸载的 String 软件包名称的 ERROR(/Set) 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
getUseFastbootErase
public boolean getUseFastbootErase ()
获取是使用 fastboot erase 还是 fastboot format 来擦除设备上的分区。
返回 | |
---|---|
boolean |
如果使用 fastboot 清空,则为 true ;如果使用 fastboot 格式,则为 false 。 |
getUserFlags
public int getUserFlags (int userId)
查找并返回指定用户的标志。 标志在 Android 开源项目的“android.content.pm.UserInfo”类中定义。
参数 | |
---|---|
userId |
int |
返回 | |
---|---|
int |
与所提供的 userId 相关联的标志(如果有),在任何其他情况下均为 -10000。 |
抛出 | |
---|---|
DeviceNotAvailableException |
getUserInfos
publicgetUserInfos ()
获取设备上 useId 与 UserInfo
的映射。如果设备的输出不符合预期,则会抛出 DeviceRuntimeException
。
返回 | |
---|---|
|
UserInfo 对象列表。 |
抛出 | |
---|---|
DeviceNotAvailableException |
getUserSerialNumber
public int getUserSerialNumber (int userId)
如果找到,则返回与 userId 关联的序列号,在任何其他情况下返回 -10000。
参数 | |
---|---|
userId |
int |
返回 | |
---|---|
int |
抛出 | |
---|---|
DeviceNotAvailableException |
handleAllocationEvent
public IManagedTestDevice.DeviceEventResponse handleAllocationEvent (DeviceEvent event)
处理给定的 DeviceEvent。可能会将设备转换为新状态。如有任何状态转换,将通知 IDeviceMonitor
。
处理 DeviceEvent,此操作可能会或可能不会将此设备转换为新的分配状态。
参数 | |
---|---|
event |
DeviceEvent |
返回 | |
---|---|
IManagedTestDevice.DeviceEventResponse |
hasFeature
public boolean hasFeature (String feature)
检查设备上是否提供某项功能。
参数 | |
---|---|
feature |
String :格式应为“feature: |
返回 | |
---|---|
boolean |
如果找到地图项,则返回 true;否则,返回 false。 |
抛出 | |
---|---|
DeviceNotAvailableException |
installPackage
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 |
installPackage
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 |
installPackageForUser
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 |
installPackageForUser
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 |
invalidatePropertyCache
public void invalidatePropertyCache ()
isAdbTcp
public boolean isAdbTcp ()
返回 | |
---|---|
boolean |
isAppEnumerationSupported
public boolean isAppEnumerationSupported ()
检查设备上的平台是否支持应用枚举
返回 | |
---|---|
boolean |
如果支持应用枚举,则为 true,否则为 false |
抛出 | |
---|---|
DeviceNotAvailableException |
isBypassLowTargetSdkBlockSupported
public boolean isBypassLowTargetSdkBlockSupported ()
检查设备上的平台是否支持在应用安装时绕过低目标 SDK 代码块
返回 | |
---|---|
boolean |
如果支持绕过低目标 SDK 屏蔽,则为 true;否则为 false |
抛出 | |
---|---|
DeviceNotAvailableException |
isDebugfsMounted
public boolean isDebugfsMounted ()
检查 debugfs 是否已挂载。
返回 | |
---|---|
boolean |
true (如果已装载 debugfs) |
抛出 | |
---|---|
DeviceNotAvailableException |
已加密
public boolean isDeviceEncrypted ()
如果设备经过加密,则返回 。
返回 | |
---|---|
boolean |
true (如果设备已加密)。 |
抛出 | |
---|---|
DeviceNotAvailableException |
isDirectory
public boolean isDirectory (String path)
如果设备上的路径是目录,则返回 True;否则返回 False。
参数 | |
---|---|
path |
String |
返回 | |
---|---|
boolean |
抛出 | |
---|---|
DeviceNotAvailableException |
isEnableAdbRoot
public boolean isEnableAdbRoot ()
返回 | |
---|---|
boolean |
true (如果应在设备上启用 adb root 命令) |
isEncryptionSupported
public boolean isEncryptionSupported ()
返回设备是否支持加密。
返回 | |
---|---|
boolean |
true (前提是设备支持加密)。 |
抛出 | |
---|---|
DeviceNotAvailableException |
isExecutable
public boolean isExecutable (String fullPath)
如果设备上的文件路径是可执行文件,则返回 true;否则返回 false。
参数 | |
---|---|
fullPath |
String |
返回 | |
---|---|
boolean |
抛出 | |
---|---|
DeviceNotAvailableException |
isFastbootEnabled
public boolean isFastbootEnabled ()
返回设备是否支持 fastboot。
返回 | |
---|---|
boolean |
无头
public boolean isHeadless ()
如果设备是无显示屏(无屏幕),则返回 true;否则返回 false。
返回 | |
---|---|
boolean |
抛出 | |
---|---|
DeviceNotAvailableException |
isHeadlessSystemUserMode
public boolean isHeadlessSystemUserMode ()
返回设备是否使用无头系统用户模式。
返回 | |
---|---|
boolean |
抛出 | |
---|---|
DeviceNotAvailableException |
isMainUserPermanentAdmin
public boolean isMainUserPermanentAdmin ()
返回主用户是否为永久性管理员,并且无法删除或降级为非管理员状态。
返回 | |
---|---|
boolean |
抛出 | |
---|---|
DeviceNotAvailableException |
isMultiUserSupported
public boolean isMultiUserSupported ()
确定是否支持多用户。
返回 | |
---|---|
boolean |
如果支持多用户,则为 true,否则为 false |
抛出 | |
---|---|
DeviceNotAvailableException |
isPackageInstalled
public boolean isPackageInstalled (String packageName, String userId)
针对给定的软件包名称和给定的用户 ID 查询设备,以检查该软件包当前是否已为该用户安装。
参数 | |
---|---|
packageName |
String :要检查其是否已安装的软件包。 |
userId |
String :我们要检查为哪位用户安装了软件包的用户 ID。如果为 null,则使用主要用户的零。 |
返回 | |
---|---|
boolean |
如果软件包被报告为已安装,则为 true。否则为 false。 |
抛出 | |
---|---|
DeviceNotAvailableException |
isPackageInstalled
public boolean isPackageInstalled (String packageName)
查询设备以获取给定的软件包名称,检查设备当前是否已安装。
参数 | |
---|---|
packageName |
String |
返回 | |
---|---|
boolean |
如果软件包被报告为已安装,则为 true。否则为 false。 |
抛出 | |
---|---|
DeviceNotAvailableException |
isRuntimePermissionSupported
public boolean isRuntimePermissionSupported ()
检查设备上的平台是否支持运行时权限授予
返回 | |
---|---|
boolean |
如果支持运行时权限,则为 true;否则为 false。 |
抛出 | |
---|---|
DeviceNotAvailableException |
isStateBootloaderOrFastbootd
public boolean isStateBootloaderOrFastbootd ()
如果设备处于 TestDeviceState#FASTBOOT
或 TestDeviceState.FASTBOOTD
状态,则返回 true。
返回 | |
---|---|
boolean |
isUserRunning
public boolean isUserRunning (int userId)
检查指定用户是否正在运行。
参数 | |
---|---|
userId |
int |
返回 | |
---|---|
boolean |
如果用户正在运行,则为 true;在所有其他情况下,则为 false。 |
抛出 | |
---|---|
DeviceNotAvailableException |
isUserSecondary
public boolean isUserSecondary (int userId)
根据标志返回指定用户是否为次要用户。
参数 | |
---|---|
userId |
int |
返回 | |
---|---|
boolean |
如果用户是辅助用户,则为 true;否则为 false。 |
抛出 | |
---|---|
DeviceNotAvailableException |
isUserVisible
public boolean isUserVisible (int userId)
检查指定用户是否可见。
“可见”用户是指与“真人”用户互动,因此能够启动启动 activity(通常在默认显示屏中)的用户。
参数 | |
---|---|
userId |
int |
返回 | |
---|---|
boolean |
抛出 | |
---|---|
DeviceNotAvailableException |
isUserVisibleOnDisplay
public boolean isUserVisibleOnDisplay (int userId, int displayId)
检查指定用户是否在指定显示屏中显示。
“可见”用户是指与“人类”用户互动,因此能够在该显示屏中启动启动 activity 的用户。
参数 | |
---|---|
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 |
isWifiEnabled
public boolean isWifiEnabled ()
测试 Wi-Fi 是否已启用。
检查设备上是否已启用 Wi-Fi。在不应使用 Wi-Fi 运行的测试(例如移动流量测试)之前断言 Wi-Fi 状态时非常有用。
返回 | |
---|---|
boolean |
如果 Wi-Fi 已启用,则为 true 。false (如果已停用) |
抛出 | |
---|---|
DeviceNotAvailableException |
listDisplayIds
publiclistDisplayIds ()
收集“dumpsys SurfaceFlinger”报告的设备上可用显示屏 ID 的列表。
返回 | |
---|---|
|
显示屏列表。默认值始终返回默认显示 0。 |
抛出 | |
---|---|
DeviceNotAvailableException |
listDisplayIdsForStartingVisibleBackgroundUsers
publiclistDisplayIdsForStartingVisibleBackgroundUsers ()
获取可用于 start a user visible in the background
的屏幕的列表。
返回 | |
---|---|
|
抛出 | |
---|---|
DeviceNotAvailableException |
listUsers
publiclistUsers ()
获取设备上的用户列表。如果设备的输出不符合预期,将抛出 DeviceRuntimeException
。
返回 | |
---|---|
|
用户 ID 列表。 |
抛出 | |
---|---|
DeviceNotAvailableException |
logAnrs
public boolean logAnrs (ITestLogger logger)
从设备收集并记录 ANR。
参数 | |
---|---|
logger |
ITestLogger :用于记录 ANR 的 ITestLogger 。 |
返回 | |
---|---|
boolean |
如果日志记录成功,则为 true,否则为 false。 |
抛出 | |
---|---|
DeviceNotAvailableException |
logBugreport
public boolean logBugreport (String dataName, ITestLogger listener)
用于获取 bugreport 并将其记录到报告程序的辅助方法。
参数 | |
---|---|
dataName |
String : bug 报告的报告名称。 |
listener |
ITestLogger :用于记录 bugreport 的 ITestLogger 。 |
返回 | |
---|---|
boolean |
如果记录成功,则为 true,否则为 false。 |
logOnDevice
public void logOnDevice (String tag, Log.LogLevel level, String format, Object... args)
在设备的 logcat 中记录消息。这是一个安全调用,即使日志记录失败也不会抛出异常。
参数 | |
---|---|
tag |
String :我们在 Logcat 中记录消息时所用的标记。 |
level |
Log.LogLevel :logcat 中消息的调试级别。 |
format |
String :消息格式。 |
args |
Object :要通过 String.format() 替换的参数。 |
非阻塞重新启动
public void nonBlockingReboot ()
发出重新启动设备的命令,并在命令完成且设备不再对 adb 可见时返回。
抛出 | |
---|---|
DeviceNotAvailableException |
postAdbRootAction
public void postAdbRootAction ()
如果设备需要在 adb root 之后和设备恢复在线之前执行一些特定操作,请替换此方法。 默认实现不包含任何其他操作。此阶段不保证 adb root 已启用。
抛出 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
postAdbUnrootAction
public void postAdbUnrootAction ()
如果设备在 adb 取消 root 权限后,需要在重新上线之前执行一些特定操作,请替换此值。 默认实现不包含任何其他操作。我们无法保证在此阶段停用 adb root。
抛出 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
postBootSetup
public void postBootSetup ()
按照说明配置设备,以便在每次启动后进行测试。
应在设备完全启动/可用后调用
在正常情况下,不需要明确调用此方法,因为实现应该会在执行重新启动时自动执行这些步骤。
可能需要调用此方法的情况是,设备因其他事件而重启(例如,fastboot 更新命令已完成)
抛出 | |
---|---|
DeviceNotAvailableException |
postInvocationTearDown
public void postInvocationTearDown (Throwable exception)
针对设备专用所需清理操作的额外步骤,将在调用完成后执行。
参数 | |
---|---|
exception |
Throwable :调用失败引发的最终异常(如果有)。 |
preInvocationSetup
public void preInvocationSetup (IBuildInfo info, MultiMap<String, String> attributes)
针对设备专用所需设置的额外步骤,这些步骤将在调用流程之前在设备上执行。
参数 | |
---|---|
info |
IBuildInfo :设备的 IBuildInfo 。 |
attributes |
MultiMap :存储在调用上下文中的属性 |
抛出 | |
---|---|
DeviceNotAvailableException |
|
TargetSetupError |
pullDir
public boolean pullDir (String deviceFilePath, File localDir, int userId)
以递归方式从设备中提取目录内容。
参数 | |
---|---|
deviceFilePath |
String :远程来源的绝对文件路径 |
localDir |
File :用于拉取文件的本地目录 |
userId |
int :要从中提取数据的用户 ID |
返回 | |
---|---|
boolean |
如果文件成功拉取,则为 true ;否则为 false 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
pullDir
public boolean pullDir (String deviceFilePath, File localDir)
以递归方式从设备中提取目录内容。
参数 | |
---|---|
deviceFilePath |
String :远程来源的绝对文件路径 |
localDir |
File :用于拉取文件的本地目录 |
返回 | |
---|---|
boolean |
如果文件成功拉取,则为 true ;否则为 false 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
pullFile
public boolean pullFile (String remoteFilePath, File localFile)
从设备检索文件。
参数 | |
---|---|
remoteFilePath |
String :设备上文件的绝对路径。 |
localFile |
File :用于存储内容的本地文件。如果为非空值,则内容将被替换。 |
返回 | |
---|---|
boolean |
如果成功检索到文件,则为 true ;否则为 false 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
pullFile
public File pullFile (String remoteFilePath, int userId)
从设备检索文件,将其存储在本地临时 ERROR(/File)
中,并返回该 File
。
参数 | |
---|---|
remoteFilePath |
String :设备上文件的绝对路径。 |
userId |
int :要从中提取数据的用户 ID |
返回 | |
---|---|
File |
包含设备文件内容的 ERROR(/File) ;如果复制因任何原因(包括主机文件系统的问题)失败,则为 null |
抛出 | |
---|---|
DeviceNotAvailableException |
pullFile
public File pullFile (String remoteFilePath)
从设备检索文件,将其存储在本地临时 ERROR(/File)
中,并返回该 File
。
参数 | |
---|---|
remoteFilePath |
String :设备上文件的绝对路径。 |
返回 | |
---|---|
File |
包含设备文件内容的 ERROR(/File) ;如果复制因任何原因(包括主机文件系统存在问题)而失败,则为 null |
抛出 | |
---|---|
DeviceNotAvailableException |
pullFile
public boolean pullFile (String remoteFilePath, File localFile, int userId)
从设备检索文件。
参数 | |
---|---|
remoteFilePath |
String :设备上文件的绝对路径。 |
localFile |
File :用于存储内容的本地文件。如果不为空,则会替换内容。 |
userId |
int :要从中提取数据的用户 ID |
返回 | |
---|---|
boolean |
如果成功检索到文件,则为 true ;否则为 false 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
pullFileContents
public String pullFileContents (String remoteFilePath)
从设备检索文件并返回内容。
参数 | |
---|---|
remoteFilePath |
String :设备上文件的绝对路径。 |
返回 | |
---|---|
String |
包含设备文件内容的 String ;如果复制因任何原因(包括主机文件系统存在问题)而失败,则为 null |
抛出 | |
---|---|
DeviceNotAvailableException |
pullFileFromExternal
public File pullFileFromExternal (String remoteFilePath)
一种便捷方法,用于从设备的外部存储空间检索文件,将其存储在本地临时 ERROR(/File)
中,并返回对该 File
的引用。
参数 | |
---|---|
remoteFilePath |
String :设备上文件的路径(相对于设备的外部存储挂载点) |
返回 | |
---|---|
File |
包含设备文件内容的 ERROR(/File) ;如果复制因任何原因(包括主机文件系统存在问题)而失败,则为 null |
抛出 | |
---|---|
DeviceNotAvailableException |
pushDir
public boolean pushDir (File localFileDir, String deviceFilePath,excludedDirectories)
递归地将目录内容推送到设备,同时排除一些被过滤的目录。
参数 | |
---|---|
localFileDir |
File :要推送到的本地目录 |
deviceFilePath |
String :远程目标的绝对文件路径 |
excludedDirectories |
:一组不应推送的排除目录名称。 |
返回 | |
---|---|
boolean |
如果文件已成功推送,则为 true 。否则为 false 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
pushDir
public boolean pushDir (File localFileDir, String deviceFilePath)
以递归方式将目录内容推送到设备。
参数 | |
---|---|
localFileDir |
File :要推送到的本地目录 |
deviceFilePath |
String :远程目标的绝对文件路径 |
返回 | |
---|---|
boolean |
如果文件已成功推送,则为 true 。否则为 false 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
pushDir
public boolean pushDir (File localFileDir, String deviceFilePath, int userId)
以递归方式将目录内容推送到设备。
参数 | |
---|---|
localFileDir |
File :要推送到的本地目录 |
deviceFilePath |
String :远程目的地的绝对文件路径 |
userId |
int :要推送到的用户 ID |
返回 | |
---|---|
boolean |
如果文件已成功推送,则为 true 。否则为 false 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
pushFile
public boolean pushFile (File localFile, String remoteFilePath, boolean evaluateContentProviderNeeded)
pushFile(File, String)
的变体,可视需要考虑评估对内容提供程序的需求。
参数 | |
---|---|
localFile |
File :要推送的本地文件 |
remoteFilePath |
String :远程目标绝对文件路径 |
evaluateContentProviderNeeded |
boolean :是否检查是否需要 content provider |
返回 | |
---|---|
boolean |
如果文件已成功推送,则为 true 。否则为 false 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
pushFile
public boolean pushFile (File localFile, String remoteFilePath)
将文件推送到设备。默认使用 content provider。
参数 | |
---|---|
localFile |
File :要推送的本地文件 |
remoteFilePath |
String :远程目标的绝对文件路径 |
返回 | |
---|---|
boolean |
如果文件已成功推送,则为 true 。否则为 false 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
pushFile
public boolean pushFile (File localFile, String remoteFilePath, int userId)
将文件推送到设备。默认使用 content provider。
参数 | |
---|---|
localFile |
File :要推送的本地文件 |
remoteFilePath |
String :远程目标绝对文件路径 |
userId |
int :要推送到的 userId |
返回 | |
---|---|
boolean |
如果文件已成功推送,则为 true 。否则为 false 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
pushString
public boolean pushString (String contents, String remoteFilePath)
将从字符串创建的文件推送到设备
参数 | |
---|---|
contents |
String :要推送的文件的内容 |
remoteFilePath |
String :远程目标绝对文件路径 |
返回 | |
---|---|
boolean |
如果字符串推送成功,则为 true 。否则为 false 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
重新启动
public void reboot (String reason)
使用指定的 reason
重新启动设备并进入 adb 模式,该模式会在重新启动后保留。
阻塞,直到设备可用。
您可以通过查询 sys.boot.reason
属性来获取上次重新启动的原因。
参数 | |
---|---|
reason |
String :此次重新启动的具体原因,如果未指定原因,则为 null 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
rebootIntoBootloader
public void rebootIntoBootloader ()
将设备重新启动为引导加载程序模式。
阻塞,直到设备进入引导加载程序模式。
抛出 | |
---|---|
DeviceNotAvailableException |
重新启动
public void rebootIntoFastbootd ()
将设备重新启动为 fastbootd 模式。
会阻塞,直到设备进入 fastbootd 模式。
抛出 | |
---|---|
DeviceNotAvailableException |
rebootIntoRecovery
public void rebootIntoRecovery ()
将设备重新启动为 adb 恢复模式。
阻塞,直到设备进入恢复模式
抛出 | |
---|---|
DeviceNotAvailableException |
rebootIntoSideload
public void rebootIntoSideload ()
将设备重新启动为 adb 旁加载模式(请注意,这是恢复模式下的特殊模式)
阻塞,直到设备进入旁加载模式
抛出 | |
---|---|
DeviceNotAvailableException |
rebootIntoSideload
public void rebootIntoSideload (boolean autoReboot)
将设备重新启动为 adb 旁加载模式(请注意,这是恢复模式下的特殊模式)
阻塞,直到设备进入旁加载模式
参数 | |
---|---|
autoReboot |
boolean :是否在旁加载后自动重新启动设备 |
抛出 | |
---|---|
DeviceNotAvailableException |
rebootUntilOnline
public void rebootUntilOnline ()
reboot()
的替代方案,仅会阻塞到设备处于在线状态(即对 adb 可见)为止。
抛出 | |
---|---|
DeviceNotAvailableException |
rebootUntilOnline
public void rebootUntilOnline (String reason)
reboot()
的替代方案,仅会阻塞到设备处于在线状态(即对 adb 可见)为止。
参数 | |
---|---|
reason |
String :此次重新启动的具体原因,如果未指定原因,则为 null 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
rebootUserspace
public void rebootUserspace ()
仅重启设备的用户空间部分。
阻塞,直到设备可用。
警告。用户空间重新启动功能目前正在积极开发中,使用时需自行承担风险。
抛出 | |
---|---|
DeviceNotAvailableException |
重新启动用户空间至在线状态
public void rebootUserspaceUntilOnline ()
rebootUserspace()
()} 的替代方案,仅会阻塞到设备处于在线状态(即对 adb 可见)为止。
抛出 | |
---|---|
DeviceNotAvailableException |
恢复设备
public boolean recoverDevice ()
尝试恢复设备通信。
返回 | |
---|---|
boolean |
如果尝试恢复且成功,则返回 true;如果跳过了恢复,则返回 false |
抛出 | |
---|---|
DeviceNotAvailableException |
如果设备不可用 |
registerDeviceActionReceiver
public void registerDeviceActionReceiver (IDeviceActionReceiver deviceActionReceiver)
为此设备注册 IDeviceActionReceiver
。
在设备操作开始前和结束后,系统都会通知所有已注册的 IDeviceActionReceiver
。
参数 | |
---|---|
deviceActionReceiver |
IDeviceActionReceiver :要注册的 IDeviceActionReceiver 。 |
remountSystemReadOnly
public void remountSystemReadOnly ()
将设备上的系统分区设为只读。可能会重启设备。
抛出 | |
---|---|
DeviceNotAvailableException |
remountSystemWritable
public void remountSystemWritable ()
将设备上的系统分区设为可写入。可能会重启设备。
抛出 | |
---|---|
DeviceNotAvailableException |
remountVendorReadOnly
public void remountVendorReadOnly ()
将设备上的供应商分区设为只读。可能会重启设备。
抛出 | |
---|---|
DeviceNotAvailableException |
可重新装载供应商可写
public void remountVendorWritable ()
将设备上的供应商分区设为可写入。可能会重启设备。
抛出 | |
---|---|
DeviceNotAvailableException |
removeAdmin
public boolean removeAdmin (String componentName, int userId)
移除指定用户中的指定设备管理员,如果成功,则返回 true
;否则,返回 false
。
参数 | |
---|---|
componentName |
String :要移除的设备管理员的 ID。 |
userId |
int :设备管理员所在的用户账号。 |
返回 | |
---|---|
boolean |
如果成功,则为 true,否则为 false。 |
抛出 | |
---|---|
DeviceNotAvailableException |
removeUser
public boolean removeUser (int userId)
从设备中移除指定用户。
参数 | |
---|---|
userId |
int :要移除的用户 |
返回 | |
---|---|
boolean |
如果成功移除了用户,则为 true,否则为 false。 |
抛出 | |
---|---|
DeviceNotAvailableException |
resetContentProviderSetup(重置内容提供程序设置)
public void resetContentProviderSetup ()
请重置 content provider 设置的标志,以便再次触发此操作。
runInstrumentationTests
public boolean runInstrumentationTests (IRemoteAndroidTestRunner runner, ITestLifeCycleReceiver... listeners)
一种便捷方法,用于将一个或多个监听器作为参数传递,以执行 ERROR(/#runInstrumentationTests(com.android.ddmlib.testrunner.IRemoteAndroidTestRunner,Collection))
。
参数 | |
---|---|
runner |
IRemoteAndroidTestRunner :运行测试的 IRemoteAndroidTestRunner |
listeners |
ITestLifeCycleReceiver :测试结果监听器 |
返回 | |
---|---|
boolean |
如果测试命令已完成,则为 true 。如果未能完成,但恢复成功,则为 false |
抛出 | |
---|---|
DeviceNotAvailableException |
runInstrumentationTest
public boolean runInstrumentationTests (IRemoteAndroidTestRunner runner,listeners)
运行插桩测试,并提供设备恢复功能。
如果在测试运行完成之前与设备断开连接,并且恢复成功,系统会通知所有监听器 testRunFailed,并返回“false”。系统不会重新运行测试命令。如有必要,可由调用方重试。
如果在测试运行完成之前与设备断开连接,并且恢复失败,系统会通知所有监听器 testRunFailed,并抛出 DeviceNotAvailableException。
参数 | |
---|---|
runner |
IRemoteAndroidTestRunner :运行测试的 IRemoteAndroidTestRunner |
listeners |
:测试结果监听器 |
返回 | |
---|---|
boolean |
如果测试命令已完成,则为 true 。false (如果由于设备通信异常而未能完成,但恢复成功) |
抛出 | |
---|---|
DeviceNotAvailableException |
runInstrumentationTestsAsUser
public boolean runInstrumentationTestsAsUser (IRemoteAndroidTestRunner runner, int userId,listeners)
参数 | |
---|---|
runner |
IRemoteAndroidTestRunner |
userId |
int |
listeners |
|
返回 | |
---|---|
boolean |
抛出 | |
---|---|
DeviceNotAvailableException |
runInstrumentationTestsAsUser
public boolean runInstrumentationTestsAsUser (IRemoteAndroidTestRunner runner, int userId, ITestLifeCycleReceiver... listeners)
与 ITestDevice#runInstrumentationTests(IRemoteAndroidTestRunner,
ITestLifeCycleReceiver...)
相同,但会为指定用户运行测试。
参数 | |
---|---|
runner |
IRemoteAndroidTestRunner |
userId |
int |
listeners |
ITestLifeCycleReceiver |
返回 | |
---|---|
boolean |
抛出 | |
---|---|
DeviceNotAvailableException |
setConfiguration
public void setConfiguration (IConfiguration configuration)
注入正在使用的 IConfiguration
。
参数 | |
---|---|
configuration |
IConfiguration |
setConnectionAvdInfo
public final void setConnectionAvdInfo (GceAvdInfo avdInfo)
参数 | |
---|---|
avdInfo |
GceAvdInfo |
setDate
public void setDate (Date date)
设置设备上的日期
注意:在设备上设置日期需要 root 权限
参数 | |
---|---|
date |
Date :指定特定日期;如果为 null ,则使用主机日期 |
抛出 | |
---|---|
DeviceNotAvailableException |
setDeviceOwner
public boolean setDeviceOwner (String componentName, int userId)
在指定用户中将设备管理组件设为设备所有者。
参数 | |
---|---|
componentName |
String :将设备管理员设为设备所有者。 |
userId |
int :设备所有者所在用户的名称。 |
返回 | |
---|---|
boolean |
如果成功,则为 true,否则为 false。 |
抛出 | |
---|---|
DeviceNotAvailableException |
setDeviceState
public void setDeviceState (TestDeviceState deviceState)
更新设备的状态。
参数 | |
---|---|
deviceState |
TestDeviceState :TestDeviceState |
setEmulatorOutputStream
public void setEmulatorOutputStream (SizeLimitedOutputStream output)
对于模拟器,设置 SizeLimitedOutputStream
以记录输出
参数 | |
---|---|
output |
SizeLimitedOutputStream :用于记录输出 |
setFastbootEnabled
public void setFastbootEnabled (boolean fastbootEnabled)
为设备设置 fastboot 选项。应在首次分配设备时进行设置。
参数 | |
---|---|
fastbootEnabled |
boolean :设备是否支持 fastboot |
setFastbootPath
public void setFastbootPath (String fastbootPath)
设置应使用的 fastboot 二进制文件的路径。
仍需要将 isFastbootEnabled()
设为 true,才能启用 fastboot 功能。
参数 | |
---|---|
fastbootPath |
String |
setIDevice
public void setIDevice (IDevice newDevice)
更新与此 ITestDevice 关联的 IDevice。
新的 IDevice 必须引用与当前引用相同的物理设备。如果 DDMS 分配了新的 IDevice,系统会调用此方法
参数 | |
---|---|
newDevice |
IDevice :IDevice |
setLogStartDelay
public void setLogStartDelay (int delay)
设置在开始为在线设备捕获 Logcat 数据之前等待的时间(以毫秒为单位)。
参数 | |
---|---|
delay |
int :延迟时间(毫秒) |
setOptions
public void setOptions (TestDeviceOptions options)
为设备设置 TestDeviceOptions
参数 | |
---|---|
options |
TestDeviceOptions |
setProperty
public boolean setProperty (String propKey, String propValue)
在设备上设置给定属性值。“Requires adb root”为 true。
参数 | |
---|---|
propKey |
String :要设置的目标键。 |
propValue |
String :要设置的属性值。 |
返回 | |
---|---|
boolean |
如果 setprop 命令成功,则返回 True ;否则,返回 False。 |
抛出 | |
---|---|
DeviceNotAvailableException |
setRecovery
public void setRecovery (IDeviceRecovery recovery)
设置要用于此设备的 IDeviceRecovery
。应在首次分配设备时进行设置。
参数 | |
---|---|
recovery |
IDeviceRecovery :IDeviceRecovery |
setRecoveryMode
public void setRecoveryMode (ITestDevice.RecoveryMode mode)
设置要为设备使用的当前恢复模式。
用于控制在遇到设备通信问题时要使用哪种恢复方法。建议仅在必要时(例如框架宕机等)谨慎使用此方法
参数 | |
---|---|
mode |
ITestDevice.RecoveryMode :是否应开启“仅在恢复时上网”模式。 |
setSetting
public void setSetting (String namespace, String key, String value)
请参阅 setSetting(int, String, String, String)
,并在系统用户上执行。
参数 | |
---|---|
namespace |
String |
key |
String |
value |
String |
抛出 | |
---|---|
DeviceNotAvailableException |
setSetting
public void setSetting (int userId, String namespace, String key, String value)
向给定用户的命名空间添加设置值。部分设置只有在重新启动后才可用。命名空间必须为以下各项之一:{"system", "secure", "global"}
参数 | |
---|---|
userId |
int |
namespace |
String |
key |
String |
value |
String |
抛出 | |
---|---|
DeviceNotAvailableException |
setTestLogger
public void setTestLogger (ITestLogger testLogger)
注入 ITestLogger
实例
参数 | |
---|---|
testLogger |
ITestLogger |
setTrackingSerial
public void setTrackingSerial (String trackingSerial)
出于设备管理目的,请跟踪我们用于引用设备的序列号。
参数 | |
---|---|
trackingSerial |
String |
setUseFastbootErase
public void setUseFastbootErase (boolean useFastbootErase)
设置是使用 fastboot erase 还是 fastboot format 来擦除设备上的分区。
参数 | |
---|---|
useFastbootErase |
boolean :如果应使用 fastboot 清除,则为 true ;如果应使用 fastboot 格式化,则为 false 。 |
startLogcat
public void startLogcat ()
开始在后台从设备捕获 logcat 输出。
如果系统已在捕获 Logcat 输出,则不会产生任何影响。 您稍后可以通过 getLogcat 检索数据。
当设备不再使用时,必须调用 stopLogcat()
。
在 TF 调用上下文中,通常不需要调用 startLogcat()
和 stopLogcat()
,因为 TF 框架会启动和停止 Logcat。
startUser
public boolean startUser (int userId)
如果给定用户当前处于停止状态,则在后台启动该用户。如果用户已在后台运行,此方法将执行无操作。
参数 | |
---|---|
userId |
int :要后台启动的用户 |
返回 | |
---|---|
boolean |
如果用户在后台成功启动,则为 true。 |
抛出 | |
---|---|
DeviceNotAvailableException |
startUser
public boolean startUser (int userId, boolean waitFlag)
如果给定用户当前处于停止状态,则在后台启动该用户。如果用户已在后台运行,此方法将执行无操作。可以提供额外的标志来等待操作生效。
参数 | |
---|---|
userId |
int :要后台启动的用户 |
waitFlag |
boolean :会让命令等待用户启动并解锁。 |
返回 | |
---|---|
boolean |
如果用户在后台成功启动,则为 true。 |
抛出 | |
---|---|
DeviceNotAvailableException |
startVisibleBackgroundUser
public boolean startVisibleBackgroundUser (int userId, int displayId, boolean waitFlag)
在后台启动给定用户,并在给定显示屏中显示(即允许用户在该显示屏中启动 activity)。
注意 :此命令不会检查用户是否存在、显示是否可用、device supports such feature
等。
参数 | |
---|---|
userId |
int :要后台启动的用户 |
displayId |
int :用户开始可见的显示屏 |
waitFlag |
boolean :会使该命令等待用户启动并解锁。 |
返回 | |
---|---|
boolean |
true ,如果用户已成功启动并在后台显示。 |
抛出 | |
---|---|
DeviceNotAvailableException |
stopEmulatorOutput
public void stopEmulatorOutput ()
关闭并删除模拟器输出。
stopLogcat
public void stopLogcat ()
停止从设备捕获 logcat 输出,并舍弃当前保存的 logcat 数据。
如果未捕获 Logcat 输出,则不会产生任何影响。
stopUser
public boolean stopUser (int userId)
停止给定用户。如果用户已停止,此方法将执行无操作。 无法停止当前用户和系统用户。
参数 | |
---|---|
userId |
int :要停止的用户。 |
返回 | |
---|---|
boolean |
如果用户已成功停止,则为 true。 |
抛出 | |
---|---|
DeviceNotAvailableException |
stopUser
public boolean stopUser (int userId, boolean waitFlag, boolean forceFlag)
停止给定用户。可以提供额外的标志来等待操作生效,并强制终止用户。无法停止当前用户和系统用户。
参数 | |
---|---|
userId |
int :要停止的用户。 |
waitFlag |
boolean :会让命令等待用户停止。 |
forceFlag |
boolean :会强制停止用户。 |
返回 | |
---|---|
boolean |
如果用户已成功停止,则为 true。 |
抛出 | |
---|---|
DeviceNotAvailableException |
switchToAdbTcp
public String switchToAdbTcp ()
将设备切换到 adb-over-tcp 模式。
返回 | |
---|---|
String |
tcp 序列号,如果无法切换设备,则为 null |
抛出 | |
---|---|
DeviceNotAvailableException |
switchToAdbUsb
public boolean switchToAdbUsb ()
将设备切换到 adb over usb 模式。
返回 | |
---|---|
boolean |
如果切换成功,则为 true ,否则为 false 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
切换用户
public boolean switchUser (int userId)
切换到另一个 userId(默认超时)。switchUser(int, long)
。
参数 | |
---|---|
userId |
int |
返回 | |
---|---|
boolean |
如果新 userId 与 userId 提供程序匹配,则为 true。否则为 false。 |
抛出 | |
---|---|
DeviceNotAvailableException |
switchUser
public boolean switchUser (int userId, long timeout)
切换到另一个 userId,并将提供的超时作为截止时间。 在用户更改成功后尝试停用屏幕锁定。
参数 | |
---|---|
userId |
int |
timeout |
long :在切换用户失败后,等待一段时间再返回 false。 |
返回 | |
---|---|
boolean |
如果新 userId 与 userId 提供程序匹配,则为 true。否则为 false。 |
抛出 | |
---|---|
DeviceNotAvailableException |
syncFiles
public boolean syncFiles (File localFileDir, String deviceFilePath)
将本地文件目录的内容增量同步到设备。
通过比较本地文件的时间戳与其远程等效文件的时间戳,确定要推送的文件。系统只会将“较新”或不存在的文件推送到设备。因此,如果设备上的文件设置已是最新的,开销应该相对较小。
系统会忽略隐藏文件(名称以“.”开头)。
用法示例:syncFiles("/tmp/files", "/sdcard") 会创建 /sdcard/files 目录(如果尚不存在),并递归地将 /tmp/files 内容推送到 /sdcard/files。
参数 | |
---|---|
localFileDir |
File :包含要以递归方式推送的文件的本地文件目录。 |
deviceFilePath |
String :远程目标的绝对文件路径根目录。此文件路径中的所有目录都必须可读。例如,当 adb 不是 root 用户时,推送到 /data/local/tmp 将会失败 |
返回 | |
---|---|
boolean |
如果文件已成功同步,则为 true ;否则为 false 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
takeBugreport
public Bugreport takeBugreport ()
获取 bug 报告并在 Bugreport
对象内返回该报告进行处理。如果出现问题,则返回 null。Bugreport 对象中引用的文件需要通过 Bugreport.close()
进行清理。
返回 | |
---|---|
Bugreport |
uninstallPackage
public String uninstallPackage (String packageName)
从设备中卸载 Android 软件包。
参数 | |
---|---|
packageName |
String :要卸载的 Android 软件包 |
返回 | |
---|---|
String |
包含错误代码的 String ,如果成功,则为 null 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
downloadPackageForUser
public String uninstallPackageForUser (String packageName, int userId)
从设备中卸载指定用户的 Android 软件包。
参数 | |
---|---|
packageName |
String :要卸载的 Android 软件包 |
userId |
int :要为其卸载的整数用户 ID。 |
返回 | |
---|---|
String |
包含错误代码的 String ,如果成功,则为 null 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
unlockDevice
public boolean unlockDevice ()
如果设备处于加密状态,则解锁设备。
此方法可能会重启框架,但不会调用postBootSetup()
。因此,当此方法返回时,设备可能尚未完全准备好进行测试。
返回 | |
---|---|
boolean |
如果成功或设备未加密,则为 true 。 |
抛出 | |
---|---|
DeviceNotAvailableException |
waitForBootComplete
public boolean waitForBootComplete (long timeOut)
会阻塞,直到设备的启动完成标志设置完毕。
参数 | |
---|---|
timeOut |
long :等待设置标志的时间(以毫秒为单位) |
返回 | |
---|---|
boolean |
如果设备的启动完成标志在超时内设置,则为 true |
抛出 | |
---|---|
DeviceNotAvailableException |
waitForDeviceAvailable
public boolean waitForDeviceAvailable ()
等待设备响应并可供测试。使用默认超时。
返回 | |
---|---|
boolean |
如果设备可用,则为 true;如果恢复已停用且不可用,则为 false。 |
抛出 | |
---|---|
DeviceNotAvailableException |
waitForDeviceAvailable
public boolean waitForDeviceAvailable (long waitTime)
等待设备做出响应并可供测试。
参数 | |
---|---|
waitTime |
long :等待时间(以毫秒为单位) |
返回 | |
---|---|
boolean |
如果设备可用,则为 true;如果恢复已停用且不可用,则为 false。 |
抛出 | |
---|---|
DeviceNotAvailableException |
waitForDeviceAvailableInRecoverPath
public boolean waitForDeviceAvailableInRecoverPath (long waitTime)
等待设备响应并可用,而不考虑恢复路径。
参数 | |
---|---|
waitTime |
long |
返回 | |
---|---|
boolean |
如果设备可用,则为 true;如果不可用,则为 false。 |
抛出 | |
---|---|
DeviceNotAvailableException |
waitForDeviceBootloader
public void waitForDeviceBootloader ()
阻塞,直到设备通过 fastboot 可见。使用默认超时。
抛出 | |
---|---|
DeviceNotAvailableException |
等待设备恢复
public boolean waitForDeviceInRecovery (long waitTime)
阻止设备进入“adb recovery”状态(请注意,这与 IDeviceRecovery
不同)。
参数 | |
---|---|
waitTime |
long :等待时间(以毫秒为单位) |
返回 | |
---|---|
boolean |
如果设备在时间到期之前启动到恢复模式,则为 true 。否则为 false |
waitForDeviceInSideload
public boolean waitForDeviceInSideload (long waitTime)
阻止设备处于“adb 旁加载”状态的屏蔽规则
参数 | |
---|---|
waitTime |
long :等待时间(以毫秒为单位) |
返回 | |
---|---|
boolean |
如果设备在超时之前启动到旁加载模式,则为 true 。否则返回 false
|
waitForDeviceNotAvailable
public boolean waitForDeviceNotAvailable (long waitTime)
导致设备不可用(即 adb 中缺失)的块
参数 | |
---|---|
waitTime |
long :等待时间(以毫秒为单位) |
返回 | |
---|---|
boolean |
如果设备在时间到期之前变为不可用状态,则为 true 。
否则返回 false |
等待设备在线
public void waitForDeviceOnline ()
阻塞,直到设备可通过 adb 看到。使用默认超时
请注意,设备未必能在完成后对命令做出响应。请改用 waitForDeviceAvailable()
。
抛出 | |
---|---|
DeviceNotAvailableException |
waitForDeviceOnline
public void waitForDeviceOnline (long waitTime)
阻塞,直到设备可通过 adb 看到。
请注意,设备在完成后可能不一定会响应命令。请改用 waitForDeviceAvailable()
。
参数 | |
---|---|
waitTime |
long :等待时间(以毫秒为单位) |
抛出 | |
---|---|
DeviceNotAvailableException |
waitForDeviceShell
public boolean waitForDeviceShell (long waitTime)
等待设备响应基本 adb shell 命令。
参数 | |
---|---|
waitTime |
long :等待时间(以毫秒为单位) |
返回 | |
---|---|
boolean |
如果设备在 waitTime 过期之前有响应,则返回 true 。 |
受保护的方法
addExtraConnectionBuilderArgs
protected void addExtraConnectionBuilderArgs (DefaultConnection.ConnectionBuilder builder)
参数 | |
---|---|
builder |
DefaultConnection.ConnectionBuilder |
buildAdbShellCommand
protected String[] buildAdbShellCommand (String command, boolean forceExitStatusDetection)
针对指定的 adb shell 命令会话和参数构建操作系统命令
参数 | |
---|---|
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)
创建一个 RebootDeviceAction
,以便在执行重新启动操作时使用。
参数 | |
---|---|
rebootMode |
NativeDevice.RebootMode :此重新启动的模式。 |
reason |
String :针对此次重新启动。 |
返回 | |
---|---|
NativeDevice.RebootDeviceAction |
创建的 RebootDeviceAction 。 |
doAdbReboot
protected void doAdbReboot (NativeDevice.RebootMode rebootMode, String reason)
执行 adb 重新启动。
参数 | |
---|---|
rebootMode |
NativeDevice.RebootMode :此重新启动的模式。 |
reason |
String :针对此次重新启动。 |
抛出 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
ensureRuntimePermissionSupported
protected void ensureRuntimePermissionSupported ()
在不支持运行时权限的情况下抛出异常的辅助方法
抛出 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
getApiLevelSafe
protected int getApiLevelSafe ()
返回 | |
---|---|
int |
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)
默认从 ddmlib 缓存中提取设备属性,并根据设备是否处于 Fastboot 模式,回退到“adb shell getprop”或“fastboot getvar”。
参数 | |
---|---|
propName |
String :`adb shell getprop` 返回的设备属性的名称 |
fastbootVar |
String :要查询的等效 fastboot 变量的名称。如果为 null ,则不会尝试执行 fastboot 查询 |
description |
String :变量的简单说明。第一个字母应采用大写形式。 |
返回 | |
---|---|
String |
一个字符串,可能为 null 或为空,包含指定属性的值 |
抛出 | |
---|---|
DeviceNotAvailableException |
isInRebootCallback
protected boolean isInRebootCallback ()
返回当前是否正在执行重新启动回调。如果为 true,则应停用所有用于重新启动的公共 API。
返回 | |
---|---|
boolean |
较新
protected boolean isNewer (File localFile, IFileEntry entry)
如果本地文件比远程文件新,则返回 true
。IFileEntry
精确到分钟,在相同时间的情况下,文件将被视为较新的文件。
参数 | |
---|---|
localFile |
File |
entry |
IFileEntry |
返回 | |
---|---|
boolean |
NotificationsRebootEnded(通知重新启动结束)
protected void notifyRebootEnded ()
向所有 IDeviceActionReceiver
发送有关重新启动结束事件的通知。
抛出 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
已通知重新启动
protected void notifyRebootStarted ()
向所有 IDeviceActionReceiver
通知重新启动开始事件。
抛出 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
执行设备操作
protected boolean performDeviceAction (String actionDescription, NativeDevice.DeviceAction action, int retryAttempts)
在此设备上执行操作。尝试恢复设备,并在操作失败时可选择重试命令。
参数 | |
---|---|
actionDescription |
String :要执行的操作的简短说明。仅用于日志记录目的。 |
action |
NativeDevice.DeviceAction :要执行的操作 |
retryAttempts |
int :如果操作失败但恢复成功,重试会尝试执行操作 |
返回 | |
---|---|
boolean |
如果操作成功执行,则为 true |
抛出 | |
---|---|
DeviceNotAvailableException |
如果恢复尝试失败或已尝试最大次数且未成功 |
postAdbReboot
protected void postAdbReboot ()
重新启动后可以执行的可能额外操作。
抛出 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
prePostBootSetup
protected void prePostBootSetup ()
允许每种设备类型(AndroidNativeDevice、TestDevice)替换此方法以进行特定的启动后设置。
抛出 | |
---|---|
|
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)
设置要使用的时钟实例。
参数 | |
---|---|
clock |
Clock |
setMicrodroidProcess
protected void setMicrodroidProcess (Process process)
将 TestDevice 标记为 microdroid 并设置其 CID。
参数 | |
---|---|
process |
Process :Microdroid 虚拟机的进程。 |
setTestDeviceOptions
protected void setTestDeviceOptions (deviceOptions)
参数 | |
---|---|
deviceOptions |
|
simpleFastbootCommand
protected CommandResult simpleFastbootCommand (long timeout,envVarMap, String[] fullCmd)
执行包含环境变量的简单 fastboot 命令并报告该命令的状态。
参数 | |
---|---|
timeout |
long |
envVarMap |
|
fullCmd |
String |
返回 | |
---|---|
CommandResult |
simpleFastbootCommand
protected CommandResult simpleFastbootCommand (long timeout, String[] fullCmd)
执行简单的 fastboot 命令并报告命令的状态。
参数 | |
---|---|
timeout |
long |
fullCmd |
String |
返回 | |
---|---|
CommandResult |
waitForDeviceNotAvailable
protected boolean waitForDeviceNotAvailable (String operationDesc, long time)
等待设备变为不可用状态(停止向 adb 报告)。
参数 | |
---|---|
operationDesc |
String :正在等待不可用的操作的名称。 |
time |
long :等待出现“不可用”状态的时间。 |
返回 | |
---|---|
boolean |
如果设备确实变为不可用,则为 true。 |