什么是热更新呢?首先需要了解移动程序的发布流程:将程序进行打包成相应平台的程序包,就拿Appsrote平台来说,需要将程序打包成xcarchive,打包好后,上传苹果商店,上传之后,苹果商店需要进行审核(审核的时间一般是一周左右),审核通过之后,玩家才可以下载最新的程序,下载时需要下载整个程序包,然后再安装最新程序包,安装好后,才可以运行最新游戏。下图是程序更新流程图。
因此如果将资源和程序打包时放到程序包里,只要对资源和程序进行修改,就需要重新打包上传,提交,审核,下载,安装,非常的麻烦,因此需要一种方案来上述问题。以下的这种方案就是解决更新的问题。首先有一个程序基础包,在上传平台之后就不用对其代码和资源进行修改。然后将以后每次修改的资源放到资源服务器。当程序启动时,从资源服务器获取最新的资源。具体流程是:
1.将资源打包成AssetBundle,并将打包的资源文件的MD5保存到一个文件里,并定义此次更新的版本号xx.xx.xxx 。
2.将资源提交到资源服务器
3.客户端启动,从资源服务器取得版本号ver1,然后再读取本地资源的版本号ver2,比较ver1与ver2,如果ver1与ver2相等,直接进入游戏,否则从服务器下载MD5文件列表,然后读取本地的MD5文件列表,然后对比两个文件,找到MD5改变的文件。
3.下载MD5文件改变的资源
4.更新本地版本配置文件
5. 进入游戏
这就是所谓的热更新,是指当我们在程序启动时,自动更新资源和程序,绕过平台的审核,这样更新程序和资源就非常方便。
QQ群:347925343