最近要做游戏的热更新,拜读了论坛几位大牛的文章,很好很强大,但有个疑问是几个解决方案中都提到framework_precompile.zip的热更新机制,我总觉得似乎并无必要。
在我的理解中quick分为C++和Lua两部分,C++实现核心功能然后暴露Lua给调用,而framework_precompiled.zip是Lua的部分的打包,这两者需要配合在一起使用,光是热升级这个zip包,比如从2.2.4到2.2.5,但C++的部分仍还是2.2.4,一旦API有变动会有很大的隐患吧。在我看来这个zip包应该放在app store的大版本更新中才是安全的。
大牛的方案中为了处理这个zip增加了不少复杂度,乎先要延迟加载这个zip以便于可以之后加载下载得到的新版zip,其次是为了做出热更新的界面,要么是放在C++中做,要么是提取出framework中的基本功能放到一个Lua文件中(比如init.lua),然后在更新界面之前加载用来做界面。如果不考虑framework_precompiled.zip的热更新的话,方案可以简化不少。
quick新人,怕是自己有遗漏的地方,请指正。