本主题介绍了如何使用 Android GPU Inspector (AGI) 对 Android 应用执行系统分析和帧分析。
本快速入门指南适用于熟悉 Android 图形开发的开发者。
计算机要求
运行 AGI 的计算机必须满足以下要求
需要以下操作系统之一
Windows:Windows 7 或更高版本。
macOS:El Capitan (10.11) 或更高版本。
Linux:需要 Java 64 位 JDK 或 JRE 8(或更高版本);Ubuntu Trusty Tahr (14.04 或更高版本) 推荐使用。
下载并安装 AGI
下载并安装适用于您操作系统的 AGI。
Android 应用要求
本部分介绍了要分析的 Android 应用的要求
您的 Android 应用必须可调试;应用的 Android 清单中的
debuggable
属性必须设置为true
。此属性可启用图形驱动程序的正确检测。对于 Vulkan 应用,此属性可让 AGI 在应用启动时添加其自己的 Vulkan 层。<application [...] android:debuggable="true">
如果您的应用原生使用 Vulkan,AGI 还需要以下内容
您的应用必须启用Vulkan 验证层。如果未启用,您可以运行以下命令,强制您的应用使用 AGI apk (
com.google.android.gapid.<abi>
) 中包含的验证层运行app_package=<YOUR APP PACKAGE NAME HERE> abi=arm64v8a # Possible values: arm64v8a, armeabi-v7a, x86 adb shell settings put global enable_gpu_debug_layers 1 adb shell settings put global gpu_debug_app ${app_package} adb shell settings put global gpu_debug_layer_app com.google.android.gapid.${abi} adb shell settings put global gpu_debug_layers VK_LAYER_KHRONOS_validation
完成分析后,您可以使用以下命令停用这些验证层
adb shell settings delete global enable_gpu_debug_layers adb shell settings delete global gpu_debug_app adb shell settings delete global gpu_debug_layers adb shell settings delete global gpu_debug_layer_app
您的应用在启用Vulkan 验证层运行时不得报告任何警告或错误。在分析之前修复任何 Vulkan 验证错误。
如果您正在使用 Beta 版 GPU 驱动程序,请在 Android 清单的
<application>
标记中包含以下元数据<meta-data android:name="com.android.graphics.developerdriver.enable" android:value="true" />
Android 设备要求
AGI 有以下 Android 设备要求
USB 线缆。
必须启用 adb 调试,并且设备必须可通过 adb 访问。如果存在“通过 USB 安装”选项,请启用它。
设备验证
AGI 需要兼容的 GPU 驱动程序。为确保其提供有效的分析数据,AGI 在您首次连接新设备时会运行验证检查,这大约需要十秒。通过检查后,您就可以使用该设备分析 Android 应用了。
验证进行期间请勿打扰设备。这可能会导致设备验证失败。如果设备验证失败但设置正确,您可以通过重新选择设备来重试验证。
验证是设备的一次性步骤,结果会缓存以供将来使用 AGI。但是,如果设备设置发生更改(例如,GPU 驱动程序或 Android 版本更新),AGI 将再次运行验证。
如果设备被列为受支持设备,则可以预期 AGI 通过验证。如果设备未列出,则其 GPU 驱动程序很可能与 AGI 不兼容。
如果您的设备受支持但验证失败
请确保您已满足前面部分所述的所有Android 要求和计算机要求,并且设备已通过 USB 线缆正确连接到计算机。
如果所有要求都已满足,请在我们的 GitHub 存储库中提交一个问题,描述此行为。
如果您的设备不受支持
我们正在与我们的 OEM 合作伙伴合作,以添加对更多设备的支持。您可以在我们的 GitHub 存储库中提交问题,请求对某个设备的支持。
捕获分析数据
以下部分介绍了如何捕获分析数据,以及如何打开生成的跟踪文件以便分析结果。
配置 Android 设置
在开始分析之前,您必须配置这些 Android 应用和设备设置,这些设置指定要分析的应用和设备。
使用 USB 线缆将 Android 设备连接到计算机。
在计算机上启动 AGI。
首次启动 AGI 时,它会显示“欢迎”屏幕,提示您输入 adb 可执行文件的路径。AGI 会将这些设置保存到您的
HOME
文件夹中的.agic
文件中。如果您已经完成此操作,可以跳过此步骤。图 1:“欢迎”屏幕。 在“adb 路径”字段中输入 adb 可执行文件的路径。此字段后面的复选框是可选的。
点击“开始”显示启动屏幕。
图 2:Android GPU Inspector 主启动屏幕。 在启动屏幕中,点击“捕获新跟踪”。这将显示“捕获新跟踪”对话框。或者,您可以点击“捕获系统配置文件跟踪”按钮。
图 3:“捕获新跟踪”对话框。 在“设备和类型”部分,选择您要分析的 Android 设备。如果列表中未显示,请点击重新加载箭头刷新列表。
在“应用”部分,选择您要分析的应用。如果软件包中只有一个 activity,您可以选择软件包而不是 activity。
AGI 包含一个 Vulkan 示例应用。要使用该示例应用而不是您自己的应用,请执行以下步骤
点击“应用”字段旁边的“...”按钮。
这将显示“选择要跟踪的应用”对话框,其中列出了所选设备上可跟踪的应用。
在“过滤”文本框中,输入
gapid
以仅显示包名中包含gapid
的应用。展开软件包并选择
com.google.android.gapid.VkSampleActivity
,然后点击“确定”。这将带您回到“捕获新跟踪”对话框,其中“应用”字段已填充您选择的应用。
在“应用”部分,将其他字段留空。
点击“确定”。
现在您可以使用 AGI 执行系统和帧分析了。
分析系统
要分析系统,请执行以下步骤
在 AGI 启动屏幕中,点击“捕获新跟踪”以显示“捕获系统配置文件”对话框。
在“类型”列表中,选择“系统配置文件”。
在“开始和持续时间”部分,将“开始于”设置为“手动”,将“持续时间”设置为
2
。在“跟踪选项”部分,点击“配置”。这将显示一个分析选项列表。
图 4:“捕获系统配置文件”对话框中的分析选项。 选择您要捕获的分析数据。
在“GPU”部分,点击“选择”。
这将显示要选择的计数器列表。
图 5:选择计数器。 点击
default
以选择默认计数器集,然后点击“确定”返回分析选项。点击“确定”返回主“捕获系统配置文件”对话框。
在“输出”部分,选择一个“输出目录”来存储分析期间生成的跟踪文件。“文件名”字段应自动填充,但您也可以编辑它。
点击“确定”。这会在 Android 设备上启动所选应用,并显示一个带有“开始”按钮的弹出窗口。
点击“开始”按钮开始捕获分析数据,并等待几秒钟以完成该过程。
点击“打开跟踪”。显示的初始视图类似于
systrace
。图 6:系统分析器界面。 除了
systrace
中可用的数据外,AGI 还显示 GPU 性能信息。有关查看系统分析数据的更多信息,请参阅查看 AGI 系统配置文件。
有关其他设置的信息,请参阅系统分析选项。
分析帧
要分析您应用中的单个帧,请执行以下步骤
在 AGI 启动屏幕中,点击“捕获新跟踪”以显示“捕获新跟踪”对话框。或者,您可以点击“捕获帧配置文件跟踪”按钮。
在“类型”列表中,根据您的应用使用的图形 API 选择
Vulkan
或OpenGL on ANGLE
。请确保您选择了正确的 API,否则 AGI 将不会捕获任何图形命令。在“开始和持续时间”部分,将“开始于”设置为“手动”。如果您点击了“捕获帧配置文件跟踪”按钮,则此步骤已完成。
在“输出”部分,选择一个“输出目录”来存储跟踪文件。“文件名”字段应自动填充,但您也可以编辑它。
可选:有些应用会生成一个执行所有图形处理的不同进程。要捕获该进程,请指定其名称。
点击“确定”。这会在 Android 设备上启动您的应用,并显示一个带有“开始”按钮的弹出窗口。
点击“开始”按钮,并等待几秒钟以完成分析。
点击“打开跟踪”以查看分析数据。有关帧分析器界面中每个窗格的信息,请参阅帧分析概览。
有关其他设置的信息,请参阅帧分析选项。