游戏客户端资源热更新方法及系统与流程

摘要: 本技术涉及资源热更新,更具体地说,本技术涉及一种游戏客户端资源热更新方法及系统。背景技术:1、资源热更新是指在应用程序不中断运行的情况下,对其内部使用的静态资源...
游戏客户端资源热更新方法及系统与流程

本技术涉及资源热更新,更具体地说,本技术涉及一种游戏客户端资源热更新方法及系统。

背景技术:

1、资源热更新是指在应用程序不中断运行的情况下,对其内部使用的静态资源进行动态替换或增量补充的技术。所述静态资源包括但不限于图像、音频、界面布局描述、语言包及配置文件等。随着移动互联网、在线游戏和物联网等场景对服务连续性要求不断提升,传统通过重启应用完成资源替换的方式已难以满足需求。

2、现有游戏客户端资源热更新通常沿单一增量路径逐包安装,或者在版本跨度较大时改用全量包。更新包损坏、安装中断或安装后文件校验失败时,当前资源目录可能包含未完成的资源变更;若更新过程未保留与最近一次校验通过版本一致的完整资源状态,客户端只能放弃已经校验通过的前序安装结果并重新获取更新资源,而在更新链较长或网络条件受限的场景中,上述处理会导致游戏客户端跨版本热更新中单个更新包安装失败造成的已校验更新成果丢失范围扩大。

技术实现思路

1、本技术提供一种游戏客户端资源热更新方法及系统,可降低游戏客户端跨版本热更新中单个更新包安装失败造成的已校验更新成果丢失范围。

2、第一方面,本技术提供一种游戏客户端资源热更新方法,包括如下步骤:

3、当游戏客户端的本地资源版本与更新服务器的最新版本不一致时,从所述更新服务器获取版本依赖链,所述版本依赖链记录各版本之间的更新包及各更新包的安装前置版本条件;

4、根据所述版本依赖链,生成从所述本地资源版本至所述最新版本的至少两条候选更新路径,并选取目标更新路径;

5、按照所述目标更新路径下载并安装更新包,并在对资源版本进行维护维修运行管理的过程中,每当一个更新包安装后整体校验通过时,将安装后整体校验通过的资源状态确认为对应断点版本的完整可用资源状态,采用写时复制机制生成所述完整可用资源状态的资源快照,并记录对应的断点版本号及用于定位所述资源快照的留存索引;

6、当任一更新包安装后整体校验失败时,丢弃该更新包产生的未提交资源变更,根据最近一次记录的断点版本号及留存索引恢复对应的资源快照,并在剩余的候选更新路径中重新选取目标更新路径,继续执行更新;

7、当所述目标更新路径的全部更新包安装校验通过时,将所述本地资源版本更新为所述最新版本。

8、可选地,根据所述版本依赖链,生成从所述本地资源版本至所述最新版本的至少两条候选更新路径,并选取目标更新路径具体包括:

9、从所述版本依赖链中提取各更新包对应的前置版本、目标版本与包大小;

10、以所述本地资源版本为起点,按照各更新包的前置版本与目标版本的衔接关系依次连接更新包,生成从所述本地资源版本至所述最新版本的至少两条候选更新路径;

11、分别统计各所述候选更新路径的更新代价;

12、根据所述更新代价从各所述候选更新路径中选取目标更新路径。

13、可选地,分别统计各所述候选更新路径的更新代价具体包括:

14、获取游戏客户端的当前网络状态以及各候选更新路径所包含更新包的历史安装记录;

15、根据当前网络状态与各更新包的包大小估计各候选更新路径的预计下载耗时与预计安装耗时;

16、根据获取的历史安装记录统计各候选更新路径的累计失败概率;

17、对所述预计下载耗时,预计安装耗时与累计失败概率进行加权统计,得到各候选更新路径的更新代价。

18、可选地,按照所述目标更新路径下载并安装更新包,并在对资源版本进行维护维修运行管理的过程中,每当一个更新包安装后整体校验通过时,将安装后整体校验通过的资源状态确认为对应断点版本的完整可用资源状态,采用写时复制机制生成所述完整可用资源状态的资源快照,并记录对应的断点版本号及用于定位所述资源快照的留存索引具体包括:

19、按照所述目标更新路径中各更新包的安装先后顺序,依次下载各所述更新包;

