[原创]一种简单的cocos2d-x动态更新方案

介绍一个曾经在cocos2d-x项目中使用过的动态更新方案,这个方案简单易行,针对小的项目非常有用。

这个方案有两个核心的关键词:JSONMD5

原理可以简单地概括为:服务端持有所有动态更新资源文件的列表及各文件的MD5值,客户端通过从服务端获取包含有此文件列表的配置文件使本地的资源文件与服务端列表中的文件保持一致。

这种更新方式是与增量更新不同的,客户端更新文件的条件并不是服务端告知客户端,需要更新哪些文件,而是由客户端自己比对与服务端资源文件的不同,然后自己去更新。例如,服务端动态更新列表有A,B,C三个文件,而客户端有C,D两个文件,那么这时客户端需要删除文件D,再下载文件A,B,并根据比对C的MD5值来判断是否更新C。即无论何时,客户端本地的资源文件总是要无条件的与服务端保持一致。

大致流程如下图:

A:配置文件格式为JSON,主要内容包括res,download_url,version三部分:

res:服务端资源文件列表与其对应的MD5值;

download_url:资源文件的下载地址;

version:资源列表的版本号。

一个例子:

{"res": [{"name":"foo.data","md5":"734dc847ac286362b250955b4ffdade8"},{"name":"promotion.png","md5":"a01a93ca0e3f818cf788c086de967cad"}],"download_url":"www.foo.com",version:"123"}

此文件说明动态更新资源列表中有两个文件,一个是foo.data,它的md5值为734dc847ac286362b250955b4ffdade8,另外一个文件为promotion.png,它的md5值为a01a93ca0e3f818cf788c086de967cad,资源下载地址为:www.foo.com, 此资源列表的版本号为123

B:解析完配置文件后,将其删除,本地不保存;

C:将本地的资源与配置表中的资源保持一致,规则为:

  • 配置文件资源列表中有文件A,而本地没有文件A,则从服务端下载;
  • 配置文件资源列表中没有文件A,而本地有文件A,则从本地将A删除;
  • 配置文件资源列表中有文件A,本地也有文件A,则比较两个文件的MD5值,如果相同,则不做操作,如果不同,则下载服务器文件A,替换本地文件A。

以上方案还可以做如下改进:

原理是相同的。

 

OK,就到这里,感谢大家的收看。

 

转载注明出处:)

转载于:https://www.cnblogs.com/flyFreeZn/p/3674324.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值