本文将会具体解说cocos2d-js下的热更新机制。这篇内容先给大家介绍一下两个manifest文件就当热身了。

首先介绍project.manifest:  举个样例

{
"packageUrl" : "http://192.168.1.108/games/dragon_gold",
"remoteManifestUrl" : "http://192.168.1.108/games/dragon_gold/project.manifest",
"remoteVersionUrl" : "http://192.168.1.108/games/dragon_gold/version.manifest",
"version" : "1.0.2",
"groupVersions" : {
        "1" : "1.0.1",
"2" : "1.0.2"
    },
"engineVersion" : "3.6",
"assets" : {
        "update1" : {
            "path" : "dragon_gold1.zip",
            "md5" : "140caaa2a4508912424e807a941bf71",
            "compressed" : true,
            "group" : "1"
        },

"update2" : {
            "path" : "dragon_gold2.zip",
            "md5" : "140caaa2a4508912424e807a941bf7bc",
            "compressed" : true,
            "group" : "2"
        }
      },
      "searchPaths" : [
         ]

}

  • packageUrl :  远程资源的下载根路径。 (它是为“dragon_gold1.zip”服务的。没了这个根路径我们都找不到要下载的包)
  • remoteVersionUrl :远程版本号文件的路径,用来推断server端是否有新版本号的资源。
  • remoteManifestUrl :远程配置文件的路径,包括版本号信息以及全部资源信息。
  • version : 配置文件相应的版本号。

    (这个用来推断是否有新的更新包)

  • assets :这个比較重要:里面的value就是相应要更新的包,当中path是更新包的包名。md5:当在下次更新时用来比較这次与上次下载下来的manifest文件里相应的包的md5 码是否同样,不同的话须要做些处理(更新。删除操作)。

    compressed是用来决定下载下来的包是否须要解压。

    group是重中之重。它是用来实现增量跟新的。它的值与groupVersions相相应。

举个样例:有这么两个用户,第一个用户下载app之后一直没玩。第二个用户一直在玩每次有更新时第二个用户都会跟着更新,如今第二个用户当前的version为1.0.1时。他会去更新update2这个包,可是第一个用户一直没玩所以他的更新包version是1.0.0。这时他须要去更新update1和update2这两个包, 这就是一个简单的实现增量更新的样例。
(备注:当时用2.x版本号引擎没提供这个功能。自己做了个增量更新功能坑了一段时间,如今引擎已经提供这个功能方便多了)。
我一直再讲project.manifest这个文件却没有说version.manifest,它事实上是个简化版 的project.manifest。当我们版本号已经有了几十个甚至几百个更新包时。显然下载project.manifest来推断是否有无更新是不明智的(由于更新包越多project.manifest体积变得越大。对于手机这么贵的流量下载这么大的东西是不划算的),因此此时的version.manifest用处就明显了,不管project.manifest体积多大,它永远仅仅须要这么几行代码就能够了:
{
"packageUrl" : "http://192.168.1.108/games/dragon_gold",
"remoteManifestUrl" : "http://192.168.1.108/games/dragon_gold/project.manifest",
"remoteVersionUrl" : "http://192.168.1.108/games/dragon_gold/version.manifest",
"version" : "1.0.2",
"groupVersions" : {
        "1" : "1.0.1",
"2" : "1.0.2"
...
    }
}

这一节就讲到这。下次開始用我眼下做的一个项目来具体解说热更新的使用方法。(备注:这一节是用工作时间写的。有点马虎了.......)

