安卓游戏性能分析工具使用汇总

本文地址:https://blog.csdn.net/t163361/article/details/82424553
最近准备申请新星创作者,需要2000个粉丝关注,觉得文章有用的,请点一下左侧边栏的关注,谢谢。

最近一段时间在研究市面上顶尖游戏的渲染效果如何实现。把最流行的四款工具都用了一个遍。遇到很多坑,具体的参考文章以及细节补遗在这里汇总一下。
市面上的真机性能分析工具主要有如下几种
1.AdrenoProfiler:高通出品,经典版本,模型和纹理都可以批量导出,但是使用过程中,经常遇到读不到手机的情况,可以多等一会或者重开程序试试。需要高通手机。不需要root。
2.Snadragon Profile:高通出品,新开发的版本,模型和纹理不能批量导,但是使用上比老款好用多了,基本上手机连上就可以用了。需要高通手机。不需要root。
3.Intel GPA:英特尔出品,这个是和机型无关的,这款软件最溜的地方在于可以在pc上截模拟器的数据。
4.ARM MGD:ARM出品,这个需要Mali的机器,自己的应用,可以修改AndroidManifest文件添加一个标记。其他人的应用,就只是使用Root的方式了。

具体分析:

AdrenoProfiler
相关教程:
Adreno Profiler分析任意安卓游戏特效+抓取资源
使用细节:
a.比较吃电脑的环境,如果环境配置的不好的话,怎么也认不出来手机。
b.支持wifi模式。

Snadragon Profile
相关教程:
Snapdragon Profiler快速入门指南 文章已经丢失
使用细节:
a.因为没有使用root模式,所以一些游戏应该是做了底层反调试的,一调试就闪退比如(决战!平安京),这样的游戏如何分析呢,就用到下面的两款软件。
b.使用这个软件导出的纹理经常会出现alpha丢失的情况。但是软件里面是可以看的,我们这美术就想了一个比较溜的方法,打开alpha后,使用截图工具,然后在ps里面把截的alpha图合并到纹理的alpha图层里。

Intel GPA
相关教程:
使用 Intel GPA 与 分析3D程序和抓取模型
用GPA对android应用绘制分析
使用英特尔® INDE 图形性能分析器 (GPA) 分析和优化 Windows* 游戏应用
使用细节:
a.这个工具支持真机,也支持模拟器。我使用的就是模拟器,目前公认比较好用的模拟器是网易的那款,一定要选一个好用的模拟器,不然出不来。
b.最新的2017,2018版本我在win7上使用的时候要么挂不上,要么报一个函数丢失的问题。最后使用的2014版本,成功截出来数据。数据分析的话,新版本支持老版本的数据。
c.截出来的模型是扁的,而且UV和模型是只能分别导出的,只把模型导入3dmax里面是没办法使用的。
d.模拟器只能使用DirectX模式渲染才有效。而且虽然shader可以截出来,但都是汇编级别的,满屏的mov,大神可以看看,我等小白就绕路吧。
e.真机貌似也可以,但我没做测试。
c和d遇到的问题可以用下面这款软件解决。

ARM MGD
相关教程:
使用Mali Graphics Debugger调优Unity程序(Killer示例)
解决Read-only file system 2018-9-20

mount -o remount,rw /system

解决Read-only file system

摘录Shell执行脚本

#拷贝mgd版OpenGL ES运行时库和mgd后台进程到手机sdcard文件夹
cd /your_computer/path_of_installed_mgd

adb push libGLES_mgd.so /sdcard/
adb push mgddaemon /sdcard/

#准备进入手机进行命令行操作
adb shell
#以下命令在手机中执行
su
#拷贝mgd版OpenGL ES库和mgd后台进程到手机system文件夹并且修改为可执行权限
cd /sdcard/cp mgddaemon /system/bin/mgddaemon
chmod 777 /system/bin/mgddaemon
cp libGLES_mgd.so /system/lib/egl/libGLES_mgd.so
chmod 777 /system/lib/egl/libGLES_mgd.so

#Android 4.2 和 4.3切换到mgd版OpenGL ES运行时库:改egl.cfg配置方式
cp /system/lib/egl/egl.cfg /system/lib/egl/egl.cfg.bak
echo "0 0 mgd" > /system/lib/egl/egl.cfg

