Xlua 热更流程

ABTools工具

1.资源打包

资源,Xlua脚本打包

2.对比文件

将Ab包的中的文件生成字符串(名字+字节数+MD5码)通过'|'拼接成成字符串写入文件abCompareFile中

3.向服务器上传Ab包和资源对比文件 

先将文件夹内的资源文件进行筛选  只上传 无后缀名的ab包文件和txt结尾的资源对比文件,通过字节数组进行传输,FtnUploadFile中的server代表的是服务器Ip地址

4.客户端下载并解析对比文件

当游戏运行的时候,客户端下载资源对比文件进行对比。从服务器下载的资源都存在Application.persistentDataPath文件夹下,因为该文件是可读可写的。

如果Application.persistentDataPath文件夹下不存在本地资源对比文件,就从StreamingAssets文件夹下去寻找并解析到存储本地Ab包信息的字典localInfoDic中。DownLoadLocalConpareFile函数的委托是处理本地资源文件是否下载成功的逻辑。

找到本地对比文件后通过Split拆分并存入 字典中。

5.客户端从服务器下载并解析对比文件

和上传一样通过字节数组传输,当下载失败时如断网等,设置最大下载次数。

下载完成后和本地资源对比文件一样解析 并存入服务器对比文件字典

6 资源对比,下载资源

下载本地没有服务器有的资源,删除下载本地和服务器资源MD5码不同的资源

遍历服务器资源对比文件和本地资源对比文件进行筛选,得到带下载资源文件,并填加到列表downLoadAbList中。并删除无用的包

最后遍历待下载文件downLoadAbList,下载资源

猜你喜欢

转载自blog.csdn.net/m0_56283466/article/details/136989306