前言
本文主要引用cocos关于热更的官方文档,并在此基础上,总结sprout当前热更流程。
阅读本文前,请先阅读资源热更新教程、热更新管理器 AssetsManager,以便更好的理解,当然本文尽量会提炼其关键信息,以便读者快速了解、回顾。
什么是热更
热更(新)本质上是从服务器下载需要的资源到本地,并且可以执行新的游戏逻辑,让新资源可以被游戏所使用,它可以使开发者在不发布新版本的情况下,修复 BUG 和发布功能,让开发者得以绕开苹果等应用发布平台的审核机制,避免长时间的审核等待以及多次被拒造成的成本。
Cocos 热更新机制叫增量更新,其是通过直接比较最新版本和本地版本的差异来生成差异列表并更新。传统的热更新是基于补丁包更新的机制,经常对多个版本之间分别生成补丁包,按顺序下载补丁包并更新到最新版本。
cocos热更概述
manifest
了解cocos热更之前,先要了解manifest。在cocos中,manifest是一种文件格式,其对应的文件简称资源描述文件,是用来描述本地或远程包含的资源列表及资源版本。
manifest格式是仿照json格式,其关键字段的含义如下 :
{
"packageUrl" : 远程资源的本地缓存根路径"remoteVersionUrl" : [可选项] 远程版本文件的路径,用来判断服务器端是否有新版本的资源"remoteManifestUrl" : 远程资源 Manifest 文件的路径,包含版本信息以及所有资源信息"version" : 资源的版本"engineVersion" : 引擎版本"assets" : 所有资源列表"key" : 资源的相对路径(相对于资源根目录)"md5"