使用 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 分析帧分析数据: