配置设备上的开发者选项

Android 上的“设置”应用包含一个名为开发者选项的屏幕,您可以在其中配置有助于您分析和调试应用性能的系统行为。例如,您可以启用 USB 调试、捕获错误报告、启用点击的视觉反馈、在窗口表面更新时使其闪烁、使用 GPU 进行 2D 图形渲染等等。

启用开发者选项

在 Android 4.1 及更低版本中,开发者选项屏幕默认可用。在 Android 4.2 及更高版本中,您必须启用此屏幕。

注意:在某些设备上,开发者选项屏幕的位置或名称可能有所不同。

  1. 在您的设备上,找到内部版本号选项。下表显示了各种设备上内部版本号的设置位置

    表 1. 设备上内部版本号选项的设置位置

    设备 设置

    Google Pixel

    设置 > 关于手机 > 内部版本号

    三星 Galaxy S8 及更高版本

    设置 > 关于手机 > 软件信息 > 内部版本号

    LG G6 及更高版本

    设置 > 关于手机 > 软件信息 > 内部版本号

    HTC U11 及更高版本

    设置 > 关于 > 软件信息 > 更多 > 内部版本号 设置 > 系统 > 关于手机 > 软件信息 > 更多 > 内部版本号

    一加 5T 及更高版本

    设置 > 关于手机 > 内部版本号

  2. 点击内部版本号选项七次,直到您看到消息您现在是开发者!这将在您的设备上启用开发者选项。

  3. 返回到上一个屏幕,您将在底部找到开发者选项

图 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 所示),打开快速设置面板并点击铅笔进入编辑模式。然后,将开发者磁贴从磁贴窗格拖到快速设置面板上,并再次点击铅笔退出编辑模式。

图 2. 将选项添加到快速设置面板。

其他常规选项包括以下内容

  • 内存:显示内存统计信息,例如平均内存使用量、内存性能、可用总内存、平均内存使用量、可用空闲内存量以及应用正在使用的内存量。
  • 获取错误报告:获取当前设备日志文件的副本以与他人共享。当您收到有关错误报告已准备就绪的通知时,点击通知以共享它。
  • 系统 UI 演示模式:通过显示通用的预设通知栏(不显示通知或低电量警告)来简化拍摄清晰屏幕截图的操作。启用演示模式允许您使用 adb 演示模式命令更改状态栏的外观。或者,您可以使用显示演示模式隐藏通知并显示预设状态栏。
  • 桌面备份密码:设置备份密码,以便您可以使用adb命令在密码保护下备份和恢复设备应用和数据。
  • 保持唤醒状态:设置设备插入电源时屏幕保持开启状态。
  • 启用蓝牙主机控制器接口 (HCI) 嗅探日志:将所有蓝牙 HCI 数据包捕获到存储在/sdcard/btsnoop_hci.log中的文件中。您可以检索这些数据包并使用 Wireshark 等程序来分析和排除信息故障。

调试

图 3. 启用的调试选项。

调试选项提供配置设备上调试和建立设备与开发计算机之间通信的方法。

启用 USB 调试(如图 3 所示),以便您的 Android 设备可以通过Android 调试桥 (adb)与您的开发机器通信。在您使用选择调试应用选择要调试的应用之前,等待调试器选项不可用。如果您启用等待调试器,则选定的应用将在执行之前等待调试器附加。

其他调试选项包括以下内容

  • 在设备上永久存储日志记录器数据:选择您想要在设备上永久存储的日志消息类型。选项包括关闭、全部、除无线电外的全部或仅内核。
  • 选择模拟位置应用:使用此选项伪造设备的 GPS 位置,以测试您的应用在其他位置是否具有相同的行为。要使用此选项,请下载并安装 GPS 模拟位置应用。
  • 图 4. 查看属性。

  • 启用视图属性检查:将视图属性信息保存在View实例的mAttributes成员变量中,以便将其用于调试。您可以通过布局检查器用户界面访问属性信息,如图 4 所示。如果不启用此选项,则属性项不可用。
  • 启用 GPU 调试层:在运行 Android 9(API 级别 28)及更高版本的设备上可用。启用此选项以允许从本地设备存储加载 Vulkan 验证层。要了解更多信息,请阅读Android 上的 Vulkan 验证层

