Android GPU 检查器快速入门

本主题介绍如何使用 Android GPU 检查器 (AGI) 对 Android 应用执行 系统性能分析帧性能分析

本快速入门指南适用于熟悉 Android 上图形开发的开发者。

计算机要求

运行 AGI 的计算机必须满足以下要求

下载并安装 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 设备要求

设备验证

AGI 需要兼容的 GPU 驱动程序。为了确保它提供有效的性能分析数据,AGI 在您第一次连接新设备时会运行验证检查,大约需要十秒钟。通过检查后,您可以使用该设备对 Android 应用进行性能分析。

验证过程中请勿打扰设备。这可能会导致设备验证失败。如果设备验证失败但设置正确,您可以通过重新选择设备来重试验证。

验证是设备的一次性步骤,结果会缓存以供将来使用 AGI。但是,如果设备设置发生更改(例如,GPU 驱动程序或 Android 版本更新),AGI 会再次运行验证。

如果设备被列为 支持的设备,您可以预期 AGI 会通过验证。如果设备未列出,则其 GPU 驱动程序很可能与 AGI 不兼容。

如果您的设备受支持但验证失败

请确保您已满足前面各节中描述的所有 Android 要求计算机要求,并且设备已通过 USB 数据线正确连接到计算机。

如果满足所有要求,请在我们的 GitHub 存储库中 提交问题,描述此行为。

如果您的设备不受支持

我们正在与我们的 OEM 合作伙伴合作,以增加对更多设备的支持。您可以在我们的 GitHub 存储库中 提交问题 以请求对设备的支持。

捕获性能分析数据

以下各节介绍如何捕获性能分析数据,以及如何打开生成的跟踪文件以分析结果。

配置 Android 设置

在开始性能分析之前,您必须配置这些 Android 应用和设备设置,这些设置指定要分析的应用和设备。

  1. 使用 USB 数据线将您的 Android 设备连接到计算机。

  2. 在您的计算机上启动 AGI。

    第一次启动 AGI 时,它会显示“欢迎”屏幕,提示您输入 adb 可执行文件的路径。AGI 会将这些设置保存在 HOME 文件夹中的 .agic 文件中。如果您已经执行此操作,则可以跳过此步骤。

    Welcome screen
    图 1:“欢迎”屏幕。
  3. 在“adb 路径”字段中输入 adb 可执行文件的路径。此字段后的复选框是可选的。

  4. 单击“开始”以显示启动屏幕。

    AGI launch screen
    图 2:Android GPU 检查器主启动屏幕。
  5. 在启动屏幕中,单击“捕获新跟踪”。这将显示“捕获新跟踪”对话框。或者,您可以单击“捕获系统性能分析跟踪”按钮。

    Capture A New Trace dialog
    图 3:“捕获新跟踪”对话框。
  6. 在“设备和类型”部分,选择要分析的 Android 设备。如果它未显示在“设备”列表中,请单击重新加载箭头以刷新列表。

  7. 在“应用”部分,选择要分析的应用。如果包中只有一个活动,则可以选择包而不是活动。

    AGI 包含一个 Vulkan 应用示例。要使用应用示例而不是您自己的应用,请执行以下步骤

    1. 单击“应用”字段旁边的“...”按钮。

      这将显示“选择要跟踪的应用”对话框,其中显示了可在所选设备上进行跟踪的应用列表。

    2. 在“筛选器”文本框中,键入 gapid 以仅显示包名称中包含 gapid 的应用。

    3. 展开包并选择 com.google.android.gapid.VkSampleActivity,然后单击“确定”。

      这将返回到“捕获新跟踪”对话框,其中“应用”字段已填充您选择的应用。

  8. 在“应用”部分,请将其他字段留空。

  9. 单击“确定”。

现在,您可以使用 AGI 执行系统和帧性能分析了。

分析系统

要分析系统,请执行以下步骤

  1. 在 AGI 启动屏幕中,单击“捕获新跟踪”以显示“捕获系统性能分析”对话框。

  2. 在“类型”列表中,选择“系统性能分析”。

  3. 在“开始和持续时间”部分,将“开始时间”设置为“手动”,将“持续时间”设置为 2

  4. 在**跟踪选项**部分,点击**配置**。这将显示一个性能分析选项列表。

    Capture Config dialog
    图 4:捕获系统配置文件对话框中的性能分析选项。
  5. 选择您想要捕获的性能分析数据。

  6. 在**GPU**部分,点击**选择**。

    这将显示一个要选择的计数器列表。

    Counter config
    图 5:选择计数器。
  7. 点击**默认**以选择默认计数器集,然后点击**确定**返回性能分析选项。

  8. 点击**确定**返回主**捕获系统配置文件**对话框。

  9. 在**输出**部分,选择一个**输出目录**来存储在性能分析期间生成的跟踪文件。**文件名**字段应自动填充,但您也可以编辑它。

  10. 点击**确定**。这将在Android设备上启动选定的应用程序,并显示一个带有**开始**按钮的弹出窗口。

  11. 点击**开始**按钮开始捕获性能分析数据,并等待几秒钟以完成该过程。

  12. 点击**打开跟踪**。显示的初始视图类似于systrace

    System profile trace
    图 6:系统分析器UI。

    除了systrace中可用的数据外,AGI还显示GPU性能信息。有关查看系统性能分析数据的更多信息,请参阅查看AGI系统配置文件

有关其他设置的信息,请参阅系统性能分析选项

分析帧

要分析应用程序中的单个帧,请执行以下步骤

  1. 在AGI启动屏幕上,点击**捕获新跟踪**以显示**捕获新跟踪**对话框。或者,您可以点击**捕获帧配置文件跟踪**按钮。

  2. 在**类型**列表中,根据应用程序使用的图形API选择**Vulkan**或**OpenGL on ANGLE**。请确保您选择了正确的选项,否则AGI将不会捕获任何图形命令。

  3. 在**开始和持续时间**部分,将**开始于**设置为**手动**。如果您点击了**捕获帧配置文件跟踪**按钮,则此步骤已完成。

  4. 在**输出**部分,选择一个**输出目录**来存储跟踪文件。**文件名**字段应自动填充,但您也可以编辑它。

  5. 可选:一些应用程序会生成一个不同的进程来处理所有图形处理。要捕获该进程,请指定其名称。

  6. 点击**确定**。这将在Android设备上启动您的应用程序,并显示一个带有**开始**按钮的弹出窗口。

  7. 点击**开始**按钮并等待几秒钟以完成性能分析。

  8. 点击**打开跟踪**以查看性能分析数据。有关帧分析器UI中每个窗格的信息,请参阅帧分析概述

有关其他设置的信息,请参阅帧性能分析选项