[Render] Arm Graphics Analyzer 用户指南 [2] - 开始之前

英文原文:https://developer.arm.com/documentation/101545/0511/?lang=en

3. 开始之前

按照本节中的步骤准备您的应用程序,准备好使用 Graphics Analyzer 进行跟踪

3.1 主机系统要求

确保您的主机满足运行 Graphics Analyzer 的这些要求:

  • 如果您正在捕获 Linux 目标,它可以使用TCP/IP 连接到目标以进行在线分析,并打开端口5002。

默认端口为 5002。要更改默认端口,请使用 --port/-p 选项并指定介于 1 和 65535 之间的不同端口号。有关详细信息,请参阅第 35 页的 4.3 通过 TCP/IP 捕获 Android 和 Linux 设备 .

  • 至少有 8GB 的系统 RAM 可用。 Arm 建议您至少有 12GB 的可用 RAM。
3.1.1 增加可用内存

  要增加图形分析器可以容纳的最大捕获大小,请增加应用程序可用的内存量。

程序

  1. 使用文本编辑器打开 <install_directory>/gui/aga.ini
  2. 查找以 -Xmx 开头的 Java 虚拟机 (JVM) 参数。 参数后面的数字定义应用程序在运行时声明的最大内存量,尾随 m 表示兆字节或 g 表示千兆字节
  3. 将此数字增加为四的倍数,以匹配您系统的功能。 确保您的修改遵循与参数相同的格式,即没有空格和尾随的小写 m 或 g。
3.1.2 临时存储

  根据被跟踪应用程序的复杂性,Graphics Analyzer 可能需要大量的临时磁盘存储。

  默认使用系统临时存储目录。 如果此目录中没有足够的可用空间,Graphics Analyzer 会显示警告并停止将数据缓存到目录,从而增加内存使用量。

  通过单击 Edit > Preferences 并为自定义临时存储目录字段选择现有目录来更改临时存储目录。

3.2 目标系统要求

Graphics Analyzer 支持跟踪特定的 Khronos Group API

对于安卓:

  • 适用于 Android 9 及更高版本的 Vulkan 1.0-1.2。
  • 适用于 Android 8 及更高版本的 OpenGL ES 2.0、3.0、3.1 或 3.2。

支持图形分析器的推荐 Android 设备列表可从开发人员的 Arm Mobile Studio 支持的设备页面获得。

对于 Android 以外的平台:

  • Vulkan 1.0-1.2
  • OpenGL ES 2.0, 3.0, 3.1, or 3.2
  • OpenCL 1.0, 1.1, and 1.2
3.3 安卓

准备在 Android 目标上捕获应用程序时,请遵循这些说明。

3.3.1 Android 目标的先决条件

要在 Android 目标设备上运行图形分析器,请确保正确配置 Host 和目标。

配置你的Host

  • 安装 Android 调试桥 (ADB),它随 Android 软件开发工具包 (SDK) 提供。
  • 编辑主机上的 PATH 环境变量以包含 Android SDK 平台工具目录的路径。

配置您的设备

  • 将目标设备连接到主机上的 USB 端口。
  • 在目标设备上启用开发者模式。
  • 通过选择 Settings > Developer options 在目标设备上启用 USB 调试。
  • 对于可调试应用程序,请按照第 18 页的 3.3.2 准备捕获可调试应用程序中的说明进行操作。
  • 对于不可调试的应用程序,请按照第 18 页的 3.3.3 准备捕获不可调试的应用程序中的说明进行操作。

无法在 Android 的发布版本上捕获不可调试的应用程序。

3.3.2 准备捕获可调试的应用程序

完成所有先决条件后,目标设备将出现在图形分析器的设备管理器中。

开始之前

  • 目标设备必须运行Android 8.0或以上的发布版本。
  • 完成Android目标的先决条件。

流程

  1. 在 Graphics Analyzer 中打开 Device Manager ,找到你的设备。更多细节请见第32页4.2通过adb为安卓设备采集。
  2. 如果设备管理器没有找到你的设备,测试一下adb连接。将目标设备连接到你的主机,然后在终端窗口运行adb设备命令。如果adb连接良好,你会看到你的设备的ID,没有权限错误,你可以顺利运行adb shell。更多信息请参见《Android Studio用户指南》。
3.3.3 准备捕获不可调试的应用程序

  要捕获不可调试的应用程序,你必须安装一个Vulkan或OpenGL ES层驱动,并手动安装和配置aga-daemon,以整理来自不同捕获应用程序的信息。然后使用设备管理器来连接到你的设备。

开始之前

  • 一个Arm Mobile Studio Professional或Arm Development Studio许可证。
  • 目标设备必须运行Android 10或更高版本的eng或userdebug build。参见https:// source.android.com/setup/build/building以了解更多信息。
  • 完成Android目标的先决条件。

关于这项任务

  • 这些说明只适用于在运行Android 10或更高版本的预生产设备上进行测试。
  • 这些指令并不要求被剖析的应用程序是可调试的
  • Android虚拟了文件系统,给应用程序的每个用户一个唯一的应用程序数据目录,以他们的用户ID命名。默认用户,也是最常用的,是用户0。 你可以用以下adb命令查询设备上配置的用户列表。

adb shell pm list users
Users:
UserInfo{0:Name String:c13} running

UserInfo在:Name String之前的第一个数字是数字user_id,你可以在应用程序目录路径中使用它。

流程

  1. 安装适合你所使用的API的层驱动。
  • 要使用Vulkan API层系统捕获Vulkan应用程序,你必须将拦截器作为全局Vulkan层安装在你的设备上。
    a. 将libVK_layer_aga.so复制到设备上。
  • 对于32位拦截器。
    adb push target/android/arm/libVK_layer_aga.so /data/local/tmp adb
    shell chmod 777 /data/local/tmp/libVK_layer_aga.so
  • 对于64位拦截器。
    adb push target/android/arm64/libVK_layer_aga.so /data/local/tmp
    adb shell chmod 777 /data/local/tmp/libVK_layer_aga.so

b. 以超级用户身份在你的目标设备上打开一个shell,运行。

adb shell
su

或者

adb root
adb shell

c. 将libVK_layer_aga.so复制到app文件夹中并重命名。

cp -f /data/local/tmp/libVK_layer_aga.so
/data/user/< user_id >/< package_name >/libVkLayerAGA.so

d. 从主机上启用层。

adb shell settings put global enable_gpu_debug_layers 1
adb shell settings put global gpu_debug_app < package_name >
adb shell settings put global gpu_debug_layers VK_LAYER_ARM_AGA

更多信息请参见在Android上安装Vulkan验证层。

  • 为了捕捉OpenGL ES应用程序,你必须将拦截器安装为设备上的全局OpenGL ES层。

a. 将libGLES_layer_aga.so复制到设备上,然后复制到app文件夹中。

adb push libGLES_layer_aga.so /data/local/tmp
adb shell chmod 777 /data/local/tmp/libGLES_layer_aga.so
adb shell cp /data/local/tmp/libGLES_layer_aga.so /data/user/< user_id >/
< package_name >

b. 启用层。

adb shell settings put global enable_gpu_debug_layers 1
adb shell settings put global gpu_debug_app < package_name >
adb shell settings put global gpu_debug_layers_gles libGLES_layer_aga.so

更多信息请参见在Android上安装OpenGL ES层。

  1. 在你的主机上打开一个shell。
  2. 导航到 Graphics Analyzer 的安装目录。
  3. 将 daemon 程序复制到你的目标设备上。
  • 对于32位的daemon。
    adb push target/android/arm/aga-daemon /data/local/tmp
  • 对于64位的daemon。
    adb push target/android/arm64/aga-daemon /data/local/tmp
  1. 以超级用户身份在你的目标设备上打开一个shell,运行以下程序

    adb shell
    su

  2. 在设备上安装 daemon 程序,并授予适当的权限。

cp /data/local/tmp/aga-daemon /system/bin
chmod 777 /system/bin/aga-daemon

  1. 在主机上输入以下命令。

adb forward tcp:5002 tcp:5002
adb shell aga-daemon

接下来的步骤

  打开图形分析器和设备管理器,然后打开Linux/IP标签,连接到默认的IP地址127.0.0.1和端口5002。更多信息见第32页4.2通过adb为安卓设备采集。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值