cocos2d-js 热更新具体解释(一)相关推荐

  1. 浅谈 Node.js 热更新,了解几点常见的内存泄漏

    大厂技术  高级前端  Node进阶 点击上方 程序员成长指北,关注公众号 回复1,加入高级Node交流群 记得在 15 16 年那会 Node.js 刚起步的时候,我在去前东家的入职面试也被问到了要 ...

  2. 浅谈 Node.js 热更新

    大厂技术  高级前端  Node进阶 点击上方 程序员成长指北,关注公众号 回复1,加入高级Node交流群 记得在 15 16 年那会 Node.js 刚起步的时候,我在去前东家的入职面试也被问到了要 ...

  3. cocoscreator2.0.10 热更新大厅子游戏模式 学习使用记录

    热更新主要用到cocos2d的热更新模块RawAsset    AssetsManager 先按教程写个demo 创建大厅空项目 ,添加场景helloworld ,如下图在场景中加热更需要的控件 ch ...

  4. python flask热更新_python(flask)+apscheduler定时邮件重发两次的问题

    工作中遇到一个需求,要在现有系统(airbnb家的开源平台superset)上添加一个定时邮件的功能. 定时邮件功能使用的是apscheduler这个库,关于怎么用这里就不多赘述了反正网上都有. 主要 ...

  5. React Native热更新方案

    随着 React Native 的不断发展完善,越来越多的公司选择使用 React Native 替代 iOS/Android 进行部分业务线的开发,也有不少使用 Hybrid 技术的公司转向了 Re ...

  6. React Native 热更新方案

    转载: https://blog.csdn.net/xiangzhihong8/article/details/73201421 随着 React Native 的不断发展完善,越来越多的公司选择使用 ...

  7. Vue.js 安装及其环境搭建,webpack-simple支持热更新

    1.先安装node.js 安装官网最新的即可 版本应该要大于6.0版本 nodejs的官网:https://nodejs.org/en/ 2.安装git Git的官网:https://git-scm. ...

  8. 一文解释到底什么是“APP热更新技术”?

    首先,热更新技术作为一种App软件开发者常用的更新方式,简而言之就是用户在下载安装APP之后,会有APP的即时更新. 自从2017年苹果App Store针对热更新的下架事件发生之后,诸多开发者也在不 ...

  9. ILRuntime来实现热更新的优与劣!

    热更新 Q1:使用ILRuntime来实现热更新的可行度有多高,大家有没有使用经验分享? 一般热更新分两块,代码+资源,资源热更几乎都是通过AssetBundle来搞,代码热更可以用某种解释器+解释执 ...

最新文章

  1. 详解谷歌最强NLP模型BERT(理论+实战)
  2. 虚拟机服务器503解决,(图文)解决重启VCSA 6.0提示:503 Service Unavailable错误
  3. python自动补全库_叼炸天的库! 自动补全 Python 代码,能节省 60% 敲码时间
  4. DIV+CSS布局参考站点
  5. 视频光端机音频出现噪音是为何?
  6. springboot logback 日志配置
  7. 安卓案例:联选系部与专业
  8. CME比特币期货去年促成超1100万枚比特币交易量
  9. 前牙正常覆盖是多少_深覆合和深覆盖两者怎么区分?花两分钟进来了解一下
  10. 纯CSS3实现兔斯基简单害羞表情
  11. JDK API 1.6.0中文版纯分享
  12. 2008-2013年工业企业数据库(EXCEL)
  13. 教务信息管理系统的设计与实现
  14. python社团宣传语_宣传语_Python语言及其应用_红黑联盟读书频道
  15. html怎么快捷审查源代码,怎样查看网页源代码和审查元素?
  16. c++获取umg ue_[UE4][V4.10]C++中定义UMG widget变量时的头文件引用有关问题
  17. 电脑看斗鱼html5卡,win10浏览器观看斗鱼卡怎么修复_win10浏览器打开斗鱼卡死如何解决...
  18. Twitter与微博
  19. Android WebRtc 桌面投屏、视频源码
  20. 成熟的人不问过去,聪明的人不问现在,豁达的人不问未来~!

热门文章

  1. C++11 —— 简易的旋转锁类
  2. 从0开始学习 GitHub 系列之「03.Git 速成」
  3. 浅蓝色设计类网站模板
  4. 计算机系统时间无法更改,电脑时间不能修改|系统时间改不了 四个处理办法
  5. 安卓手机python数据可视化_python 数据可视化
  6. 中service层的作用_浅析Java中dto、dao、service、controller的四层结构
  7. Idea中Terminal中git基本操作
  8. 数据挖掘相关知识介绍
  9. 计算机基础:存储系统知识笔记(一)
  10. SQL Server数据库设置自动备份策略