GPU Debugging Tools

来源:互联网 发布:印象笔记 为知笔记 编辑:程序博客网 时间:2024/06/05 01:07

From:http://tools.android.com/tech-docs/gpu-profiler

GPU debugging tools 是正在实验中的功能,目的是为了帮助检查GPU的状态和了解是什么导致了特定的渲染结果

安装 GPU debugging tools

默认studio没有安装GPU debugging tools,用之前你需要添加一下,你可以在SDK manager里边 SDK Tools选项下找到它

这里写图片描述

添加追踪库到你的应用

为了使用这个探查器需要首先在应用中加载追踪库,对于你的代码是C++或者Java两种形式你需要两种不一样的加载方式

不管你是用哪种方式进行加载,首先要做的是把它copy到你的项目中。它的路径是安装的SDK的子目录:/extras/android/gapid/android//libgapii.so

你需要将相关的abi文件夹都复制到你项目的jniLibs目录下
/app/src/main/jniLibs ,如果你项目中不存在该文件夹需要创建下,就像SDK Manager的文件夹一样,jniLibs应该包含你要支持的abi文件夹,如果你不知道你计划支持哪个ABIs,你可以复制所有的folders到你的项目中,最终你的项目目录结构应该像这样:/app/src/main/jniLibs//libgappii.so

通过native代码加载追踪库

#include <android/log.h>#include <dlfcn.h>#define PACKAGE_NAME "" // Fill this in with the actual package name#define GAPII_SO_PATH "/data/data/" PACKAGE_NAME "/lib/libgapii.so"struct GapiiLoader {    GapiiLoader() {        if (!dlopen(GAPII_SO_PATH, RTLD_LOCAL | RTLD_NOW)) {            __android_log_print(ANDROID_LOG_ERROR, "GAPII", "Failed loading " GAPII_SO_PATH);        }    }};GapiiLoader __attribute__((used)) gGapiiLoader;

通过Java代码加载追踪库

static {     System.loadLibrary("gapii");}

运行追踪库

需要注意的是,一旦你已经添加了追踪库到项目中,你的应用将会停在启动页,直到连接到Android Studio的追踪接收器,这将会导致除了调试外你的应用无法正常运作,所以当你已经用完该探查器后从你的应用中移除追踪库

开始追踪前,正常的部署和运行你的应用,在等待追踪接收器过程中应用会加载一个空白的页面,为了启动追踪接收器,需要在Android Monitor的CPU/GPU 选项卡下,点击左侧GPU子选项的红色的按钮这里写图片描述

一旦你已经开始追踪,你可以跟平时一样操作你的应用,当你操作应用时,所有的GPU数据都会被追踪器捕获,当你已经操作完成,再次点击那个追踪按钮停止追踪器的运行,一旦跟踪已完成写入文件,它将打开准备进行检查

阅读追踪结果

这里写图片描述

追踪结果在你工程的一个新的captures的文件夹中,当你打开一个追踪文件时,界面上将会显示这个追踪文件的全序列,你可以选择一个独立的帧通过顶部栏或者GPU命令窗口,一旦你选了一个帧,中间偏右的帧缓冲区窗口会显示这个帧的内容,如果你在左侧GPU命令窗口展开帧,你会看见个人的绘图命令和可用的GL命令

如果你点击其中一个绘图命令,帧缓冲区预览界面将会按照绘图命令更新最新的内容,同时靠右第一点区域的内存窗口也会更新显示相关内容的内存状态
这里写图片描述

任何时候,当你选择帧或者绘制调用时你可以使用GPU 状态窗口或者Textures tab查看相关的GPU状态

如果你运行时出错,请在Tracing的公共问题区记录下bugs来帮助我们2.0版的发布,你可以通过此链接https://code.google.com/p/android/issues/entry?template=Android%20Studio%20bug 提交问题或者直接通过Android Studio的Help - Submit Feedback反馈

1 0
原创粉丝点击