最近在开发手游,项目到了后期,需要考虑自动更新游戏资源的实现(如果逻辑是用脚本写的,脚本其实也相当于一种资源)。
设计分为如下几部分:
1. 客户端资源打包
会增加一个索引文件,用来描述所有资源文件名称(带相对路径的名称),大小,md5校验码,对应服务器端相对路径
2. 服务器端下载
架设apache服务器,把资源包按照版本号放置在服务器对应版本号目录
3. 客户端下载
客户端使用http协议下载资源索引文件,比较本地文件,找出需要更新的文件,然后基于http协议去服务器下载对应文件,然后更新本地索引文件(最后更新索引文件,这样更新失败的索引文件没有更新,下次启动会再次更新)
在移动设备上实现资源下载后存储的话需要注意存储路径的问题:
ios版本在documents目录底下写入,所以之后读取资源优先去读documents目录下的资源
android版本可以在解包路径写入
两个路径有点不同