Android 上的“设置”应用程序包含一个名为“开发者选项”的屏幕,您可以在其中配置有助于您分析和调试应用程序性能的系统行为。例如,您可以启用通过 USB 进行调试、捕获错误报告、启用点击的视觉反馈、在窗口表面更新时闪烁窗口表面、使用 GPU 进行 2D 图形渲染等等。
启用开发者选项
在 Android 4.1 及更低版本中,“开发者选项”屏幕默认可用。在 Android 4.2 及更高版本中,您必须启用此屏幕。
注意:在某些设备上,“开发者选项”屏幕的位置或名称可能有所不同。
-
在您的设备上,找到“版本号”选项。下表显示了各种设备上“版本号”的设置位置。
设备 设置 Google Pixel
设置 > 关于手机 > 版本号
三星 Galaxy S8 及更高版本
设置 > 关于手机 > 软件信息 > 版本号
LG G6 及更高版本
设置 > 关于手机 > 软件信息 > 内部版本号
HTC U11 及更高版本
设置 > 关于 > 软件信息 > 更多 > 内部版本号 或 设置 > 系统 > 关于手机 > 软件信息 > 更多 > 内部版本号
OnePlus 5T 及更高版本
设置 > 关于手机 > 版本号
-
连续点击 内部版本号 选项七次,直到出现消息
您现在是开发者!
这将在您的设备上启用开发者选项。 返回到上一屏幕,在底部找到 开发者选项。
在 开发者选项 屏幕的顶部,您可以打开或关闭选项,如图 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 所示,打开快速设置面板并点击铅笔进入编辑模式。然后,将开发者磁贴从磁贴窗格拖到快速设置面板上,再点击铅笔退出编辑模式。
其他通用选项包括以下内容
- 内存:显示内存统计信息,例如平均内存使用量、内存性能、可用总内存、平均内存使用量、可用内存量以及应用程序使用的内存量。
- 获取错误报告:获取当前设备日志文件的副本以与他人共享。当您收到错误报告已准备好的通知时,点击通知以共享它。
- 系统 UI 演示模式:通过显示一个通用的预设通知栏(不显示通知或电量不足警告)来简化截取干净的屏幕截图。启用演示模式 允许您使用
adb
演示模式命令 更改状态栏的外观。或者,您可以使用 显示演示模式 来隐藏通知并显示预设状态栏。 - 桌面备份密码:设置备份密码,以便您可以使用
adb
命令在密码保护下备份和还原设备应用程序和数据。 - 保持唤醒:设置您的屏幕在设备插入电源时保持亮起。
- 启用蓝牙主机控制器接口 (HCI) 嗅探日志:将所有蓝牙 HCI 数据包捕获到存储在
/sdcard/btsnoop_hci.log
中的文件中。您可以检索数据包并使用 Wireshark 等程序来分析和解决信息问题。
调试
调试选项提供了配置设备上调试以及建立设备与开发计算机之间通信的方法。
启用 USB 调试,如图 3 所示,以便您的 Android 设备可以通过 Android 调试桥 (adb) 与您的开发机器通信。等待调试器 选项在您使用 选择调试应用程序 选择要调试的应用程序之前不可用。如果您启用 等待调试器,则所选应用程序将在执行之前等待调试器连接。
其他调试选项包括以下内容
- 在设备上持久存储日志记录数据:选择要持久存储在设备上的日志消息类型。选项包括关闭、全部、除无线电外全部或仅内核。
- 选择模拟位置应用程序:使用此选项模拟设备的 GPS 位置以测试您的应用程序在其他位置是否表现相同。要使用此选项,请下载并安装 GPS 模拟位置应用程序。
- 启用视图属性检查:将视图属性信息保存到
View
实例的mAttributes
成员变量中,以便它可以用于调试。您可以通过 布局检查器 用户界面访问属性信息,如图 4 所示。如果没有启用此功能,则 **属性** 项将不可用。 - 启用 GPU 调试层:在运行 Android 9(API 级别 28)及更高版本的设备上可用。启用此选项以允许从本地设备存储加载 Vulkan 验证层。要了解更多信息,请阅读 Android 上的 Vulkan 验证层。
网络
网络选项提供了配置 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 显示规范中规定的规范。
- 启用 Wi-Fi 详细日志记录:根据每个无线网络 (SSID) 的相对接收信号强度 (RSSI),提高您连接到每个无线网络的 Wi-Fi 日志记录级别。有关日志的更多信息,请参阅 使用 Logcat 写入和查看日志。
- 积极的 Wi-Fi 到蜂窝网络切换:当信号较弱时,使 Wi-Fi 在将数据连接切换到蜂窝网络方面更加高效。
输入
启用 显示点击 以在您触摸屏幕时显示点击。您的手指或手写笔下方会出现一个圆圈,并在您在屏幕上移动时跟随您。当您 在设备上录制视频 时,点击就像一个指针。
启用 指针位置 以使用十字准星显示设备上的指针(点击)位置。一个栏出现在屏幕顶部以跟踪十字准星坐标,如图 6 所示。当您移动指针时,栏中的坐标会跟踪十字准星位置,指针路径会在屏幕上绘制出来。
绘制
绘制选项提供了有关应用程序用户界面及其操作方式的视觉提示。
启用 显示布局边界 以在设备上显示应用程序的剪裁边界、边距和其他用户界面结构,如图 7 所示。
其他绘制选项包括以下内容
- 强制 RTL 布局方向:强制屏幕布局方向从右到左 (RTL) 或从左到右(默认)。
- 窗口动画缩放:设置窗口动画播放速度,以便您可以以不同的速度检查其性能。较低的比例会导致更快的速度。
- 过渡动画缩放:设置过渡动画播放速度,以便您可以以不同的速度检查其性能。较低的比例会导致更快的速度。
- 模拟辅助显示器:在设备上创建一个辅助显示器作为叠加层。这在使用
Presentation
API 支持其他显示器时很有用。有关更多信息,请参阅 辅助显示器。
硬件加速渲染
硬件加速渲染选项提供了通过利用硬件选项(例如 GPU、硬件层和多重采样抗锯齿 (MSAA))来优化应用程序以适应其目标硬件平台的方法。
点击 模拟色彩空间 以更改整个设备 UI 的配色方案。选项指的是色盲类型。选择包括
- 禁用(没有模拟的配色方案)
- 单色(将配色方案限制为黑色、白色和灰色)
- Deuteranomaly(影响红色和绿色的显示)
- Protanomaly(影响红色和绿色的显示)
- Tritanomaly(影响蓝色和黄色的显示)
如果您在模拟的色彩空间中截取屏幕截图,它们会显示为正常,就好像您没有更改配色方案一样。
利用基于硬件的选项的一些其他方法如下
- 设置 GPU 渲染器:将默认 Open GL 图形引擎更改为 Open GL Skia 图形引擎。
- 强制 GPU 渲染:如果应用程序默认情况下没有使用 GPU 渲染编写,则强制应用程序使用 GPU 进行 2D 绘制。
- 显示 GPU 视图更新:显示使用 GPU 绘制的任何屏幕元素。
- 调试 GPU 过度绘制:在您的设备上显示颜色编码,以便您可以可视化同一个帧中同一个像素被绘制了多少次。可视化显示了您的应用程序可能在哪些地方进行了不必要的渲染。有关详细信息,请参阅可视化 GPU 过度绘制。
- 调试非矩形裁剪操作:关闭画布上的裁剪区域以创建不寻常(非矩形)的画布区域。通常,裁剪区域会阻止在圆形裁剪区域边界之外绘制任何内容。
- 强制 4x MSAA:在 Open GL ES 2.0 应用程序中启用多重采样抗锯齿(MSAA)。
- 禁用硬件叠加:禁用硬件叠加。请注意,使用硬件叠加可以让在屏幕上显示内容的应用程序使用更少的处理能力。没有叠加层,应用程序将共享视频内存,并且必须不断检查碰撞和裁剪以渲染适当的图像。检查会使用大量的处理能力。
媒体
将禁用 USB 音频路由设置为开启,以禁用自动路由到通过 USB 端口连接到计算机的外部音频设备。自动路由可能会干扰 USB 感知应用程序。
在 Android 11 及更高版本中,当没有RECORD_AUDIO
权限的应用程序使用UsbManager
请求直接访问具有音频捕获功能的 USB 音频设备(例如 USB 耳机)时,会出现一条警告消息,要求用户确认使用该设备的权限。系统会忽略任何“始终使用”选项,因此用户必须在每次应用程序请求访问权限时确认警告并授予权限。为了避免这种行为,您的应用程序应该请求RECORD_AUDIO
权限。
监控
监控选项提供了有关应用程序性能的视觉信息,例如长线程和 GPU 操作。
点击分析 GPU 渲染,然后点击屏幕上显示为条形图,以将 GPU 渲染配置文件显示为条形图,如图 9 所示。有关详细信息,请参阅分析 GPU 渲染速度。
应用
应用程序选项可帮助您了解应用程序在目标设备上的运行方式。
点击后台进程限制,以设置一次可以在后台运行的进程数量。可能的设置如 图 10 所示。
在测试期间点击重置 ShortcutManager 限速,以便后台应用程序可以继续调用快捷方式 API,直到再次达到限速为止。有关快捷方式和限速的更多信息,请参阅ShortcutManager
。
启用不保留活动以通过在用户离开活动的“主视图”后立即销毁每个活动来延长电池寿命。