友盟U-APM解决了游戏启动时长的问题

  如今,很多年轻人以游戏来消磨时间,益智类游戏成为休闲领域中的一个重要类型。但是在打开时总会遇到一些问题,比如“启动时间太长、加载状态中、启动慢”等。这些问题会让用户瞬间降低使用感,这篇文章就针对游戏启动时长的问题进行分析解决。

  一、项目背景

  这是一款益智游戏。在打开游戏时会出现打不开、加载不出来等等问题。下文就以友盟+u-apm这款工具去解决以上问题。

  二、所遇到的挑战

  2.1 难在于发现问题

  随着用户的增加,App会出现一系列的问题,就会得到越来越多的用户反馈:如,游戏打开慢、界面加载不出来等,反而会降低用户的体验感。

  有上线经验的程序,应该都知道上线游戏能得到用户反馈的比例是很小的。用户反馈的两个必要条件:

  喜欢你的游戏(需要你的程序)

  程序存在不能忍受的问题

  所以,在用户向我们反映同一种问题,或者其他系列问题时,我们一定要重视起来,针对用户反映的问题去检测,从而得到改善,使用户感受到最佳的体验感。

  2.2 更难于定位问题

  针对用户反馈的启动慢问题?

  程序员:启动慢? 首次启动慢? 冷启动慢? 还是热启动慢啊? 什么机型? 系统什么版本?

  以上这一系列问题,肯定是没有办法去问用户的。即便是问了也没有结果。因为大部分用户是不会回复的(能给反馈已经很不易了),剩下的一部分估计要反问了:什么是冷启动?什么是热启动?...

  2.3 获取到解决方案

  友盟+ U-APM 应用性能监控平台:(之前用过友盟+ 的统计功能,就感觉非常好用。这次又是友盟帮助解决了大问题。)

  如图,可以看到U-APM为我们提供了”2.2”中程序员提出的所有问题的信息统计,感觉真的是不要太强大了。

  统计信息倒是有了,可没有那么多的测试机啊,总不能先接入SDK发布一个版本,看来用户数据来校验问题是否修正吧。这种想法可真是太可怕了,光是启动慢还好,要是闪退这种直接导致程序崩溃的致命问题,肯定会伤到好多用户,那么,也就没有用户在去使用App了。不过好在U-APM还为我们提供了云真机功能。

  “云真机”提供了海量Android、iOS真机,通过资源集中管理,合理调度分配,为开发者提供发版前测试、发现线上问题后复现等场景使用,助力开发者平衡成本与需求,提升研发效率。友盟+云真机搭载在U-APM应用性能监控平台上,U-APM提供了灵活地测试操作界面,支持ADB调试、WEB远程调试、扫码、抓包、虚拟定位等测试功能,并提供了测试报告供开发者后续查看。并且还推出了免费体验时长,真是贴心~

  三,解决问题的步骤

  3.1 接入U-AMP

  接入流程如下:(每一步官方都有详细文档,这里不再赘述)

  3.2 定位问题

  通过接入U-AMP结合官方提供云真机,多机型多次测试后。问题确定为冷启动时间较长。

  几经周折,查了很多启动慢相关文章,解决方案基本归结如下:

  1.Resources管理资源:

  Resources目录下面的所有资源会在ResourceManager中记录下来,而ResourceManager就是一个文件,通常是一个YAML格式的文本文件。而这个文件是会在冷启动时加载的。所以Resources目录下面的有越多的资源,那么这个ResourceManager就会越大,加载时间也会越长。

  建议:使用AssetBundle的方式管理,在现在官方也推出了可寻址系统Addressable AssetSystem

  2.Shader编译时长:

  如果只有游戏安装之后第一次启动时间过长,一个很大的可能是Shader编译,之后游戏启动因为有了Cache,所以会快很多。这种情况的话建议查看下Always Include的Shader内容和变体。

  建议:使用shadervariantcollection等方案替代。

  3.纹理资源过大:

  在游戏中一般是最大的资源,选择合适的压缩格式进行压缩,既可以减少内存占用,又能够加快资源的加载速度。压缩格式的选择要从显示效果和压缩率上进行权衡。

  建议:一般在Android上使用ETC格式,在iOS上使用PVRTC格式,在某些情况下,可能还可以考虑使用Alpha通道分离技术进行压缩处理。

  3.3 解决问题

  由于原工程打包慢,所以我新建了项目,模拟还原了3.2中:Resources管理资源和纹理资源过大问题:(新建工程,在Resource文件夹中放了资源,在其他文件夹下放了比较大的纹理)

  打包测试结果如下

  经过减少Resource文件夹资源,和对比较大的贴图压缩后。

  打包测试结果

  经过对比可以看到启动时间确实是减少了,证明方案可行,可以应用到实际项目。

  四,项目总结

  相比于Android或者iOS原生App,Unity3D引擎开发的游戏在冷启动时间上确实比较长。但是过长的启动时间甚至损失一批用户。若没有用户反馈,可能问题一直得不到解决,很可能成为收益少的一大因素。

  所以,平时开发时注重资源管理,后续就不会有类似问题。另外测试数据量,以及低端机型用户体验都是有必要作为关键测试点的。

  最后强烈推荐友盟+SDK。不管是统计工程和还是应用性能分析以及崩溃反馈都可以帮助开发者及时快速定位解决问题,以免带来更大的损失。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值