借助 Android GPU Inspector (AGI),您可以分析 Android 应用的特定帧,并利用它对应用的 GPU 使用情况执行深入分析。与单独使用系统性能分析相比,这种性能分析数据可以帮助您更深入地了解应用的 GPU 使用情况。
使用 AGI 进行帧性能分析首先会收集跟踪数据和其他性能数据,然后对其进行测量和显示以供分析。
可用的帧性能分析数据包括:
Vulkan API 调用
帧缓冲区内容
渲染网格绘制调用
命令的 RAM 和 GPU 内存值
渲染事件的 GPU 性能数据
流水线数据
渲染状态数据
纹理和着色器资源
开始
AGI 快速入门介绍了如何设置 AGI、捕获帧性能分析数据以及打开生成的跟踪文件。下一部分将更详细地介绍配置选项。
性能分析选项
本部分介绍了捕获帧配置文件时可用的主要选项。
图形 API 选项
“图形 API 选项”指示应用使用的图形 API。这些选项位于“捕获系统配置文件”对话框的类型列表中。可用的选项如下:
- Vulkan:适用于直接使用 Vulkan API 的应用。
- OpenGL on ANGLE:适用于使用 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 分析帧性能分析数据: