本文主要描述游戏及软件工程中的更新原理及流程,具体代码会在一周内追加。
看什么看
你怎么又复制

一.热加载实现流程

所谓热加载,就是将资源放在服务器端,当客户端运行时,先运行资源加载程序,待所有资源加载完毕再运行主程序

Created with Raphaël 2.2.0运行客户端资源加载程序向资源服务器发送需求资源id接收服务端返回的资源数据主程序结束运行

看什么看
你怎么又复制

二.即时加载实现流程

即时加载分本地和远程,不过原理都一样:当客户端运行时,每当遇到需要下载的资源的对象,用事先定义好的临时对象占位,与此同时下载相应资源。当资源下载完毕后,立即替换掉占位对象。这个图画的优

Created with Raphaël 2.2.0运行客户端主程序需要外部加载资源先使用预置的临时资源代替向资源服务器发送需求资源id接收服务端返回的资源数据使用新资源替换临时资源继续运行yesno

看什么看
你怎么又复制

三.热更新和热补丁实现流程

检查版本更新时需要决定如果版本较旧是否运行。如果只允许更新运行,就要设置程序必须联网,并且版本最新。以unity项目为例:

Created with Raphaël 2.2.0运行客户端更新程序检查更新文件夹:【PersistentDataPath】中是否有效验文件(fileList.txt与version.txt)存在效验文件从资源服务器下载验证文件对比更新文件夹:【PersistentDataPath】与服务器下载的效验文件有更新根据更新文件列表下载新资源并保存到更新文件夹:【PersistentDataPath】运行更新后处理程序(main.lua.txt)主程序结束运行从预置资源文件夹:【StreamingAssetsPath】复制效验文件到更新文件夹:【PersistentDataPath】yesnoyesno

热更新和热补丁实现流程
老项目热更新
推荐个博客,处理老项目热更新是个不错的方案
https://blog.csdn.net/RinKas/article/details/81020598

游戏热加载、即时加载、热更新、热补丁原理流程图相关推荐

  1. java热加载_java--热加载

    1. 什么是热加载 热加载是指可以在不重启服务的情况下让更改的代码生效,热加载可以显著的提升开发以及调试的效率,它是基于 Java 的类加载器实现的,但是由于热加载的不安全性,一般不会用于正式的生产环 ...

  2. Hibernate之加载策略(延迟加载与即时加载)和抓取策略(fetch)

    假设现在有Book和Category两张表,表的关系为双向的一对多,表结构如下: 假设现在我想查询id为2的那本书的书名,使用session.get(...)方法: 1 Session session ...

  3. Java 单例模式:懒加载(延迟加载)和即时加载

    Java 单例模式:懒加载(延迟加载)和即时加载 引言 在开发中,如果某个实例的创建需要消耗很多系统资源,那么我们通常会使用惰性加载机制(或懒加载.延时加载),也就是说只有当使用到这个实例的时候才会创 ...

  4. 视频教程 | 3D版切水果游戏开发实战5:加载美术资源

    在我们的前4期开发实战中,我们写代码使用的切割物体都是Egret Pro自带的实体,如:球体.椎体.立方体等,今天我们就来讲讲如何将游戏场景中的切割对象换成美术提供的水果和切刀素材. 核心内容比较简单 ...

  5. css 同步加载,同步加载,异步加载,懒加载,预加载

    同步加载 默认的就是同步加载 同步加载: 同步模式又称阻塞模式,会阻止浏览器的后续处理,停止了后续的文件的解析,执行,如图像的渲染.流览器之所以会采用同步模式,是因为加载的js文件中有对dom的操作, ...

  6. OpenGL学习脚印:模型加载初步-加载obj模型(load obj model)

    写在前面 前面介绍了光照基础内容,以及材质和lighting maps,和光源类型,我们对使用光照增强场景真实感有了一定了解.但是到目前为止,我们通过在程序中指定的立方体数据,绘制立方体,看起来还是很 ...

  7. Lync 小技巧-51-Lync 2013-不加域-客户端-1-下载-证书-信任链

    场景: 您公司是否有Lync ? 您公司是否所有电脑加域呢? 您是不是初学Lync ? 如果不加域的客户端,你的Lync服务器没有用公网证书,那么你需要导入证书信任链. Lync 小技巧-51-Lyn ...

  8. Atitit. 木马病毒的外部class自动加载机制------加载class的方法总结

    Atitit. 木马病毒的外部class自动加载机制------加载class的方法总结 Atitit.java load class methods 1. 动态加载jar文件和class文件. 1 ...

  9. jdbc驱动类加载直接指定线程上下文加载器加载

    jdbc获取连接是这么写的,看下代码都干了什么,是如何把驱动类加载到jvm的. Class.forName是装载一个类并且对其进行实例化的操作.这里mysql驱动com.sql.Driver的静态方法 ...

最新文章

  1. 基本算法之递推与递归的简单应用
  2. 使用轮转算法求时间片_彩票调度算法,让进程们拼手气? --当操作系统遇上随机算法...
  3. 设置DataGrid自动生成列的宽度
  4. [Python图像处理] 二十三.傅里叶变换之高通滤波和低通滤波
  5. AWS向中国有限预览客户推出多级别AWS支持服务
  6. H5 FileReader对象
  7. ubuntu mysql环境变量配置_MySQL在Win10与Ubuntu下的安装与配置
  8. SQL Server创建数据库
  9. html静态测试网页,Html静态网页测试-20210531213110.pptx-原创力文档
  10. Redis的Java客户端
  11. Lonza X-VIVO 15 无血清培养基使用攻略
  12. JS流程控制语句 反反复复(while循环) 和for循环有相同功能的还有while循环, while循环重复执行一段代码,直到某个条件不再满足。...
  13. 小师妹问 easyUI mergeCells 行合并后表头和内容对不齐
  14. mysql错误代码145_Mysql中出现errno:145的解决方法
  15. 计算机四年级上册语文教案,人教版四年级上册语文教案
  16. Android 来电监听
  17. mac 安装python并切换到python3版本
  18. Excel怎么自定义表格样式,设置每两行替换颜色
  19. 卡尔曼滤波---公式推导和一些疑问
  20. java key锁 实现对某个key(字符串)加同步锁 带详细注释

热门文章

  1. 批量向MySQL导入1000万条数据有什么方法
  2. 编写一程序计算到现在为止已经过了多少天,现在的时间是几时几分几秒
  3. 工程制图与计算机绘图实训任务书及参考资料,工程制图与计算机绘图综合实训(版).doc...
  4. 推荐:我的在线电子书和培训咨询
  5. 大型生产进销存(ERP)管理系统源码
  6. Docker的安装 与 环境配置 及 阿里云镜像仓库配置、常用命令等
  7. 单位丢失员工档案赔偿问题
  8. 【数据增强】图像训练技巧
  9. 华为OD机试真题 Java 实现【跳房子II】【2023 B卷 100分】,附详细解题思路
  10. STM32F4简易示波器