本主题介绍如何使用 Android GPU 检查器 (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 清单中的 可调试属性 必须设置为
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 验证错误。
如果您使用的是测试版 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 检查器主启动屏幕。 在启动屏幕中,单击“捕获新跟踪”。这将显示“捕获新跟踪”对话框。或者,您可以单击“捕获系统分析跟踪”按钮。
图 3:捕获新跟踪对话框。 在“设备和类型”部分,选择要分析的 Android 设备。如果它未显示在“设备”列表中,请单击重新加载箭头以刷新列表。
在“应用”部分,选择要分析的应用。如果包中只有一个活动,则可以选择包而不是活动。
AGI 包含一个 Vulkan 应用示例。要使用示例应用而不是您自己的应用,请执行以下步骤
单击“应用”字段旁边的“...”按钮。
此界面显示了**选择要跟踪的应用程序**对话框,其中列出了可在所选设备上跟踪的应用程序。
在**筛选器**文本框中,键入
gapid
,仅显示包名称中包含gapid
的应用程序。展开包并选择**com.google.android.gapid.VkSampleActivity**,然后单击**确定**。
这将返回到**捕获新的跟踪**对话框,其中**应用程序**字段已填充您选择的应用程序。
在**应用程序**部分,将其他字段保留为空。
单击**确定**。
现在,您可以使用 AGI 执行系统和帧分析。
分析系统
要分析系统,请执行以下步骤
在 AGI 启动屏幕中,单击**捕获新的跟踪**以显示**捕获系统配置文件**对话框。
在**类型**列表中,选择**系统配置文件**。
在**开始和持续时间**部分,将**开始于**设置为**手动**,并将**持续时间**设置为
2
。在**跟踪选项**部分,单击**配置**。这将显示一个分析选项列表。
图 4:捕获系统配置文件对话框中的分析选项。 选择要捕获的分析数据。
在**GPU**部分,单击**选择**。
这将显示一个要选择的计数器列表。
图 5:选择计数器。 单击**默认**以选择默认计数器集,然后单击**确定**返回分析选项。
单击**确定**返回到主要的**捕获系统配置文件**对话框。
在**输出**部分,选择一个**输出目录**来存储在分析期间生成的跟踪文件。**文件名**字段应自动填充,但您也可以编辑它。
单击**确定**。这将在 Android 设备上启动选定的应用程序,并显示一个带有**开始**按钮的弹出窗口。
单击**开始**按钮开始捕获分析数据,并等待几秒钟以完成该过程。
单击**打开跟踪**。显示的初始视图类似于systrace。
图 6:系统分析器 UI。 除了 systrace 中可用的数据外,AGI 还显示 GPU 性能信息。有关查看系统分析数据的更多信息,请参阅查看 AGI 系统配置文件。
有关其他设置的信息,请参阅系统分析选项。
分析帧
要分析应用程序中的单个帧,请执行以下步骤
在 AGI 启动屏幕中,单击**捕获新的跟踪**以显示**捕获新的跟踪**对话框。或者,您可以单击**捕获帧配置文件跟踪**按钮。
在**类型**列表中,根据应用程序使用的图形 API 选择**Vulkan**或**OpenGL on ANGLE**。确保选择正确的 API,否则 AGI 不会捕获任何图形命令。
在**开始和持续时间**部分,将**开始于**设置为**手动**。如果您单击了**捕获帧配置文件跟踪**按钮,则此步骤已完成。
在**输出**部分,选择一个**输出目录**来存储跟踪文件。**文件名**字段应自动填充,但您也可以编辑它。
可选:某些应用程序会生成一个不同的进程来执行所有图形处理。要捕获该进程,请指定其名称。
单击**确定**。这将在 Android 设备上启动您的应用程序,并显示一个带有**开始**按钮的弹出窗口。
单击**开始**按钮,等待几秒钟以完成分析。
单击**打开跟踪**以查看分析数据。有关帧分析器 UI 中每个窗格的信息,请参阅帧分析概述。
有关其他设置的信息,请参阅帧分析选项。