当前位置 : 游戏

手游质量方面的现状及开发者需注意的问题

2017-01-11 15:53 作者: 转载出处:上方网 推荐人:一飞

  在刚刚过去的2016年里,中国移动游戏行业迎来了新的爆发取得了很多不错的成绩。但是移动游戏质量仍然不容忽视,由于畅销榜单往往多为对质量要求更高的重度游戏,因此精品游戏与普通游戏的质量差异实际上更为显著。下面上方网小编整理了手游中的待解顽疾,以及开发者需要注意的问题。

  一、兼容性问题

  不同手机品牌上游戏的兼容性表现不一,不同品牌手机的问题率差别不大,但不同品牌问题率仍有不同。

  内存越大,兼容性问题也越少。设备内存对兼容性的影响明显。

  Android4.0的兼容性问题最多,Android操作系统中,表现较好的为android5.x,兼容性问题最少。其中,Android 5.0版本兼容性最好,问题率最低,仅约10%。发现问题最多的版本为Android 4.0,出现最多的问题为安装失败。主要原因是Android4.0版本的市场份额只有1.2%,并且不断下滑,有很多游戏已经不支持Android4.0版本,Android 6.0的问题率比Android 5.0和5.1版本略高,说明新版本对游戏的适配还有待提升。

  开发者注意:游戏开发者尤其注意兼容情况,针对小内存的手机做一定优化,确保在小内存机器上不会出现过多问题,可以根据自己的需要自行选择需要支持的版本。

  二、手游崩溃问题

  手游的崩溃情况主要受到了手游内存,设备系统以及游戏类型三个维度的影响。

  手游内存维度:手机内存越大,出现崩溃的问题越少。

  设备系统维度:Android 6.0的崩溃问题率最高。相比总的问题率,Android 6.0的崩溃问题率明显较高。

  游戏类型维度:棋牌中心类产品玩法比较成熟,游戏逻辑较简单,游戏适配最好,崩溃问题率最低。

  开发者注意:开发者想降低崩溃问题率,需要针对小内存手机做一些特殊优化,应该重视Android6.0版本的适配,选择合适的游戏类型降低崩溃率。

  以下4种解决办法开发者可以选择:

  1、通过异常堆栈找到对应的代码进行分析,java可以直接看到代码堆栈,native程序可用ndk-stack还原到代码异常堆栈,根据逻辑找到原因;

  2、与上一个稳定版本对比代码变化,可使用比较工具如beyondcompare,仔细分析所修改的代码,找到问题原因;

  3、直接调试分析,使用Android Studio进行调试,Java和Native程序都可以考虑,在代码异常发生之前单步跟踪,找到问题原因;

  4、关键位置多打些debug日志等待问题重现,重现后通过日志缩小问题范围再结合代码进行分析,找到问题原因

  三、UI异常问题

  UI异常主要包括了游戏界面出现黑屏、白屏、花屏、资源加载失败等问题。分别从内存、操作系统、游戏类型来看,1G内存手机的问题率远远高于2G以上手机;Android 4.0和Android5.1版本的UI问题较多;飞行射击、休闲益智类游戏出现UI异常的概率较高,网络游戏出现UI异常的概率相对较低。

  开发者注意:

  1、黑白屏和花屏问题一般是跟Android设备的兼容适配强相关的问题。具体跟设备的屏幕尺寸、GPU类型,定制化Android版本等相关。例如关注GPU对一些纹理的支持格式;以及虚拟控件对图片本身的显示效果等。

  2、重影、错位,或者资源加载失败,一般是游戏本身的逻辑问题。一旦出现,一般不会只在特定的机型上发生。这块UI问题,产生的原因有时也与游戏引擎相关,就Unity引擎开发的游戏而言,我们发现很多开发者没按官方图片格式等来做,注意图片格式符合官方标准等。

  四、安装失败问题

  安装失败问题主要受到了安装系统和游戏类型两个维度的影响。

  从系统上来说,Android 4.0和4.1系统的安装失败最多,分别为68%和13%,目前很多游戏已不支持该版本Android系统,所以安装失败问题相对较多。

  从游戏类型来说,休闲益智类游戏安装失败最少。动作冒险、角色扮演类游戏安装失败问题普遍较多。

  开发者注意:安装失败,主要有3种原因。

  1、ROM空间不够。这块的解决方法有2种:可通过减包优化,或更换手游的目标机型来解决

  2、存在游戏版本功能特性改版后,不适配当前的机型。可根据产品的变化点,去逐条分析,排查适配兼容问题。

  3、手游适配的安卓版本范围与当前机型的安卓版本不一致。

  五、内存超标问题

  现在的移动设备内存都比较有限,安卓系统的特性也容易导致内存紧张。当游戏占用内存过高时,可能会造成游戏卡顿甚至无法启动的现象。内存问题在低档机型上最为严重,角色扮演、动作冒险、飞行射击和网络游戏类内存超标现象比较明显。内存占用最高的类别为动作冒险类,在中档机型及高档机型中都占据第一。在低档机型中网络游戏类占用最高。占用最低的是棋牌类,在三档机型中全为最低。

  开发者建议:首先在代码逻辑方面,及时释放不再使用的内存,减少频繁的内存分配和释放,有条件的情况下可以使用内存池和对象池技术。在游戏资源方面,控制资源的尺寸,进行按需加载和释放,防止不再需要的资源继续留在内存中。同时一些参数也会影响资源的内存占用,比如纹理长宽非2次幂,纹理mipmap数量等,需要特别注意。

  开发者注意:在低端机型上对游戏的性能优化需要引起重视。

  六、业务安全问题

  业务安全方面发现的主要问题可分为致命问题、严重问题和一般问题,占比分别为18.48%、62.74%和18.78%。致命问题主要为服务器崩溃,全屏攻击,刷属性;严重问题主要为无敌,秒杀,弱化怪物;一般问题主要为破坏游戏玩法,敏感信息,异常状态下非法操作。

  业务安全主要受到了游戏引擎和游戏类型两个维度的影响。引擎方面,Unity引擎的游戏相对发现的安全问题较多,由于Unity引擎在4.x版本的安卓平台上还未支持il2cpp,会存在C#代码容易被反编译的漏洞;游戏类型方面,飞行射击类游戏的问题最多。

  开发者注意:

  1)增加反调试机制防止游戏在运行时被破解;

  2)屏蔽常规的ptrace等注入方式;

  3)配置编译选项将so文件中的函数名进行抹消;

  4)针对动态库so以及资源文件进行完整性校验;

  5)针对Unity引擎下的关键逻辑动态库dll文件,需要进行隐藏或者加密处理;

  6)针对Apk文件的二次打包进行校验处理;

  7)避免输出关键逻辑相关的log信息。

  8)针对游戏运行时的内存数据进行加密处理;

  9)本地客户端与服务器端的通信协议必须使用加密保护,且加密Key至少每次登录变化一次;

  10)针对通信协议强交互类型的游戏,关键逻辑运算必须有服务器端完成;

  11)针对通信协议弱交互类型的游戏,需要记录用户在单局游戏内的数据,上报至服务器端进行统一校验。

  七、系统安全问题

  系统安全方面发现的主要问题为源码安全漏洞、系统安全漏洞和系统安全风险,占比分别为46.14%、40.89%和12.96%。发现的系统安全问题中,源码安全漏洞问题数最多,占比为46.14%。需要引起开发者重视。其中安全漏洞为在游戏具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问系统。

  手游安全性问题系统安全漏洞问题主要分布为:高危34.61%,中危55.65%,低危9.74%。

  开发者注意:源码安全漏洞问题数最多,高危漏洞超过三成,安全漏洞主要为:Web组件远程代码执行漏洞 、 HTTPS敏感数据劫持漏洞和私有文件泄露风险,会对开发者造成极大的安全损失;安全风险主要为:BroadcastReveiver组件暴露风险、Activity组件暴露风险和私有文件泄露风险,也需要引起开发者重视。

  八、登录问题

  由于登录问题会直接导致玩家无法进行游戏,一旦问题爆发,玩家很容易跑到应用商店刷评论、打低评分,表示抗议。“闪退”、“死机”也是直接导致用户无法进行游戏的严重问题。


一站关注,多维度进入移动游戏圈
上方网: sfw-2012
上道: shangdaowx
小伙伴招聘:xhbzhaopin
爱知客: izhike2012
标签: 手游质量    
相关阅读
你可能感兴趣的资料