cocos2dx热更新流程

1.查询本地版本文件获取版本信息(本地版本文件与脚本的版本信息不同时需将脚本中的最新版本信息写入版本文件中)

2.将本地版本信息发送给后端,与后端记录的版本进行比较。

3.若版本不对,后端返回最新的版本号和相应更新文件url文件列表和对应的md5码

4.根据最新url和给定的md5码,同时获取本地同名文件的md5码。比较远程的和本地的md5码,若不相同视为需要更新的文件,将其加入下载文件列表。

5.执行下载操作,setpackurl,setstoragepath以及成功,错误,进程的回调函数。在下载成功回调函数中判断下载列表中的文件是否全部下载完毕,若没下载完毕继续执行下一文件的下载,执行完毕则进入解压状态。【用到了curl库,和cocos2dx的AssetsManager热更新类】

6.解压文件,与下载列表生成方式相似,生成解压文件列表,进行解压操作。在解压成功回调函数中判断解压列表中的文件是否全部解压完毕,若没解压完毕继续执行下一文件的解压,执行完毕则进入数据库更新状态。

7.获取在解压后的路径下搜寻数据库.csv文件,生成需要更新的数据库文件列表,进入数据库更新状态。【使用zlib库解压】

8.更新数据库,有同名表则删除,然后重新建新表,无同名表则创建新表,加入数据库。【用到了外部引入到 require("lsqlite3") ,cocos引擎没有带】

9.重启游戏。


需要学习curl,zlib,lsqlite3库的用法

你可能感兴趣的:(cocos2dx热更新流程)