游戏更新
2015-08-06 00:00
106 查看
摘要: 游戏更新流程
游戏更新流程:
1,向服务器请求版本文件(version.xml)
2,对比服务器版本信息和本地版本信息后做相应处理。
判断条件: 1) 是否需要检查
2 ) 服务器版本号较新或者服务器版本不变但客户端版本较新,设置需要更新标记
3 ) 资源版本号较新,更新资源。
3,对比版本后若无更新就进入游戏。
4,对比版本后若有更新则请求下载更新列表。
5,分析更新列表:
1)读取本地更新列表(上一次更新的)数据(id, name, md5)存放在 m_VersionFileMap<name, fileInfo>中。
2)读取本次下载的更新列表数据存放在 tempFileMap<name, fileInfo>中。
3)对比m_VersionFileMap 和 tempFileMap数据,对比结果存储在真正需要下载的m_needFileMap<int, NeedFile(name, state)>容器里
1)) tempFileMap有而 m_VersionFileMap没有的文件是新增文件,标记新增,需要下载。
2)) tempFileMap有并且m_VersionFileMap也有但MD5码不一样的文件是更新的文件,标记更新,需要下载。
3)) tempFileMap没有而m_VersionFileMap有的是旧文件,标记删除,不需要下载。
6, 开启线程下载,根据m_needFilemap的数据信息按需下载。
7 , 下载结束,更新本地版本信息。
8, 根据是否有更新so文件,判断是否需要重启游戏
9 , 更新结束。
( ps: 解压和下载文件这需要仔细看看)
游戏更新流程:
1,向服务器请求版本文件(version.xml)
2,对比服务器版本信息和本地版本信息后做相应处理。
判断条件: 1) 是否需要检查
2 ) 服务器版本号较新或者服务器版本不变但客户端版本较新,设置需要更新标记
3 ) 资源版本号较新,更新资源。
3,对比版本后若无更新就进入游戏。
4,对比版本后若有更新则请求下载更新列表。
5,分析更新列表:
1)读取本地更新列表(上一次更新的)数据(id, name, md5)存放在 m_VersionFileMap<name, fileInfo>中。
2)读取本次下载的更新列表数据存放在 tempFileMap<name, fileInfo>中。
3)对比m_VersionFileMap 和 tempFileMap数据,对比结果存储在真正需要下载的m_needFileMap<int, NeedFile(name, state)>容器里
1)) tempFileMap有而 m_VersionFileMap没有的文件是新增文件,标记新增,需要下载。
2)) tempFileMap有并且m_VersionFileMap也有但MD5码不一样的文件是更新的文件,标记更新,需要下载。
3)) tempFileMap没有而m_VersionFileMap有的是旧文件,标记删除,不需要下载。
6, 开启线程下载,根据m_needFilemap的数据信息按需下载。
7 , 下载结束,更新本地版本信息。
8, 根据是否有更新so文件,判断是否需要重启游戏
9 , 更新结束。
( ps: 解压和下载文件这需要仔细看看)
相关文章推荐
- Mac Yosemite安装配置nginx+php+mysql+memcached环境
- Objective-C NSPredicate
- 本地通知 UILocalNotification
- iPhone判断是否已插入SIM卡
- 零基础写python爬虫之urllib2使用指南
- 《丑陋的中国人》读后感
- fastjson转json的时候过滤掉某些属性
- 让vim支持系统剪贴板
- SqlLite的工具类SQLiteOpenHelper
- opencart china 书籍主题
- 实现电话、或电邮、或电话号码的登陆
- 纵表转横表(SQL)
- mysql数据库unique索引的添加与删除
- 如何延迟加载js文件
- iOS 9应用开发教程之创建iOS 9项目与模拟器介绍
- Cocos2d-x-v3中3D网格特效动画的应用
- springmvc+spring+mybatis 简单搭建
- Hive操作语句的使用
- Hive技术文档
- OC中属性和成员变量的区别和使用