有时候我们需要对自己的游戏或者别人的游戏进行分析,比如我们需要了解一个引擎的大体渲染的流程,这个时候我们可以借助一些工具,在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. PHP 单例模式代码片段

    <?php error_reporting(E_ALL | E_STRICT); class single{ public $hash; static protected $ins = null ...

  2. Ubuntu 安装字体

    将字体Copy到/usr/share/fonts/windows目录下,然后执行以下几条命令更新系统字体缓存: cd /usr/share/fonts/vista/ sudo mkfontscale ...

  3. 一些Discuz!代码

    首行缩进2字符 [code][p=20, 2, left]首行缩进2字符[/p][/code]

  4. 【Xamarin Doc】 Introduction to Storyboards 笔记

    http://developer.xamarin.com/guides/ios/user_interface/introduction_to_storyboards/ Segues There are ...

  5. ADO 事务

    Ado.Net事务处理.在ADO.NET 中,可以使用Connection 和Transaction 对象来控制事务.若要执行事务,请执行下列操作:• 调用Connection 对象的BeginTra ...

  6. SET GLOBAL long_query_time=0

    SHOW VARIABLES LIKE '%long%'

  7. InnoDB , MyISAM :MySQL 5.7 Supported Storage Engines

    http://dev.mysql.com/doc/refman/5.7/en/storage-engines.html https://en.wikipedia.org/wiki/ACID https ...

  8. sqlserver 获取当前操作的数据库名称

    Select Name From Master..SysDataBases Where DbId=(Select Dbid From Master..SysProcesses Where Spid = ...

  9. Qt持久性对象进行序列化

    Mfc和Java中自定义类的对象都可以对其进行持久性保存,Qt持久性对象进行序列化当然也是必不可少的.不过这个问题还真困扰了我很长时间……Mfc通过重写虚函数Serialize().Java则是所属的 ...

  10. gradlew常用命令

    ./gradlew -v 查看版本 ./gradlew clean 清理.下载依赖 ./gradlew build  构建 libgdx项目中的gradlew run: ./gradlew deskt ...