游戏热更思路
打包出来的app需要包括以下核心信息配置:
1.代码版本号
2.资源版本号
3.平台配置表地址:
Android: (1)代码地址(2)资源地址
IOS: (1)代码地址(2)资源地址
Windows: (1)代码地址(2)资源地址
TGP Android: (1)代码地址(2)资源地址
blibli游戏中心 IOS:(1)代码地址(2)资源地址
4.特殊平台配置(可不配置):(例)TGP Android 或 (例)blibli游戏中心 IOS...
运行游戏之后,会先访问平台配置表地址,优先选择特殊平台对应的地址,如果特殊平台配置没填,则根据当前操作系统选择对应平台地址。
资源热更:
资源地址包含:完整的ab包资源 + 一份记录所有AB包MD5码信息文件(热更时通过对比本地与服务器最新的MD5码文件,确定需要热更的AB包)
代码热更:
1.ILRuntime(加功能+修bug)
原理:ILRuntime借助Mono.Cecil库来读取DLL的PE信息,以及当中类型的所有信息,最终得到方法的IL汇编码,然后通过内置的IL解译执行虚拟机来执行DLL中的代码。
官网:https://ourpalm.github.io/ILRuntime/public/v1/guide/index.html
入门笔记:https://www.cnblogs.com/zhaoqingqing/archive/2019/01/17/10274176.html
XIL使用ILRuntime实现类似xlua的功能:https://github.com/wuxiongbin/XIL
LRuntime来实现热更新的优与劣:https://www.jianshu.com/p/1659b7f251f9
2.XLua(仅修Bug,成本最低)