|
小游戏除了首屏启动优化,我们还需要注意什么?-绍兴网络公司为你呈现时间:2020-09-24 做好了小游戏首屏启动优化的你,请务必“细品”这最佳实践呀!从性能、内存优化、调试、Adapter到使用游戏引擎,每一个板块都为你娓娓道来! 1 性能 ✔垃圾回收 每个客户端实际纹理储存的回收时机依赖于JavaScript中的Canvas、Image对象回收。通过调用wx.triggerGC()方法可加快触发垃圾回收,释放对应的实际纹理储存。 由于GC具体触发时机还要取决于JavaScriptCore自身机制,并不能保证调用wx.triggerGC()能马上触发回收,建议在每局游戏开始或结束触发一下。 ✔混合渲染模式 在一些混合渲染模式的游戏中,游戏场景使用了WebGL的模式渲染,但是一些GUI以及 排行榜 等内容会使用 canvas 2d 的模式渲染。 (温馨提示:该方法仅支持 iOS 6.6.6 以上版本,Android/开发者工具暂不支持。) 2 内存优化 ✔管理机制 Android:内存分为系统和V8两块,两者均沿用了系统原有的内存管理机制。 iOS:小游戏在iPhone上是沿用了iOS系统的内存管理机制。 ✔分析手段和工具 性能监控面板:在监控不同内存的占用情况,还通过不同内存的变化趋势来判断是否有内存泄漏的情况。为了排除GC延迟的影响,可点击开发调试中的Request Force GC。 Heap Snapshot:根据提示操作在微信开发者工具中的调试器的Memory中,Load拷贝出来的文件便可查看V8的内存快照。 V8-CPU-Profile:根据提示操作可查看 CPU 的使用情况。 (温馨提示:以上功能在微信Android7.0.7版本及以上的小游戏开发版和体验版中均已提供) 3 调试 ✔vConsole 如需查看console API输出的日志内容和额外的调试信息,需要在点击屏幕右上角的按钮打开的菜单里选择「打开调试」。此时小程序/小游戏将会退出,重新打开后会右下角会出现一个vConsole按钮。点击按钮即可打开日志面板。 (温馨提示:尽量避免在非调试情景下打印结构过于复杂或内容过长的日志内容(如游戏引擎中的精灵或材质对象等),可能会带来额外耗时。) ✔Source Map 小游戏在打包时,会将所有js代码打包成一个文件,为便于开发者在手机上调试时定位错误位置,小游戏提供了Source Map支持。 (温馨提示:该方法仅支持iOS 6.7.2及以上版本。) ✔真机调试 可实现直接利用开发者工具,通过网络连接,对手机上运行的小程序进行调试,帮助开发者更好的定位和查找在手机上出现的问题。 4 Adapter 基于浏览器环境的游戏引擎在小游戏运行环境下的一层适配层,使游戏引擎在调用DOM API和访问DOM属性时不会产生错误。每位开发者都可以根据自己的项目需要实现相应的Adapter。 5 使用游戏引擎 小游戏是一个不同于浏览器的JavaScript运行环境,没有BOM和DOM API。然而,基本上所有基于HTML5的游戏引擎都是依赖浏览器提供的BOM和DOM API的。所以如果要在小游戏中使用引擎,需要对引擎进行改造。 目前,Cocos、Egret、Laya已经完成了自身引擎及其工具对小游戏的适配和支持。Unity目前还没有对小游戏进行适配。不过小游戏提供了对大部分Canvas 2d和WebGL 1.0特性的支持,有能力的开发者可以尝试自行适配。 除了小游戏平台的游戏引擎,开发者如果想用其他HTML5游戏引擎来开发小游戏也是可以的,但需要对齐进行修改。建议先引入通用的Adapter尝试运行,再把遇到的问题逐个解决。 最后,温馨提示各位小游戏赛道的同学们,小游戏作品提交时间截止为:6月30日晚9:00整!还未提交作品的同学可要抓紧时间哟~ 点击阅读原文解锁更多小游戏“最佳实践”! |