首页 > 其他分享 >热更新必懂3件事

热更新必懂3件事

时间:2024-01-15 11:15:51浏览次数:21  
标签:路径 更新 列表 资源 必懂 下载 客户端

今天我们来一起来说说热更新,谈起热更新,大家都觉得很难,都去找官方的热更新的解决方案,然后对着一步一步搞,原理还是不懂, 今天小编就带你来完整的讲解一下热更新的原理,搞懂原理,做热更新可以自己做,也可以自己修改,比如大厅与子游戏的模式。 这个原理经过测试,可以适用js, Lua等多种脚本语言。

 

1: 热更新准备活动

    H5游戏不需要热更新,因为本身就是从服务器下载的,而只有Native开发里面需要热更新。

  运行时动态加载的语言脚本才可以实现热更新,例如,js , Lua等;

每个native 的app 都有一个写的目录,可以用来放资源和代码; 这个cocos creator fileUtils都有对应的接口;

  每个脚本语言都有一个searchPath,运行时根据搜索路径到这些路径下来装载文件。fileUtils 也有searchPath, 资源文件加载的时候,也是从searchPath里面的路径开始寻找资源。

 

2: 增量下载系统:

     增量指的是客户端版本与服务器版本有差异的内容,每次更新,只更新客户端与服务器的差异,来节省流量和下载时间,所以我们做增量下载系统的时候,资源包(代码+资源)要做类似的设计:

      (1)  资源列表, 记录了版本号, 记录了这个版本每个文件的一些信息,路径, MD5值,等信息;

      (2)  完整的资源包; 

  第一次打包客户端的时候,也会带上这个当前客户端的包的资源列表。

  客户端增量更新逻辑:  客户端先读取客户端当前最新资源列表(先到下载路径下找,再到包里找), 找到后和服务器上的比对, 根据md5值和客户端列表里缺的文件,得到一个下载更新列表, 然后根据更新列表来从服务器下载文件。最后将服务器的资源列表更新到本地,下次启动就不用再更新了。附上资源列表的结构截图:

 

 

 

3: 使用最新源码和资源:

   在启动脚本的时候,添加搜索路径,把热更新下载的路径,添加到前面,这样,系统搜索资源的时候,都从下载路径开始搜索,

这样你更新的数据和文件就被优先加载进来,实现到热更新,附上启动脚本的修改截图:

    

 

标签:路径,更新,列表,资源,必懂,下载,客户端
From: https://www.cnblogs.com/rainy1unity/p/17964962

相关文章

  • WIN10系统彻底永久关闭自动更新
    一、首先我们需要做的就是禁用WindowsUpdate服务1、通过键盘Win+R健,弹出运行对话框,输入命令 services.msc ,按“确定”按钮,即可打开服务弹窗。 2、往下拉,寻找到找到WindowsUpdate,双击打开。 3、双击打开弹框,点击“停止”,将启动类型选为“禁用”,最后点击确定。 4、......
  • C# 面试题 (持续更新中)
    1.抽象方法和虚方法在编程中都是处理继承和多态的重要概念,它们之间的关键差异是什么?①定义和实现:抽象方法是只有方法名称,没有方法体(也就是没有方法具体实现),子类必须重写父类抽象方法。虚方法有方法体,子类可以覆盖,也可不覆盖。②声明位置:抽象方法只能声明在抽象类中,使用关键字......
  • 数据魔术师:如何在ClkLog中恢复丢失数据并实现数据更新
    在数字化的世界里,数据就是企业的血液,是推动业务发展的关键动力。想象一下,你正在运行你的业务,依赖==ClkLog==为你提供的数据,突然,由于网络波动或其他原因,定时脚本未能执行,页面上的数据缺失了。或者你刚刚优化了你的算法,但你需要重新计算以前的数据以便与新的算法保持一致。这种情况......
  • 百度网盘(百度云)SVIP超级会员共享账号每日更新(2024.01.13)
    一、百度网盘SVIP超级会员共享账号可能很多人不懂这个共享账号是什么意思,小编在这里给大家做一下解答。我们多知道百度网盘很大的用处就是类似U盘,不同的人把文件上传到百度网盘,别人可以直接下载,避免了U盘的物理载体,直接在网上就实现文件传输。百度网盘SVIP会员可以让自己百度账......
  • [Python学习记]个人感受(持续更新)
    ------24/01/13------ 大家好,到目前为止我已经学习到if条件语句的使用了,准备学习循环语句,if语句学的薄浅还得多加练习实际应用!关于if的应用我自主设计了几个程序,希望大佬可以多加指点 ------23/11/13------ 大家好,我是小县城高中的一名学生 在我初中时期就已经知道主......
  • arthas热更新class
    安装和启动下载https://arthas.aliyun.com/doc/download.html解压arthas的zip热更新代码找到项目进程号ps-ef|grepProject返回2222启动并选择jvm进程java-jararthus-boot.jarjad反编译代码,另存为.java文件jad--source-onlycom.tiandy.testdemo.Te......
  • 如何屏蔽苹果iOS 17软件自动更新,去除更新通知和标记
    亲爱的小伙伴们大家好!我是咕噜铁蛋!,你是否经常被iOS系统的更新提示所困扰?每次看到那个小红点或者数字提示,心里总是纠结万分。更新吧,怕新系统不如旧系统稳定;不更新吧,那个小红点或数字总是如影随形,让人心烦。今天,我将为你详细解读如何屏蔽iOS17的软件自动更新,让你从此远离更新烦......
  • EAS_WEB更新解决方案后,无法登录web页面,显示connect.refused
    本地bos更新测试环境的解决方案后,启动bos,登录web提示连接异常失败;看日志,在图中打断点发现了异常:6999是测试服务i的端口,我本地应该是56898端口,对配服务器的实例server1和以前备份的server1.发现了不同:  在同步服务器解决方案后,配置文件被更改了,改回去重启服务即可......
  • 5. 在开发中自建的工具类 -- 长期更新版
    前言在Java开发中,会出现一些常见且通用的业务逻辑.毫无疑问,上述业务逻辑的解决方法将其抽象为一个工具类方法是常见的思路.这样既可以提升代码的复用性,也可以提升代码的可维护性!参数中的某些字段为空的校验方法源码:/***仅仅以下字段内容不能为空*@pa......
  • Vue.nextTick在动态更新iframe的src中的使用
    Vue.nextTick在动态更新iframe的src中的使用:https://codeleading.com/article/63673310260/ 当iframe中的地址src需要动态改变时,需要使用Vue.nextTick来切换地址src,否则DOM的地址不会实现更新,而是保持上一次的src。在数据变化后要执行的某个操作,而这个操作需要使用随数据改变......