使用 Android GPU 检查器 (AGI),您可以分析 Android 应用的特定帧,并使用它对应用的 GPU 使用情况进行深入分析。与仅使用 系统分析 相比,此分析数据可以帮助您更深入地了解应用的 GPU 使用情况。
使用 AGI 进行帧分析首先要收集跟踪和其他性能数据,然后对其进行测量并显示以进行分析。
可用的帧分析数据包括以下内容
Vulkan API 调用
帧缓冲区内容
渲染的网格绘制调用
命令的 RAM 和 GPU 内存值
渲染事件的 GPU 性能数据
管道数据
渲染状态数据
纹理和着色器资源
入门
AGI 快速入门 中介绍了如何设置 AGI、捕获帧分析数据,然后打开生成的跟踪文件。下一节将详细介绍配置选项。
分析选项
本节介绍捕获帧分析时可用的主要选项。
图形 API 选项
图形 API 选项指示应用使用的图形 API。这些选项在 **捕获系统分析** 对话框的 **类型** 列表中可用。以下是可用的选项
- **Vulkan**: 适用于直接使用 Vulkan API 的应用。
- **ANGLE 上的 OpenGL**: 适用于使用 OpenGL ES 的应用。
AGI 直接跟踪 Vulkan 命令。但是,如果您的应用使用 OpenGL ES,AGI 会使用自定义的 ANGLE 构建将命令转换为 Vulkan 命令,然后在跟踪应用之前进行转换。
其他参数
**其他参数** 字段用于将其他标志传递给 adb am start-activity
命令,该命令在分析期间发送到您的设备以启动您的应用。有关更多信息,请参阅 adb 命令。
开始和持续时间选项
在 **开始和持续时间** 部分,您可以指定 AGI 如何捕获要分析的帧。以下选项可用
**开始**: AGI 从应用启动开始捕获所有命令,直到第一个渲染帧结束。
**手动**: 在跟踪对话框中按一个按钮以手动捕获帧。
**时间**: 经过指定秒数后,AGI 会自动捕获帧。
**帧**: AGI 会自动捕获指定的帧。
跟踪选项
**跟踪选项** 部分包含用于配置跟踪标志的设置。以下是可用的设置
**禁用缓冲**: 在捕获数据时禁用设备上的内存缓冲。此选项在调试应用崩溃时很有用,因为它可以确保所有跟踪数据都序列化到崩溃为止。但是,这会略微增加 AGI 在分析过程中的开销。
**包含不支持的扩展**: 包含设备上 AGI 不支持的扩展。如果您的应用使用 AGI 不支持的扩展,您可能会遇到不良行为,包括细微的错误或崩溃,尤其是在重播跟踪时。浏览 支持的扩展列表。
**清除包数据**: 使用
pm clear
adb 命令 请求设备在启动之前清除应用的用户数据。
输出设置
**输出** 部分包含跟踪文件存储的设置,例如
指定存储跟踪文件的目录。
修改为跟踪文件自动生成的名称。
查看结果
打开包含帧分析数据的跟踪文件时,AGI 会在帧分析器 UI 中显示数据以进行分析。
帧分析器是 AGI 的一个组件,用于管理分析单个帧的 UI 和检测。帧分析器在以下 UI 元素中显示数据
命令 窗格: Vulkan API 调用。
帧缓冲区 窗格: 帧缓冲区内容。
几何图形 窗格: 网格绘制调用的渲染。
内存 窗格: 命令的 RAM 和 GPU 内存值。
性能 窗格: 渲染事件的 GPU 性能数据。
管道 窗格: 管道内容。
着色器 窗格: 着色器内容。
状态 窗格: 提交命令的渲染状态。
纹理 窗格: 与命令关联的纹理资源列表。
纹理 窗格: 所选纹理资源的内容。
报告 窗格: 分析错误列表。
分析结果
以下主题介绍了如何使用 AGI 分析帧分析数据