有时候我们需要对自己的游戏或者别人的游戏进行分析,比如我们需要了解一个引擎的大体渲染的流程,这个时候我们可以借助一些工具,在PC上我们可以使用Microsoft PIX、Intel GPA、Nvidia的Nsight和PerfHud来截取一帧的数据来分析。由于最近转到移动平台上,有时候也需要分析游戏,这个时候我们可以借助不同显卡厂商的工具来分析。此处,我们以高通的Adreno Profiler为例来分析一个程序。首先,你需要有一个使用高能解决方案的手机:比如小米、锤子等。

有几个需要注意的地方:

  1. 确保USB驱动已经正确的安装。
  2. 确保手机开启了USB调试功能。
  3. 确保程序清单(manifest)中android.permission.INTERNET和com.qti.permission.PROFILER被开启。

假设你已经安装了Adreno Profiler,打开后选择Connect,会出现以下界面:

假设你设置正确的话,会出现上面所示的界面:

  1. 这时打开你的程序,点击refresh,那么可以调试的程序就在上面显示,一定要确保com.qti.permission.PROFILER在manifest中打开,如果没打开会显示found a device but no adreno profiler-enabled app。
  2. 接下来点击Connect。
  3. 连接成功后,我们需要分析OpenGL ES,点击Scrubber GL。
  4. 这个时候可以点击Capture Frame来截取我们的数据。等待截取完成,这个时候我们就可以分析渲染流程了。

关于如何在manifest中添加许可项,读者可自行搜索,因为我最近在研究UE4,下面以UE4 4.10为例来说明怎么添加。

  1. 打开EditàProject Settings。
  2. 选择PlatformsàAndroid,在下图所示的Extra Permissions下面添加新的权限,然后打包即可。

    后记:使用Adreno Profiler分析程序操作还是比较简单的,我在坚果手机和nubia的一个手机上都成功连接,但是红米手机,就是提示found a device but no adreno profiler-enabled app,因为其它机器可以正确连接,所以就没深入去追究原因,不知道你是否也遇到过类似的问题。

使用Adreno Profiler分析android游戏的更多相关文章

  1. Adreno Profiler分析任意安卓游戏特效+抓取资源

    听说可以抓去任意游戏特效..保存下,有空研究 AdrenoProfiler 下载地址 Adreno Profiler分析任意安卓游戏特效+抓取资源 教程

  2. Adreno Profiler 提取手机游戏资源

    https://blog.csdn.net/lly20000/article/details/79774755 step.1 准备工具 1.adb连接工具(我用的cofface adb  ) [cof ...

  3. 【读书笔记《Android游戏编程之从零开始》】19.游戏开发基础(游戏音乐与音效)

    在一款游戏中,除了华丽的界面 UI 直接吸引玩家外,另外重要的就是游戏的背景音乐与音效:合适的背景音乐以及精彩的音效搭配会令整个游戏上升一个档次. 在 Android 中.常用于播放游戏背景音乐的类是 ...

  4. 转 iOS和android游戏纹理优化和内存优化(cocos2d-x)

    iOS和android游戏纹理优化和内存优化(cocos2d-x) (未完成) 1.2d游戏最占内存的无疑是图片资源. 2.cocos2d-x不同平台读取纹理的机制不同.ios下面使用CGImage, ...

  5. Android破解学习之路(三)——Android游戏 切水果破解

    经过前两篇破解教程,想必大家也是明白了破解的简单流程了. 先对APP进行试用,了解APP运行的大概流程,之后从APP中找出关键字(一般的关键字差不多都是支付失败),之后使用Androidkiller进 ...

  6. unity开发android游戏

    环境搭建: Unity+JDK+Android Studio+Android SDK(+NDK) 教程:unity开发android游戏(一)搭建Unity安卓开发环境 注意“Build System ...

  7. Adreno Profiler连接安卓手机profile第三方app渲染过程

    1,下载Android SDK,adb在Android SDK/platform-tools下. 2,添加adb环境变量:http://www.cnblogs.com/xwlyun/archive/2 ...

  8. Android游戏开发实践(1)之NDK与JNI开发03

    Android游戏开发实践(1)之NDK与JNI开发03 前面已经分享了两篇有关Android平台NDK与JNI开发相关的内容.以下列举前面两篇的链接地址,感兴趣的可以再回顾下.那么,这篇继续这个小专 ...

  9. Android游戏开发实践(1)之NDK与JNI开发01

    Android游戏开发实践(1)之NDK与JNI开发01 NDK是Native Developement Kit的缩写,顾名思义,NDK是Google提供的一套原生Java代码与本地C/C++代码&q ...

随机推荐

  1. Javascript 笔记与总结(1-4)this

    js 中函数的 4 种调用方式: ① 作为普通函数来调用,this 的值指向 window,准确地说,this 为 null,被解释成为 window.在 ECMAScript5 标准中,如果 thi ...

  2. diy-pagination-javascript 分页

    <?php isset($_REQUEST['form_single_page_num']) && !empty($_REQUEST['form_single_page_num' ...

  3. 【转】PHP框架性能测试报告 - ThinkPHP 3.2.3 Laravel 5.2 Yii2.0.5

    作为一个PHP开发者,而且是初创企业团队的技术开发者,选择开发框架是个很艰难的事情. 用ThinkPHP的话,招聘一个刚从培训机构出来的开发者就可以上手了,但是性能和后期代码解耦是个让人头疼的事情.不 ...

  4. xcode 路径

    $(SRCROOT)宏和$(PROJECT_DIR)宏 XCode环境变量及路径设置 分类: Objective-C2013-03-11 12:30 41336人阅读 评论(1) 收藏 举报 一般我们 ...

  5. 蓝牙的Baseband说明

    蓝牙的radio部分使用2.4GHz的ISM段,2400 - 2483.5 MHz,通道间隔1MHz,GFS调制,采用跳频技术,每秒至少1600次.连接完成后的跳频次数为1600次/s,在inquir ...

  6. Qt设置系统时间(使用SetSystemTime API函数)

    大家都知道Qt中有QDateTime等有关时间与日期的类,类中包含很多成员函数,可以很方便的实现有关时间与日期的操作,比如:想要获得系统当前的时间与日期,可以调用currentDateTime();  ...

  7. java中的trim()

    trim():去掉字符串首尾的空格.但该方法并不仅仅是去除空格,它能够去除从编码'\u0000′ 至 '\u0020′ 的所有字符. 回车换行也在这20个字符 例1: public static vo ...

  8. IdTcpClient简单示例

    procedure TForm1.btnHttpGetClick(Sender: TObject); begin idtcpclnt1.Host := '192.168.10.88'; idtcpcl ...

  9. Popwindow自定义动画(nexus5不支持暂未解决)

    遇到一个问题,先记录一下 PopWindow自定义动画 import android.app.Activity; import android.graphics.drawable.BitmapDraw ...

  10. pod setup》error: RPC failed; result=18, HTTP code = 200

    Try reducing the postBuffer size in the remote repository config. Follow the steps below Go to remot ...