domains:要查询的域名的列表(以空格分隔)
调用设备政策管理器 (dpm)
为便于您开发和测试设备管理应用,请向设备政策管理器 (dpm) 工具发出命令。您可以使用该工具控制使用中的管理员应用,或更改设备上的政策状态数据。
在 shell 中,相应的 dpm 语法为:
dpm command
您也可以直接从 adb 发出设备政策管理器命令,无需进入远程 shell:
adb shell dpm command
表 3. 可用的设备政策管理器命令
强制系统让任何现有网络日志随时可供 DPC 检索。如果有可用的连接或 DNS 日志,DPC 会收到 onNetworkLogsAvailable() 回调。请参阅网络活动日志。
此命令有调用频率限制。在搭载 Android 9.0(API 级别 28)及更高版本的设备上受支持。
screenrecord 命令是一个用于录制设备(搭载 Android 4.4 [API 级别 19] 及更高版本)显示屏的 shell 实用程序。该实用程序将屏幕 activity 录制为 MPEG-4 文件。您可以使用此文件创建宣传视频或培训视频,或将其用于调试或测试。
在 shell 中,使用以下语法:
screenrecord [options] filename
如需从命令行使用 screenrecord,请输入以下命令:
adb shell screenrecord /sdcard/demo.mp4
按 Ctrl+C 停止屏幕录制。如果不手动停止,到三分钟或 --time-limit 设置的时间限制时,录制将会自动停止。
如需开始录制设备屏幕,请运行 screenrecord 命令以录制视频。然后,运行 pull 命令以将视频从设备下载到主机。下面是一个录制会话示例:
$ adb shell
shell@ $ screenrecord --verbose /sdcard/demo.mp4
(press Control + C to stop)
shell@ $ exit
$ adb pull /sdcard/demo.mp4
screenrecord 实用程序能以您要求的任何支持的分辨率和比特率进行录制,同时保持设备显示屏的宽高比。默认情况下,该实用程序以本机显示分辨率和屏幕方向进行录制,时长不超过三分钟。
screenrecord 实用程序的局限性:
screenrecord --bit-rate 6000000 /sdcard/demo.mp4
读取应用的 ART 配置文件
从 Android 7.0(API 级别 24)开始,Android 运行时 (ART) 会收集已安装应用的执行配置文件,这些配置文件用于优化应用性能。您可以检查收集的配置文件,了解在应用启动期间,系统频繁执行了哪些方法和使用了哪些类。
注意:您必须拥有对文件系统的 root 权限(例如在模拟器上),才能检索执行配置文件的文件名。
要生成文本格式的配置文件信息,请使用以下命令:
adb shell cmd package dump-profiles
package
要检索生成的文件,请使用:
adb pull /data/misc/profman/
package.prof.txt
重置测试设备
如果您在多个测试设备上测试应用,则在两次测试之间重置设备可能很有用,例如,可以移除用户数据并重置测试环境。您可以使用
testharness adb shell 命令对搭载 Android 10(API 级别 29)或更高版本的测试设备恢复出厂设置,如下所示。
adb shell cmd testharness enable
使用
testharness 恢复设备时,设备会自动将允许通过当前工作站调试设备的 RSA 密钥备份在一个持久性位置。也就是说,在重置设备后,工作站可以继续调试设备并向设备发出
adb 命令,而无需手动注册新密钥。
此外,为了帮助您更轻松且更安全地继续测试您的应用,使用
testharness 恢复设备还会更改以下设备设置:
设备会设置某些系统设置,以便不会出现初始设备设置向导。也就是说,设备会进入一种状态,供您快速安装、调试和测试您的应用。
停用锁定屏幕。
停用紧急警报。
停用账号自动同步。
停用自动系统更新。
停用预安装的安全应用。
sqlite
sqlite3 可启动用于检查 SQLite 数据库的 sqlite 命令行程序。它包含用于输出表格内容的 .dump 以及用于输出现有表格的 SQL CREATE 语句的 .schema 等命令。您也可以从命令行执行 SQLite 命令,如下所示:
$ adb -s emulator-5554 shell
$ sqlite3 /data/data/com.example.app/databases/rssitems.db
SQLite version 3.3.12
Enter ".help" for instructions
注意:您必须拥有对文件系统的 root 权限(例如在模拟器上),才能访问 SQLite 数据库。
如需了解详情,请参阅 sqlite3 命令行文档。
adb USB 后端
adb 服务器可以通过两个后端与 USB 堆栈进行交互。它可以使用操作系统(Windows、Linux 或 macOS)的原生后端,也可以使用 libusb 后端。某些功能(例如 attach、detach 和 USB 速度检测)仅在使用 libusb 后端时可用。
您可以使用
ADB_LIBUSB 环境变量来选择后端。如果未设置,adb 会使用其默认后端。默认行为因操作系统而异。从
ADB v34 开始,除 Windows 以外的所有操作系统都默认使用
liubusb 后端,Windows 默认使用原生后端。如果设置了
ADB_LIBUSB,则它会确定是使用原生后端还是
libusb。如需详细了解 adb 环境变量,请参阅
adb 手册页。
实验性:支持在 Windows 上使用
libusb 后端是实验性功能。截至 ADB v34,只有 macOS 和 Linux 平台已通过
libusb 库进行了测试。
adb mDNS 后端
ADB 可以使用多播 DNS 协议自动连接服务器和设备。ADB 服务器附带两个后端,即 Bonjour(Apple 的 mdnsResponder)和 Openscreen。
Bonjour 后端需要在主机上运行守护程序。在 macOS 上,Apple 的内置守护程序始终在运行,但在 Windows 和 Linux 上,用户必须确保 mdnsd 守护程序已启动并正在运行。
如果命令 adb mdns check 返回错误,则可能是因为 ADB 正在使用 Bonjour 后端,但没有 Bonjour 守护程序在运行。
Openscreen 后端不需要在机器上运行守护程序。从 ADB v35 开始,支持在 macOS 上使用 Openscreen 后端。从 ADB v34 开始,支持 Windows 和 Linux。
默认情况下,ADB 使用 Bonjour 后端。您可以使用环境变量 ADB_MDNS_OPENSCREEN(设置为 1 或 0)更改此行为。如需了解详情,请参阅 ADB 手册页。
adb 突发模式(从 ADB 36.0.0 开始)
突发模式是一项实验性功能,可让 ADB 在设备响应上一个数据包之前继续向设备发送数据包。这大大提高了传输大型文件时的 ADB 吞吐量,并缩短了调试时的延迟时间。
连拍模式默认处于停用状态。如需启用此功能,请执行以下操作之一:
将环境变量 ADB_DELAYED_ACK 设置为 1。
在 Android Studio 中,依次前往 File(在 macOS 上,则依次前往 Android Studio)> Settings > Build, Execution, Deployment > Debugger,然后将 ADB Server Burst Mode 设置为 Enabled。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2025-04-29。"],[],[]]