#Android 4.4 and 5.0切换到mgd版OpenGL ES运行时库:文件链接方式
cd /system/lib/egl
ln -s libGLES_mgd.so libGLES.so
ln -s libGLES_mgd.so libEGL_mgd.so
ln -s libGLES_mgd.so libGLESv2_mgd.so
ln -s libGLES_mgd.so libGLESv1_CM_mgd.so

#设置mgddaemon,叫它只调试com.tencent.killer这个进程。这里应填入你自己的进程id
echo "com.tencent.killer" > /system/lib/egl/processlist.cfg

#先退回到电脑,可能不止一次exit
exit

#准备打通调试信息转发通道
adb forward tcp:5002 tcp:5002

#再次进入手机,启动mgd后台进程
adb shell
su
mgddaemon

作者:DonaldW
链接:https://www.jianshu.com/p/35096e796aa3
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

使用细节:
a. adb push这句话执行的是把MGD安装目录下的libGLES_mgd.so和mgddaemon给推到手机的sdcard路径下。
安装目录下这样的文件有很多一定要选对,不然执行不成功。
我的魅蓝3分别使用下面两个路径的文件

安装目录/Mali Graphics Debugger v4.9.2/target/android/arm/rooted/armeabi-v7a/libGLES_mgd.so
安装目录/Mali Graphics Debugger v4.9.2/target/android/arm/mgddaemon

b. cd /sdcard/cp mgddaemon /system/bin/mgddaemon 这句话需要分成两句执行

cd /sdcard/
cp mgddaemon /system/bin/mgddaemon 

c.如果执行第二句,遇到如下报错

cp: /system/bin/mgddaemon: Read-only file system

可以参考上面的第二篇教程,我是使用的教程里的第二种方法解决的。

以上所有的分析都基于win7的环境,mac的没做测试。
ARM新的性能调优工具
Arm Mobile Studio 只是记录一下,还未使用
Unity插件
视频教程

其他

导出的shader如何看
a.如果本身shader是用unity写的,比如云裳羽衣一类的,是可以通过参数变换翻译成unityshader的。这块有时间再单独写篇文章。可以参考GLSL转UnityShader
b.如果是其他引擎的比如网易全家桶的,只能看逻辑,自己仿写了(我还没搞定~)。
c.如果是hlsl的汇编级别的,可以看看龚敏敏大神的转译工具,转成GLSL的话,至少还能看。
DXBC2GLSL工具
d.新发现一个dxbc的转换工具
dxbc_reader
e.dxshader字节码转opengl
hlslcc
不过只是理论上可以,我还没走通。

UV和顶点分离的模型如何处理
a.惯例,只给解决思路,不提供工具。比如MGD可以把顶点,法线,切线,UV都分别导成obj文件。
其实可以把顶点和UV的obj文件使用文本编辑器打开,都是明文的。然后参考obj文件的文件格式,就可以合并成一个UV正常的模型。决战!平安京已经测试通过^^
过程中有啥问题,可以给我发邮件t163361@126.com

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Android平台提供了许多性能分析工具,用于帮助开发者识别和解决应用程序性能问题。以下是一些常用的Android性能分析工具: 1. Android Profiler:Android Studio提供的内置工具,可用于监视应用程序的CPU、内存、网络和电池使用情况。它可以显示实时数据和时间序列图,并允许开发者分析应用程序的性能瓶颈。 2. Traceview 和 Systrace:这两个工具用于分析应用程序的方法调用和系统事件。Traceview提供了一个可视化的方法调用图,可以帮助开发者找到影响性能的瓶颈。Systrace则提供了更全面的系统级性能分析,包括CPU、内存、绘制和I/O等方面的信息。 3. Memory Profiler:Android Studio中的Memory Profiler工具可以监视应用程序的内存使用情况,并帮助开发者找出内存泄漏和不必要的内存分配。它提供了堆转储和内存分配跟踪功能,以及实时内存使用图表。 4. Network Profiler:Android Studio的Network Profiler工具可以帮助开发者分析应用程序的网络使用情况。它提供了实时网络传输监视和数据传输分析功能,包括请求和响应的详细信息、传输时间和数据大小等。 5. Battery Historian:Battery Historian是一个用于分析应用程序电池使用情况的工具。它可以通过分析系统日志和电池状态数据,帮助开发者找出应用程序中导致电池消耗过高的原因。 除了以上提到的工具,还有其他一些第三方的性能分析工具,如LeakCanary用于检测内存泄漏、MAT(Memory Analyzer Tool)用于分析Java堆转储文件等。开发者可以根据自己的需求选择适合的工具进行Android性能分析

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

听星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值