20、针对当前更新包,基于最近一次记录的断点版本的资源快照创建写时复制工作快照,并在所述写时复制工作快照中安装所述当前更新包;

21、对安装后的所述写时复制工作快照中的全部资源文件执行整体校验;

22、当整体校验通过时,将所述写时复制工作快照确认为所述当前更新包对应断点版本的完整可用资源状态,得到所述当前更新包对应的资源快照,并记录对应的断点版本号及用于定位所述资源快照的留存索引。

23、可选地,所述维护维修运行管理,是指对游戏客户端资源版本执行的候选路径选择、写时复制工作快照安装、安装后整体校验、断点资源快照提交、回滚与换路的管理流程。

24、可选地,当任一更新包安装后整体校验失败时,丢弃该更新包产生的未提交资源变更,根据最近一次记录的断点版本号及留存索引恢复对应的资源快照,并在剩余的候选更新路径中重新选取目标更新路径,继续执行更新具体包括:

25、当任一更新包安装后整体校验失败时,读取最近一次记录的断点版本号及对应的留存索引;

26、删除安装后整体校验失败的更新包对应的写时复制工作快照,以丢弃所述更新包产生的未提交资源变更,并根据所述留存索引定位所述断点版本号对应的资源快照,将所述资源快照恢复为游戏客户端的当前资源状态;

27、将恢复后的资源状态对应的断点版本号作为重新选取更新路径的起点版本;

28、从候选更新路径中筛选以该断点版本号为起点的剩余候选更新路径,在筛选得到的剩余候选更新路径中重新选取目标更新路径,并按照重新选取的目标更新路径继续执行更新。

29、可选地,删除安装后整体校验失败的更新包对应的写时复制工作快照,以丢弃所述更新包产生的未提交资源变更,并根据所述留存索引定位所述断点版本号对应的资源快照,将所述资源快照恢复为游戏客户端的当前资源状态具体包括:

30、删除安装后整体校验失败的更新包对应的写时复制工作快照;

31、根据所述留存索引定位所述断点版本号对应的资源快照;

32、将所述资源快照恢复为游戏客户端的当前资源目录,以恢复所述断点版本号对应的完整可用资源状态。

33、第二方面,本技术提供一种游戏客户端资源热更新系统,包括:

34、获取模块,用于当游戏客户端的本地资源版本与更新服务器的最新版本不一致时,从所述更新服务器获取版本依赖链,所述版本依赖链记录各版本之间的更新包及各更新包的安装前置版本条件;

35、处理模块,用于根据所述版本依赖链,生成从所述本地资源版本至所述最新版本的至少两条候选更新路径,并选取目标更新路径;

36、所述处理模块,还用于按照所述目标更新路径下载并安装更新包,并在对资源版本进行维护维修运行管理的过程中,每当一个更新包安装后整体校验通过时,将安装后整体校验通过的资源状态确认为对应断点版本的完整可用资源状态,采用写时复制机制生成所述完整可用资源状态的资源快照,并记录对应的断点版本号及用于定位所述资源快照的留存索引;

37、所述处理模块,还用于当任一更新包安装后整体校验失败时,丢弃该更新包产生的未提交资源变更,根据最近一次记录的断点版本号及留存索引恢复对应的资源快照,并在剩余的候选更新路径中重新选取目标更新路径,继续执行更新;

38、执行模块,用于当所述目标更新路径的全部更新包安装校验通过时,将所述本地资源版本更新为所述最新版本。

39、第三方面,本技术提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的游戏客户端资源热更新方法的步骤。

40、第四方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述的游戏客户端资源热更新方法的步骤。

41、本技术公开的实施例提供的技术方案具有以下有益效果:

42、本技术根据版本依赖链形成多条候选更新路径,并以更新代价选取目标更新路径,使路径失败后仍有与当前断点版本衔接的替代路径;逐包安装时,最近一次校验通过的资源快照作为只读基础状态,当前更新包的资源变更仅写入由其创建的写时复制工作快照;安装后整体校验通过时,工作快照被确认为新的断点版本完整可用资源状态,校验失败时则直接丢弃工作快照并恢复最近断点资源快照;由此,未通过校验的资源变更不会覆盖已提交断点状态,重新选取的候选更新路径能够从与其前置版本条件一致的资源状态继续执行,从而可以降低游戏客户端跨版本热更新中单个更新包安装失败造成的已校验更新成果丢失范围。