网络

图 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 详细日志记录:根据连接到的每个无线网络 (SSID) 的相对接收信号强度 (RSSI) 来提高 Wi-Fi 日志记录级别。有关日志的更多信息,请参阅使用 Logcat 编写和查看日志
  • 积极的 Wi-Fi 到蜂窝网络切换:当信号较弱时,使 Wi-Fi 在将数据连接切换到蜂窝网络方面更加高效。

输入

启用显示点击以在您触摸屏幕时显示点击。一个圆圈会出现在您的手指或触控笔下方,并在您在屏幕上移动时跟随您。当您在设备上录制视频时,点击就像一个指针。

图 6. 指针位置栏。

启用指针位置以使用十字准线在设备上显示指针(点击)位置。一个栏出现在屏幕顶部以跟踪十字准线坐标,如图 6 所示。当您移动指针时,栏中的坐标会跟踪十字准线位置,并且指针路径会在屏幕上绘制。

绘图

图 7. 用户界面构造。

绘图选项提供有关应用用户界面及其操作方式的视觉提示。

启用显示布局边界以显示应用的剪辑边界、边距和其他用户界面构造,如图 7 所示。

其他绘图选项包括以下内容

  • 强制 RTL 布局方向:强制屏幕布局方向为从右到左 (RTL) 或从左到右(默认)。
  • 窗口动画比例:设置窗口动画播放速度,以便您可以在不同的速度下检查其性能。比例越低,速度越快。
  • 过渡动画比例:设置过渡动画播放速度,以便您可以在不同的速度下检查其性能。比例越低,速度越快。
  • 模拟辅助显示:在设备上创建一个辅助显示作为叠加层。这在使用Presentation API 支持其他显示时非常有用。有关更多信息,请参阅辅助显示

硬件加速渲染

图 8. 偏色异常颜色空间。

硬件加速渲染选项提供优化应用以使其目标硬件平台的方法,方法是利用基于硬件的选项,例如 GPU、硬件层和多重采样抗锯齿 (MSAA)。

点击模拟色彩空间可更改整个设备 UI 的配色方案。这些选项指的是色盲类型。选项包括:

  • 禁用(无模拟配色方案)
  • 单色视觉(将配色方案限制为黑色、白色和灰色)
  • 红绿色弱(影响红色和绿色的显示)
  • 原色视觉异常(影响红色和绿色的显示)
  • 蓝黄色弱(影响蓝色和黄色的显示)
原色视觉异常指的是红绿色盲,红色视觉较弱,而图 8 中所示的红绿色弱指的是红绿色盲,绿色视觉较弱。

如果在模拟色彩空间中截取屏幕截图,则它们看起来是正常的,就像您没有更改配色方案一样。

利用基于硬件的选项的其他一些方法如下:

  • 设置 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 权限。

监控

图 9. GPU 渲染配置文件作为条形表示。

监控选项提供有关应用程序性能的可视化信息,例如长线程和 GPU 操作。

点击分析 GPU 渲染,然后点击屏幕上显示为条形以将 GPU 渲染配置文件显示为条形,如图 9 所示。有关更多信息,请参阅 分析 GPU 渲染速度

应用程序

图 10. 设置后台进程限制。

应用程序选项可帮助您了解您的应用程序在目标设备上的运行方式。

点击后台进程限制以设置一次可以在后台运行的进程数。图 10 显示了可能的设置。

在测试期间点击重置 ShortcutManager 速率限制,以便后台应用程序可以继续调用快捷方式 API,直到再次达到速率限制。有关快捷方式和速率限制的更多信息,请参阅 ShortcutManager

启用不保留活动可通过在用户离开活动的 主视图后立即销毁每个活动来延长电池寿命。