含义
热更新:在不改变原包的基础上进行功能更新。
增量更新:比较旧包和新包的大小,找出其间的差异,然后安装差异部分,这不属于热更新。
热更新思路和原理
客户端和服务器上分别保存有配置文件,程序启动时使用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
网友评论