之前在知乎上看到一个对热更新解释的调侃,对第一次接触的人还是比较好理解的:
就是说
你的卡车开到了150KM/H
然后,有个轮胎,爆了
然后,司机说,你就直接换吧,我不停车。你小心点换
嗯。就这个意思
下面说一下具体的流程:
1、首次进入app,初始化版本号version=0
2、socket::send()把版本号发送给服务器,进行版本校验
3、服务器版本号校验,如果app版本号与服务器版本号不一致,进行资源列表下载
4、socket::receive() app进行校验,版本资源中,是否已经存在要下载的资源,如果存在,对应的不下载;如果不存在,进行下载。情况二:把本地版本已存在的进行移除,接着进行下载
5、app读取资源,进行资源下载
基于lua脚本语言的require moudle机制,大多游戏的热更新一般会选用lua脚本来写的。