热更新架构和原理

含义

热更新:在不改变原包的基础上进行功能更新。
增量更新:比较旧包和新包的大小,找出其间的差异,然后安装差异部分,这不属于热更新。


热更新思路和原理

客户端和服务器上分别保存有配置文件,程序启动时使用http协议下载服务器的配置文件来与客户端的进行逐行对比,通过比较md5码找出不同的资源和脚本代码(需要更新的部分),把对应的资源和代码下载下来并将本地的覆盖。

配置文件是一个文本
配置文件中存着资源或脚本文件的名字以及其对应md5码。如一个md5码为abcd的存储在lua/Logic/目录下的名为Network.lua的脚本,其在配置文件中的存储形式为

lua/Logic/Network.lua|abcd

配置文件中的内容即是多行这样的由目录,资源或脚本名以及其对应md5码组成的文本
若资源或脚本有所改动,其对应的md5值也会发生变化。

若平台SDK升级,则不能使用热更新,而需要强制更新客户端(重新下载安装)/增量更新。


MD5中的MD代表Message Digest,就是信息摘要的意思,不过这个信息摘要不是信息内容的缩写,而是根据公开的MD5算法对原信息进行数学变换后得到的一个128位(bit)的特征码。简单地说就是一个电子文件的指纹。

关于md5码百度百科有详细解释:https://baike.baidu.com/item/MD5%E7%A0%81

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,996评论 0 38
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,355评论 25 709
  • 今天分享一个制作搞笑水果的技巧,过程主要用到了图层蒙版和全景无缝合成,看两个个效果: 好开始分享: 第一步:执行:...
    委婉的鱼阅读 3,975评论 37 131
  • 风掀起,云翻霞涌,枝桠摇曳,湖起涟漪,白鸭齐行共赴窝巢。透过校车车窗,感受暖阳洒在道上的晴朗。轻闭双眼,嗅到...
    bd9b0befa425阅读 530评论 0 4
  • 我理想中自律的一天或者生活方式应该是怎么样的呢? 上班前的晨起时光 早上5:30起床。其实我想贪心的5:00起床。...
    澄子说阅读 585评论 0 2