Android 上的“设置”应用包含一个名为开发者选项的界面,您可在该界面中配置一些系统行为来帮助您分析和调试应用性能。例如,您可以启用 USB 调试、捕获 bug 报告、启用点按的视觉反馈、在窗口 surface 更新时刷写 surface、使用 GPU 渲染 2D 图形,等等。
启用开发者选项
在 Android 4.1 及更低版本上,开发者选项界面在默认情况下处于启用状态。在 Android 4.2 及更高版本上,您必须启用此界面。
注意:在某些设备上,开发者选项界面所在的位置或所用的名称可能有所不同。
-
在设备上,找到 build 号选项。下表显示了各种设备上版本号在“设置”中的位置:
表 1. build 号选项在设备设置中的位置
设备 设置 Google Pixel
设置 > 关于手机 > build 号
Samsung Galaxy S8 及更高版本
设置 > 关于手机 > 软件信息 > 版本号
LG G6 及更高版本
设置 > 关于手机 > 软件信息 > 版本号
HTC U11 及更高版本
设置 > 关于 > 软件信息 > 更多 > 版本号 或 设置 > 系统 > 关于手机 > 软件信息 > 更多 > 版本号
一加 5T 及更高版本
设置 > 关于手机 > build 号
-
连续点按版本号选项七次,直到您看到消息“
You are now a developer!
”。此操作会在您手机上启用开发者选项。 返回上一界面,在底部可以找到开发者选项。
![](https://developer.android.google.cn/static/studio/images/run/dev-options-pixel_2x.png?authuser=5&hl=he)
图 1. 设备上的开发者选项。
在开发者选项界面顶部,您可以开启或关闭这些选项,如图 1 所示。让其保持开启状态。关闭后,除了那些不需要在设备与开发计算机之间通信的选项外,大部分选项都会被停用。
在您的设备上启用 USB 调试
您需要先启用 USB 调试,以便 Android Studio 和其他 SDK 工具能够在设备通过 USB 连接时识别设备,然后才能使用调试程序和其他工具。
在设备的系统设置中启用 USB 调试(位于开发者选项下)。您可以在以下位置之一找到此选项,具体取决于您的 Android 版本:
- Android 9(API 级别 28)及更高版本:设置 > 系统 > 高级 > 开发者选项 > USB 调试
- Android 8.0.0(API 级别 26)和 Android 8.1.0(API 级别 27):设置 > 系统 > 开发者选项 > USB 调试
- Android 7.1(API 级别 25)及更低版本:设置 > 开发者选项 > USB 调试
常规选项
点按快捷设置开发者图块,将选定的开发者选项添加到“快捷设置”面板上。
选择一个或多个可用图块(如图 2 所示)后,打开“快捷设置”面板,并点按铅笔图标以进入修改模式。然后,将开发者图块从图块窗格拖动到“快捷设置”面板上,并再次点按铅笔图标以退出修改模式。
![](https://developer.android.google.cn/static/studio/images/run/dev-options-quick-settings_2x.png?authuser=5&hl=he)
图 2. 将选项添加到“快捷设置”面板。
其他常规选项包括:
- 内存:显示内存统计信息,如平均内存使用率、内存性能、可用总内存、已使用的平均内存、可用内存量以及应用当前占用的内存量。
- 生成 bug 报告:获取当前设备日志文件的副本以与某人共享。当您获得 bug 报告已准备就绪的通知时,点按此通知即可共享。
- 系统界面演示模式:展示不会显示通知或电池低电量警告的通用预设通知栏,更轻松地截取整洁的屏幕截图。
借助启用演示模式,您可以使用
adb
演示模式命令更改状态栏的外观。或者,您也可以使用显示演示模式隐藏通知和展示预设状态栏。 - 桌面备份密码:设置备份密码,这样您就可以使用
adb
命令备份和恢复受密码保护的设备应用与数据。 - 不锁定屏幕:将屏幕设为在设备接通电源期间保持开启状态。
- 启用蓝牙主机控制器接口 (HCI) 信息收集日志:捕获存储在
/sdcard/btsnoop_hci.log
路径下的文件中的所有蓝牙 HCI 数据包。您可以检索这些数据包,然后使用诸如 Wireshark 之类的程序分析信息和排查问题。
调试
![](https://developer.android.google.cn/static/studio/images/run/dev-options-debug_2x.png?authuser=5&hl=he)
图 3. 已启用调试选项。
调试选项提供了配置设备上的调试以及在设备与开发计算机之间建立通信的方式。
启用 USB 调试(如图 3 所示),以便 Android 设备通过 Android 调试桥 (adb) 与开发机器通信。只有使用选择调试应用来选择要调试的应用后,等待调试程序选项才可用。如果您启用等待调试程序,选定的应用会先等待调试程序连接后才会执行操作。
其他调试选项包括:
- 在设备上永久存储日志记录器数据:选择要在设备上永久存储的日志消息类型。选项分别为“关闭”“全部”“所有非无线电”和“仅限内核”。
- 选择模拟位置信息应用:使用此选项可以模拟设备的 GPS 位置,以测试您的应用在其他位置时行为是否相同。如需使用此选项,请下载并安装 GPS 模拟位置应用。
- 启用视图属性检查功能:将视图属性信息保存在
View
实例的mAttributes
成员变量中,以便将这些信息用于调试。如图 4 所示,您可以通过布局检查器界面访问属性信息。如果不启用此选项,**属性**项将不可用。 - 启用 GPU 调试层:在运行 Android 9(API 级别 28)及更高版本的设备上可用。启用此选项可允许从本地设备存储加载 Vulkan 验证层。如需了解详情,请阅读 Android 上的 Vulkan 验证层。
![](https://developer.android.google.cn/static/studio/images/run/dev-options-view-attributes_2x.png?authuser=5&hl=he)
图 4. 视图属性。
网络
![](https://developer.android.google.cn/static/studio/images/run/dev-options-select-usb-config_2x.png?authuser=5&hl=he)
图 5. “选择 USB 配置”选项。
网络选项提供了配置 Wi-Fi 和 DHCP 设置的方式。
点按选择 USB 配置可以指定您希望计算机如何识别设备。如图 5 所示,您可以将设备配置为仅限充电、传输文件 (MTP)、传输照片 (PTP)、在 PC 上使用移动互联网 (RNDIS),或者传输音频或 MIDI 文件。
点按蓝牙 AVRCP 版本,然后选择要用来控制您的设备有权访问的蓝牙 A/V 设备的配置文件版本。
此外,如需微调设备上的音频播放功能,请点按并设置以下选项:
- 蓝牙音频编解码器:选择以下某个编解码器来调整设备的音质(编解码器):
- SBC:将数据传输到蓝牙音频输出设备,如头戴式耳机和音响设备。
- AAC:在比特率相似的情况下,有线设备比 MP3 的音质更好。
- aptX:使用优质智能手机、音响设备、条形音箱、头戴式耳机和平板电脑以无线方式提供纯正的声音。
- aptX HD:为蓝牙设备提供高分辨率流式传输。
- LDAC:通过无线连接提供优质的音乐聆听服务。
- 启用可选编解码器和停用可选编解码器:如果您已经安装了其他编解码器实现,可以使用这两个选项启用和停用这些实现。
- 蓝牙音频采样范围:通过选择音频编解码器采样率调整每秒音频样本数量。采样率越高,使用的资源越多。
- 蓝牙音频每样本位数:设置每个音频样本中信息的位数。比特率越高,音质越好,但样本文件越大。
- 蓝牙音频声道模式:选择单声道或立体声。
- 蓝牙音频 LDAC 编解码器:优化声音以提高音质,平衡音频和连接质量,提高连接质量,或者使用自适应比特率平衡音频和连接质量。
以下列表介绍了配置 Wi-Fi 和 DHCP 设置的其他方式:
- 无线显示认证:启用高级配置控件和设置,按照“Wi-Fi 联盟 Wi-Fi 显示规范”中明确规定的规范进行无线显示认证。
- 启用 WLAN 详细日志记录功能:根据您连接到的每个无线网络 (SSID) 的相对接收信号强度 (RSSI) 提高其 Wi-Fi 日志记录水平。如需详细了解日志,请参阅使用 Logcat 写入和查看日志。
- 主动从 WLAN 网络切换到移动数据网络:当信号较弱时,让 Wi-Fi 更高效地将数据连接移交给移动数据网络。
输入
启用显示点按操作反馈可以在您轻触屏幕时显示点按操作反馈。手指或触控笔下会出现一个圆圈,这个圆圈会跟着您在屏幕上移动。当您在设备上录制视频时,点按的作用就像指针一样。
![](https://developer.android.google.cn/static/studio/images/run/dev-options-bar_2x.png?authuser=5&hl=he)
图 6. 指针位置栏。
启用指针位置可以用十字准线在设备上显示指针(点按)位置。界面顶部会显示一个条形,用于跟踪十字准线坐标,如图 6 所示。在您移动指针时,该条形中的坐标会跟踪十字准线位置,且屏幕上会绘制出指针路径。
绘制
![](https://developer.android.google.cn/static/studio/images/run/dev-options-draw-clip-bounds_2x.png?authuser=5&hl=he)
图 7. 界面结构。
绘制选项提供了有关应用界面及其操作方式的视觉提示。
启用显示布局边界可以显示应用的裁剪边界、外边距和设备上的其他界面结构,如图 7 所示。
其他绘制选项包括:
- 强制使用从右到左的布局方向:强制界面布局方向为从右到左 (RTL) 或从左到右(默认设置)。
- 窗口动画缩放:设置窗口动画播放速度,以便您查看不同速度下的性能。缩放越小,速度越快。
- 过渡动画缩放:设置过渡动画播放速度,以便您查看不同速度下的性能。缩放越小,速度越快。
- 模拟辅助显示屏:以叠加层的形式在设备上创建辅助屏幕。这在使用
Presentation
API 支持其他屏幕时非常有用。 如需了解详情,请参阅辅助显示屏。
硬件加速渲染
![](https://developer.android.google.cn/static/studio/images/run/dev-options-color-scheme_2x.png?authuser=5&hl=he)
图 8. 绿色弱视颜色空间。
借助硬件加速渲染选项,您可以利用基于硬件的选项(如 GPU、硬件层和多重采样抗锯齿 (MSAA))针对目标硬件平台优化应用。
点按模拟颜色空间可以更改整个设备界面的配色方案。此设置下面的选项是指色盲类型。可选项如下:
- 已停用(无模拟配色方案)
- 全色盲(配色方案限于黑色、白色和灰色)
- 绿色弱视(影响显示红色和绿色)
- 红色弱视(影响显示红色和绿色)
- 蓝色弱视(影响显示蓝色和黄色)
如果您在模拟颜色空间中截取屏幕截图,它们会正常显示,如同没有更改配色方案。
利用基于硬件的选项的一些其他方式如下:
- 设置 GPU 渲染程序:将默认的 Open GL 图形引擎更改为 Open GL Skia 图形引擎。
- 强制进行 GPU 渲染:如果应用编写时在默认情况下不进行 GPU 渲染,强制应用使用 GPU 绘制 2D 图形。
- 显示 GPU 视图更新:显示使用 GPU 绘制的任何界面上的元素。
- 调试 GPU 过度绘制:显示设备上的颜色编码,以便您可视化相同像素在同一帧中绘制的次数。可视化会显示您的应用可能在哪里进行了不必要的渲染。如需了解详情,请参阅可视化 GPU 过度绘制。
- 调试非矩形剪裁操作:关闭画布上的剪裁区域,创建非常规(非矩形)画布区域。通常,剪裁区域不允许在圆形剪裁区域的边界之外绘制任何图形。
- 强制启用 4x MSAA:在 Open GL ES 2.0 应用中启用多重采样抗锯齿 (MSAA)。
- 停用 HW 叠加层:禁用硬件叠加层。请注意,使用硬件叠加层,在屏幕上显示内容的应用会消耗更少的处理资源。如果不使用叠加层,应用会共享视频内存且必须不断地检查冲突和剪裁区域才能渲染合适的图像。检查工作会消耗大量的处理资源。
媒体
将关闭 USB 音频转接设为开启可以停用自动路由到通过 USB 端口连接到计算机的外部音频设备。自动路由可能会干扰 USB 感知应用。
在 Android 11 及更高版本中,当没有 RECORD_AUDIO
权限的应用使用 UsbManager
请求直接访问具备音频捕获功能的 USB 音频设备(如 USB 耳机)时,系统会显示一条警告消息,要求用户确认设备使用权限。系统会忽略任何“始终使用”选项,因此应用每次请求访问时,用户都必须确认警告消息并授予相应权限。为了避免这种行为,您的应用应请求 RECORD_AUDIO
权限。
监控
![](https://developer.android.google.cn/static/studio/images/run/dev-options-gpu-work_2x.png?authuser=5&hl=he)
图 9. GPU 渲染配置文件(以柱形图表示)。
监控选项提供了有关应用性能(如长时间的线程和 GPU 操作)的视觉信息。
依次点按 GPU 渲染模式分析和在屏幕上显示为柱形图,以竖条形式显示 GPU 渲染模式分析(如图 9 所示)。如需了解详情,请参阅分析 GPU 渲染速度。
应用
![](https://developer.android.google.cn/static/studio/images/run/dev-options-bkgrnd-proc-lmt_2x.png?authuser=5&hl=he)
图 10. 设置后台进程限制。
应用选项可以帮助您了解应用在目标设备上的运行方式。
点按后台进程限制可以设置后台一次能够运行的进程数量。图 10 中显示了可能的设置。
在测试过程中点按重置 ShortcutManager 调用频率限制,使后台应用可以继续调用快捷键 API,直到再次达到速率限制。如需详细了解快捷键和速率限制,请参阅 ShortcutManager
。
启用不保留活动可以在用户离开 activity 的主视图后立即销毁该 activity,从而延长电池续航时间。