一种游戏加速器自动热更新与加载方法及装置与流程

文档序号:12363002阅读:487来源:国知局
一种游戏加速器自动热更新与加载方法及装置与流程

本发明涉及游戏加速器领域,特别涉及一种游戏加速器自动热更新与加载方法及装置。



背景技术:

目前,游戏加速器无法实现自动更新和加载,例如白鹭公司的游戏加速器产品EgretRuntime,能够解决低端机对HTML5标准支持不佳、体验差的弊端,并适配不同的系统,使让HTML5游戏效果媲美原生游戏,但是EgretRuntime无法自动热更新与加载。

本发明提供了一种能够实现游戏加速器自动热更新与加载的技术。



技术实现要素:

根据本发明实施例提供的技术方案解决的技术问题是自动热更新与加载游戏加速器的问题。

根据本发明实施例提供的一种游戏加速器自动热更新与加载方法,包括:

本地热更新和加载模块根据用户信息和应用信息,从远程服务器获取游戏加速器的引导信息;

本地热更新和加载模块根据用户信息和应用信息,从远程服务器获取游戏加速器的引导信息;

通过解析所述游戏加速器的引导信息,得到最新版本游戏加速器的相关信息;

利用所得到的最新版本游戏加速器的相关信息,确定本地是否存在可靠的最新版本的游戏加速器文件;

若存在可靠的最新版本的游戏加速器文件,则加载所述已存在的最新版本的游戏加速器;

若不存在可靠的最新版本的游戏加速器文件,则从所述远程服务器下载可靠的最新版本的游戏加速器文件并加载。

优选地,所述最新版本游戏加速器的相关信息包括:远程下载地址、压缩的游戏加速器文件的文件名、压缩的游戏加速器文件的MD5校验码、游戏加速器文件的MD5校验码。

优选地,所述的利用所得到的最新版本游戏加速器的相关信息,确定本地是否存在可靠的最新版本的游戏加速器文件的步骤包括:

所述本地热更新和加载模块根据通过解析引导信息得到的压缩的游戏加速器文件的文件名,查询库文件目录中是否存在最新版本的游戏加速器文件;

若存在最新版本的游戏加速器文件,则生成所述游戏加速器文件的MD5校验码;

将所生成的游戏加速器文件的MD5校验码与通过解析引导信息得到的游戏加速器文件的MD5校验码进行匹配;

当匹配结果一致时,确定所述库文件目录中存在可靠的最新版本的游戏加速器文件。

优选地,所述的若存在可靠的最新版本的游戏加速器文件,则加载所述已存在的最新版本的游戏加速器的步骤包括:

所述本地热更新和加载模块加载所述库文件目录中的游戏加速器文件。

优选地,所述的利用所得到的最新版本游戏加速器的相关信息,确定本地是否存在可靠的最新版本的游戏加速器文件的步骤还包括:

若所述库文件目录中不存在可靠的最新版本的游戏加速器文件,则所述本地热更新和加载模块查询库文件缓存目录中是否存在最新版本的压缩的游戏加速器文件;

若所述库文件缓存目录中存在最新版本的压缩的游戏加速器文件,则生成所述最新版本的压缩的游戏加速器文件的MD5校验码;

将所生成的最新版本的压缩的游戏加速器文件的MD5校验码与通过解析引导信息得到的压缩的游戏加速器文件的MD5校验码进行比较;

当匹配结果一致时,确定所述库文件缓存目录中存在可靠的最新版本的游戏加速器文件。

优选地,所述的若存在可靠的最新版本的游戏加速器文件,则加载所述已存在的最新版本的游戏加速器的步骤包括:

所述本地热更新和加载模块将所述库文件缓存目录中的可靠的最新版本的压缩的游戏加速器文件解压到所述库文件目录中,并加载所述库文件目录中的游戏加速器文件。

优选地,所述的利用所得到的最新版本游戏加速器的相关信息,确定本地是否存在可靠的最新版本的游戏加速器文件的步骤还包括:

若所述库文件缓存目录中不存在可靠的最新版本的游戏加速器文件,则所述本地热更新和加载模块查询SD卡库文件缓存目录中是否存在最新版本的压缩的游戏加速器文件;

若所述SD卡库文件缓存目录中存在所述最新版本的压缩的游戏加速器文件,则生成所述最新版本的压缩的游戏加速器文件的MD5校验码;

将所生成的最新版本的压缩的游戏加速器文件的MD5校验码与通过解析引导信息得到的压缩的游戏加速器文件的MD5校验码进行匹配;

当匹配结果一致时,确定所述SD卡库文件缓存目录中存在可靠的最新版本的游戏加速器文件。

优选地,所述的若存在可靠的最新版本的游戏加速器文件,则加载所述已存在的最新版本的游戏加速器的步骤包括:

所述本地热更新和加载模块将所述SD卡库文件缓存目录中的可靠的最新版本的压缩的游戏加速器文件拷贝至所述库文件缓存目录中;

将所述库文件缓存目录中的可靠的最新版本的压缩的游戏加速器文件解压到所述库文件目录中,并加载所述库文件目录中的游戏加速器文件。

优选地,还包括:

所述本地热更新和加载模块从所述远程服务器下载可靠的最新版本的游戏加速器文件并加载成功时,将所述引导信息写入版本信息文件;

所述本地热更新和加载模块从所述远程服务器下载可靠的最新版本的游戏加速器文件失败或加载从所述远程服务器下载的可靠的最新版本的游戏加速器文件失败时,利用在前写入所述版本信息文件的引导信息,找到在前成功加载的游戏加速器文件,并加载所找到的游戏加速器文件。

根据本发明实施例提供的存储介质,其存储用于实现上述游戏加速器自动热更新与加载方法的程序。

根据本发明实施例提供的一种游戏加速器自动热更新与加载装置,包括:

获取单元,用于根据用户信息和应用信息,从远程服务器获取游戏加速器的引导信息;

解析单元,用于通过解析所述游戏加速器的引导信息,得到最新版本游戏加速器的相关信息;

判断单元,用于利用所得到的最新版本游戏加速器的相关信息,确定本地是否存在可靠的最新版本的游戏加速器文件;

加载单元,若存在可靠的最新版本的游戏加速器文件,则加载所述已存在的最新版本的游戏加速器,否则从所述远程服务器下载可靠的最新版本的游戏加速器文件并加载。

本发明实施例提供的技术方案具有如下有益效果:

本发明实施例能够实现游戏加速器的远程获取、自动热更新和加载。

附图说明

图1是本发明实施例提供的游戏加速器自动热更新与加载方法框图;

图2是本发明实施例提供的游戏加速器自动热更新与加载装置框图;

图3是本发明实施例提供的游戏加速器自动热更新与加载框图;

图4是本发明实施例提供的游戏加速器自动热更新与加载流程图;

图5是本实施例提供的版本恢复流程图;

图6是本实施例提供的设置有SD卡库文件缓存目录时的游戏加速器自动热更新与加载流程图。

具体实施方式

以下结合附图对本发明的优选实施例进行详细说明,应当理解,以下所说明的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

图1是本发明实施例提供的游戏加速器自动热更新与加载方法框图,如图1所示,步骤包括:

步骤S101:本地热更新和加载模块根据用户信息和应用信息,从远程服务器获取游戏加速器的引导信息。

步骤S102:通过解析所述游戏加速器的引导信息,得到最新版本游戏加速器的相关信息。

所述最新版本游戏加速器的相关信息包括:远程下载地址、压缩的游戏加速器文件的文件名、压缩的游戏加速器文件的MD5校验码、游戏加速器文件的MD5校验码。

步骤S103:利用所得到的最新版本游戏加速器的相关信息,确定本地是否存在可靠的最新版本的游戏加速器文件。

具体包括如下步骤:

步骤S1031:所述本地热更新和加载模块根据通过解析引导信息得到的压缩的游戏加速器文件的文件名,查询库文件目录中是否存在最新版本的游戏加速器文件,若存在则生成所述最新版本的游戏加速器文件的MD5校验码,并将其与通过解析引导信息得到的游戏加速器文件的MD5校验码进行匹配,当匹配结果一致时,确定所述库文件目录中的最新版本的游戏加速器文件可靠,即确定所述库文件目录中存在可靠的最新版本的游戏加速器文件。

步骤S1032:若在步骤S1031中确定所述库文件目录中不存在可靠的最新版本的游戏加速器文件,即库文件目录中不存在游戏加速器文件,或者游戏加速器文件的MD5校验码匹配结果不一致,则所述本地热更新和加载模块查询库文件缓存目录中是否存在可靠的最新版本的压缩的游戏加速器文件,具体的说,所述本地热更新和加载模块根据通过解析引导信息得到的压缩的游戏加速器文件的文件名,查询库文件缓存目录中是否存在最新版本的压缩的游戏加速器文件,若存在则生成所述最新版本的压缩的游戏加速器文件的MD5校验码,并将其与通过解析引导信息得到的压缩的游戏加速器文件的MD5校验码进行匹配,当匹配结果一致时,确定所述库文件缓存目录中的最新版本的压缩的游戏加速器文件可靠,即确定所述库文件缓存目录中存在可靠的最新版本的压缩的游戏加速器文件。

步骤S1033:若在步骤S1032中确定所述库文件缓存目录中不存在可靠的最新版本的游戏加速器文件,即库文件缓存目录中不存在压缩的游戏加速器文件,或者压缩的游戏加速器文件的MD5校验码匹配结果不一致,则所述本地热更新和加载模块确定是否设置了SD卡库文件缓存目录,若已设置,则查询SD卡库文件缓存目录中是否存在可靠的最新版本的压缩的游戏加速器文件,具体的说,所述本地热更新和加载模块根据通过解析引导信息得到的压缩的游戏加速器文件的文件名,查询SD卡库文件缓存目录中是否存在最新版本的压缩的游戏加速器文件,若存在则生成所述最新版本的压缩的游戏加速器文件的MD5校验码,并将其与通过解析引导信息得到的压缩的游戏加速器文件的MD5校验码进行匹配,当匹配结果一致时,确定所述SD卡库文件缓存目录中的最新版本的压缩的游戏加速器文件可靠,即确定所述SD卡库文件缓存目录中存在可靠的最新版本的压缩的游戏加速器文件。

步骤S104:根据确定结果,进行相应处理。

具体包括步骤步骤S104a和步骤S104b:

步骤S104a:若存在可靠的最新版本的游戏加速器文件,则加载所述已存在的最新版本的游戏加速器。该步骤具体包括:

步骤S104a1:所述本地热更新和加载模块查询库文件目录中存在可靠的最新版本的游戏加速器文件时,加载所述库文件目录中的游戏加速器文件。

步骤S104a2:所述本地热更新和加载模块查询到库文件缓存目录中存在压缩的游戏加速器文件且为可靠的最新版本时,将所述库文件缓存目录中的压缩的游戏加速器文件解压到所述库文件目录中,并在解压到所述库文件目录中的游戏加速器文件的MD5校验码校验成功时,加载所述库文件目录中的游戏加速器文件。

步骤S104a3:作为另一实施例,假设设置了SD卡库文件缓存目录。所述本地热更新和加载模块查询到SD卡库文件缓存目录中存在压缩的游戏加速器文件且为可靠的最新版本时,将所述SD卡库文件缓存目录中的压缩的游戏加速器文件解压到所述库文件缓存目录中,通过MD5校验码验证解压到所述库文件缓存目录中的压缩的游戏加速器文件为可靠的最新版本文件后,将所述库文件缓存目录中的压缩的游戏加速器文件解压到所述库文件目录中,通过MD5校验码验证解压到所述库文件目录中的游戏加速器文件为可靠的最新版本文件后,加载所述库文件目录中的可靠的最新版本的游戏加速器文件。

步骤S104b:从所述远程服务器下载可靠的最新版本的游戏加速器文件并加载。

具体地说,若库文件目录不存在可靠的最新版本的游戏加速器文件、库文件缓存目录不存在可靠的压缩的最新版本的游戏加速器文件、未设置SD卡库文件缓存目录,则所述本地热更新和加载模块根据远程下载地址和压缩的游戏加速器文件的文件名,从远程服务器下载压缩的游戏加速器文件至库文件缓存目录,MD5校验码校验通过后将库文件缓存目录中的压缩的游戏加速器文件解压至库文件目录,对解压至库文件目录中的游戏加速器文件进行校验,并在校验通过后加载所述库文件目录中的可靠的最新版本的游戏加速器文件。

作为另一实施例,若库文件目录不存在可靠的最新版本的游戏加速器文件、库文件缓存目录不存在可靠的压缩的最新版本的游戏加速器文件、设置的SD卡库文件缓存目录中也不存在可靠的压缩的最新版本的游戏加速器文件,则所述本地热更新和加载模块根据远程下载地址和压缩的游戏加速器文件的文件名,从远程服务器下载压缩的游戏加速器文件至SD卡库文件缓存目录,对SD卡库文件缓存目录中的压缩的游戏加速器文件校验通过后,将其拷贝至库文件缓存目录,然后对库文件缓存目录中的压缩的游戏加速器文件校验通过后,将其解压至库文件目录,最后对库文件目录中的游戏加速器文件校验通过后,加载所述库文件目录中的该可靠的最新版本的游戏加速器文件。

在执行上述步骤后,若从所述远程服务器下载可靠的最新版本的游戏加速器文件并加载成功,则所述本地热更新和加载模块生成版本信息文件,并将所述引导信息写入版本信息文件,否则,所述本地热更新和加载模块利用在前写入版本信息文件的引导信息,找到在前成功加载的游戏加速器文件,并加载所找到的游戏加速器文件。

本实施例可以通过远程获取的引导信息,得到游戏加速器版本以及下载信息;然后,获取到对应的游戏加速器文件来完成更新;最后,启动游戏加速器。

本实施例保留所有历史版本的游戏加速器文件,当最新版本的游戏加速器文件下载失败或加载失败时,可以使用在前成功加载过的游戏加速器文件。

本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,该程序在执行时,包括步骤S101至步骤S104。其中,所述的存储介质可以为ROM/RAM、磁碟、光盘等。

图2是本发明实施例提供的游戏加速器自动热更新与加载装置框图,如图2所示,包括:

获取单元10,用于根据用户信息和应用信息,从远程服务器获取游戏加速器的引导信息。

解析单元20,用于通过解析所述游戏加速器的引导信息,得到最新版本游戏加速器的相关信息。

判断单元30,用于利用所得到的最新版本游戏加速器的相关信息,确定本地是否存在可靠的最新版本的游戏加速器文件;

加载单元40,若存在可靠的最新版本的游戏加速器文件,则加载所述已存在的最新版本的游戏加速器,否则从所述远程服务器下载可靠的最新版本的游戏加速器文件并加载。

获取单元10根据用户信息和应用信息,从远程服务器获取游戏加速器的引导信息,解析单元20通过解析所述游戏加速器的引导信息,得到最新版本游戏加速器的相关信息,包括:远程下载地址、压缩的游戏加速器文件的文件名、压缩的游戏加速器文件的MD5校验码、游戏加速器文件的MD5校验码。作为一个实施例,当判断单元30判断库文件目录中存在可靠的最新版本的游戏加速器文件时,由加载单元40加载库文件目录中的可靠的最新版本的游戏加速器文件;当判断单元30判断库文件目录中不存在可靠的最新版本的游戏加速器文件,但库文件缓存目录中存在可靠的最新版本的压缩的游戏加速器文件时,将库文件缓存目录中的可靠的最新版本的压缩的游戏加速器文件解压至库文件目录,以供加载单元40加载库文件目录中的可靠的最新版本的游戏加速器文件;当判断单元30判断库文件目录中不存在可靠的最新版本的游戏加速器文件,且库文件缓存目录中不存在可靠的最新版本的压缩的游戏加速器文件时,根据远程下载地址和压缩的游戏加速器文件的文件名,从远程服务器下载可靠的最新版本的压缩的游戏加速器文件至库文件缓存目录,并解压至库文件目录,以供加载单元40加载库文件目录中的可靠的最新版本的游戏加速器文件。作为另一实施例,可以设置SD卡库文件缓存目录。当判断单元30判断库文件目录中不存在可靠的最新版本的游戏加速器文件、库文件缓存目录中不存在可靠的最新版本的压缩的游戏加速器文件,但SD卡库文件缓存目录中存在可靠的最新版本的压缩的游戏加速器文件时,将SD卡库文件缓存目录中的可靠的最新版本的压缩的游戏加速器文件拷贝至库文件缓存目录,并将库文件缓存目录中的可靠的最新版本的压缩的游戏加速器文件解压至库文件目录,以供加载单元40加载库文件目录中的可靠的最新版本的游戏加速器文件。

当判断单元30判断库文件目录中不存在可靠的最新版本的游戏加速器文件、库文件缓存目录和SD卡库文件缓存目录中均不存在可靠的最新版本的压缩的游戏加速器文件时,根据远程下载地址和压缩的游戏加速器文件的文件名,从远程服务器下载可靠的最新版本的压缩的游戏加速器文件至SD卡库文件缓存目录,然后将SD卡库文件缓存目录中的可靠的最新版本的压缩的游戏加速器文件拷贝至库文件缓存目录,并将库文件缓存目录中的可靠的最新版本的压缩的游戏加速器文件解压至库文件目录,以供加载单元40加载库文件目录中的可靠的最新版本的游戏加速器文件。

下面结合图3至图6,以更新与加载游戏加速器产品EgretRuntime为例,对本发明进一步说明。EgretRuntime是一套库文件(以下统称为EgretRuntime文件),包括一个jar(即JAVA归档文件,可以当作JAVA的库文件)文件和一个so(linux系统下的动态库文件)文件。本发明实施例能够使EgretRuntime产品的用户能够远程获取EgretRuntime,自动更新EgretRuntime,自动加载EgretRuntime的需求。

图3是自动更新EgretRuntime文件(即ja r文件和so文件),同时加载EgretRuntime文件(即jar文件和so文件)的流程。本发明实施例可以被使用者嵌入到他的应用中,并由应用来启动。如图3所示,步骤包括:

步骤S201:获取EgretRuntime引导信息。

对于每一位使用EgretRuntime的用户,分配一个spID(一串用于唯一标识用户身份的字符)和一个appKey(本实施例可以嵌入在用户的应用中使用,appKey是分配给该应用的唯一标识)。步骤S201中根据每一位用户的需求,在远程服务器上配置相应的引导信息,具体是通过spID和appKey从远程服务器获取相应格式(例如utf-8编码格式)的json形式的引导信息。

步骤S202:解析引导信息。

引导信息给出如下信息:

(1)远程下载地址;

(2)标准zip格式压缩的jar文件的文件名,此文件名以jar文件的文件名与扩展名.zip组合而成。

例如,egret_v100.jar.zip,通过此文件名可以得到当前所需jar文件的文件名:egret_v100.jar。

其中,远程下载地址和标准zip格式压缩的jar文件的文件名组合得到这个压缩文件,即标准zip格式压缩的jar文件的下载地址。

(3)标准zip格式压缩的jar文件的md5校验码。

(4)jar文件的md5校验码。

(5)标准zip格式压缩的so文件的文件名,此文件名以so文件的文件名与扩展名.zip组合而成。

例:egret_armeabi.so.zip,通过此文件名可以得到当前所需so文件的文件名:egret_armeabi.so。

其中,远程下载地址和标准zip格式压缩的so文件的文件名组合得到这个压缩文件,即标准zip格式压缩的so文件的下载地址。

(6)标准zip格式压缩的so文件的md5校验码。

(7)so文件的md5校验码。

上述信息通过解析引导信息得到。

步骤S203:版本校验。

通过解析引导信息,能够知道当前所需的EgretRuntime文件以及相关数据,开始做版本校验,步骤如下:

步骤S2031:在存储EgretRuntime文件的唯一目录即库文件目录做校验。

通过调用系统提供的文件系统相关接口(例如file.isDir(),file.exists())来检查所需要的EgretRuntime文件是否存在。如果不存在,说明校验失败,执行下一个检查步骤S2032。如果存在,获取已经存在的EgretRuntime文件的MD5校验码,具体地说,以字节方式读取当前EgretRuntime文件,然后把读取到的字节数据输入MD5码生成器,获取到EgretRuntime文件的MD5校验码,然后将得到的MD5校验码与所需EgretRuntime文件的MD5校验码(即步骤S202中得到的jar文件的MD5校验码和so文件的MD5校验码)比较,如果一致,校验成功,执行步骤S205。反之,校验失败,执行校验步骤S2032。

步骤S2032:在库文件缓存目录(库文件缓存目录存储EgretRuntime文件的压缩文件)做版本校验。

检查所需下载的压缩文件是否存在。如果不存在,校验失败,执行下一个检查步骤S2033。如果压缩文件存在,获取压缩文件的MD5校验码,具体的说,以字节方式读取压缩文件,然后把读取到的字节数据输入MD5码生成器,获取到压缩文件的MD5校验码,然后将得到的压缩文件的MD5校验码与所需下载的压缩文件的MD5校验码(即步骤S202中得到的标准zip格式压缩的jar文件的MD5校验码和标准zip格式压缩的so文件的MD5校验码)比较,如果MD5校验码一致,则解压已经存在的压缩文件到库文件目录,校验成功,执行步骤S205。如果MD5校验码不一致,校验失败,执行校验步骤S2033。

步骤S2033:在SD卡库文件缓存目录做版本校验。

如果没有设定SD卡库文件缓存目录,校验失败,执行检查步骤S2034。如果设定了SD卡库文件缓存目录,检查所需下载的压缩文件是否已存在。如果压缩文件不存在,说明校验失败,执行下一个校验步骤S2034。如果压缩文件存在,获取压缩文件的MD5校验码与所需下载的压缩文件的MD5校验码(即步骤S202中得到的标准zip格式压缩的jar文件的md5校验码和标准zip格式压缩的so文件的md5校验码)比较。如果一致,复制压缩文件到库文件缓存目录,执行步骤S2032。如果不一致,校验失败,执行校验步骤S2034。

步骤S2034:如果步骤S2031至步骤S2033三个校验都不通过,则把所需下载文件添加到下载列表。

SD卡库文件缓存目录与库文件缓存目录均用于存储EgretRuntime文件的压缩文件,即so文件的压缩文件(即标准zip格式压缩的so文件)和jar文件的压缩文件(即标准zip格式压缩的jar文件),从而用于在本地获取so文件以及jar文件。其中,库文件缓存目录存在于应用所处的文件目录环境下,应用一旦被删除,该目录也将被删除,其存在的意义在于,如果正在使用的so文件和jar文件被意外删除,可以从库文件缓存目录重新解压一份so文件和jar文件至库文件目录。SD卡库文件缓存目录是一个存在于SD卡上的普通文件目录,由使用者决定是否设定,在设定SD卡库文件缓存目录后,若本地库文件目录和库文件缓存目录的应用删除,SD卡库文件缓存目录仍然存在,SD卡库文件缓存目录中的内容也仍然存在,那么当再次安装应用时,可以从SD卡库文件缓存目录获取EgretRuntime的压缩文件,并拷贝到库文件缓存目录。

步骤S204:下载和部署所需EgretRuntime文件。

如果设定了SD卡库文件缓存目录,则下载所需的压缩文件到SD卡库文件缓存目录,然后拷贝压缩文件到库文件缓存目录。如果没有设定SD卡库文件缓存目录,则下载所需的压缩文件到库文件缓存目录。

如果下载压缩文件失败,执行图5所示的版本恢复动作。如果版本恢复动作失败,整个更新过程失败。如果版本恢复动作成功,整个更新过程完成。

如果下载压缩文件成功,获取下载下来的压缩文件的MD5校验码,与引导信息中相应的MD5校验码比对。如果MD5校验码不一致,删除已下载的压缩文件,下载失败,执行版本恢复动作,如果MD5校验码一致,则下载成功,此时将库文件缓存目录中的压缩文件解压到库文件目录(因为每一个版本的so文件和jar文件的文件名不一样,并不会覆盖在前版本的jar文件和so文件,即在前版本的jar文件以及so文件仍然存在,以供版本恢复使用),若解压失败,则执行版本恢复动作,若解压成功,则继续执行步骤S205。

所述版本恢复动作是指在当前更新动作出现错误后主动查询并使用前一个可使用的EgretRuntime文件。具体为,查看版本信息文件“egret.json”是否存在,如果版本信息文件“egret.json”不存在,则版本恢复动作失败,如果版本信息文件“egret.json”存在,则读取版本信息文件“egret.json”,版本信息文件“egret.json”存储的是已经成功使用的引导信息,通过解析引导信息,得到所需EgretRuntime文件的文件名,在库文件目录中寻找EgretRuntime文件,如果文件不存在或者加载失败,则版本恢复动作失败,如果文件存在并成功加载,则版本恢复动作成功。

若版本恢复动作失败,则整个更新过程失败,若版本恢复动作成功,则整个更新过程完成。

S205:加载EgretRuntime。

下载和部署完毕,立即加载库文件目录中的jar文件,后续在EgretRunime启动时,由jar文件的相应模块加载库文件目录中的so文件。

步骤S206:记录引导信息,把引导信息写入版本信息文件“egret.json”存档。

本实施例通过引导信息来完成EgretRuntime的更新,部署和加载。使用MD5来校验文件的一致性和完整性。

本实施例通过定制的SD卡库文件缓存目录,缓存EgretRuntime压缩文件,减少下载次数。

本实施例通过版本恢复动作来保证稳定性。

本发明的整个流程适用于白鹭公司产品EgretRuntime。

图4是本发明实施例提供的游戏加速器自动热更新与加载流程图,如图4所示,步骤包括:

步骤S301:通过spID,appKey从服务器获取相应引导信息;

步骤S302:解析引导信息得到游戏加速器的相关信息,具体包括:(1)远程下载地址;(2)标准zip格式压缩的jar文件的文件名;(3)标准zip格式压缩的jar文件的md5校验码;(4)jar文件的md5校验码;(5)标准zip格式压缩的so文件的文件名;(6)标准zip格式压缩的so文件的md5校验码;(7)so文件的md5校验码。

步骤S303:判断库文件目录中是否存在需要下载的文件,即是否存在步骤S302中的jar文件和so文件,若存在,则执行步骤S304,否则执行步骤S305。

步骤S304:判断已存在文件的md5校验码是否和引导信息中对应的md5校验码码一致,若一致则执行步骤S323,否则执行步骤S305。

具体地说,首先,通过将已存在的jar文件输入至MD5码生成器,得到jar文件的MD5校验码,通过将已存在的so文件输入至MD5码生成器,得到so文件的MD5校验码;然后,将本步骤得到的jar文件的MD5校验码与步骤S302得到的jar文件的MD5校验码进行比较,将本步骤得到的so文件的MD5校验码与步骤S302得到的so文件的MD5校验码进行比较,若均一致,则执行步骤S323,否则执行步骤S305。

步骤S305:判断库文件缓存目录中是否存在所需下载的压缩文件,即是否存在步骤S302中的标准zip格式压缩的jar文件和标准zip格式压缩的so文件,若存在,则执行步骤S306,否则执行步骤S307。

步骤S306:判断已存在压缩文件的md5校验码是否和引导信息中对应的md5校验码一致,若一致则执行步骤S321,否则执行步骤S307。

具体地说,首先,通过将已存在的标准zip格式压缩的jar文件输入至MD5码生成器,得到标准zip格式压缩的jar文件的MD5校验码,通过将已存在的标准zip格式压缩的so文件输入至MD5码生成器,得到标准zip格式压缩的so文件的MD5校验码;然后,将本步骤得到的标准zip格式压缩的jar文件的MD5校验码与步骤S302得到的标准zip格式压缩的jar文件的MD5校验码进行比较,将本步骤得到的标准zip格式压缩的so文件的MD5校验码与步骤S302得到的标准zip格式压缩的so文件的MD5校验码进行比较,若均一致,则执行步骤S321,否则执行步骤S307。

步骤S307:判断是否设置了SD卡库文件缓存目录,若已设置则执行步骤S308,否则执行步骤S311。

步骤S308:SD卡库文件缓存目录中是否存在需要的压缩文件,即是否存在步骤S302中的标准zip格式压缩的jar文件和标准zip格式压缩的so文件,若存在,则执行步骤S309,否则执行步骤S311。

步骤S309:判断已存在压缩文件的md5校验码是否和引导信息中对应的md5校验码一致,若一致则执行步骤S310,否则执行步骤S311。

具体地说,首先,通过将已存在的标准zip格式压缩的jar文件输入至MD5码生成器,得到标准zip格式压缩的jar文件的MD5校验码,通过将已存在的标准zip格式压缩的so文件输入至MD5码生成器,得到标准zip格式压缩的so文件的MD5校验码;然后,将本步骤得到的标准zip格式压缩的jar文件的MD5校验码与步骤S302得到的标准zip格式压缩的jar文件的MD5校验码进行比较,将本步骤得到的标准zip格式压缩的so文件的MD5校验码与步骤S302得到的标准zip格式压缩的so文件的MD5校验码进行比较,若均一致,则执行步骤S310,否则执行步骤S311。

步骤S310:将SD卡库文件缓存目录中的标准zip格式压缩的jar文件和标准zip格式压缩的so文件拷贝到库文件缓存目录。

步骤S311:判断是否设置了SD卡库文件缓存目录,若已设置则执行步骤S313,否则执行步骤S312。

步骤S312:从步骤S302得到的远程下载地址下载标准zip格式压缩的jar文件和标准zip格式压缩的so文件,并保存至库文件缓存目录中,执行步骤S314。

步骤S313:从步骤S302得到的远程下载地址下载标准zip格式压缩的jar文件和标准zip格式压缩的so文件,并保存至SD卡库文件缓存目录,执行步骤S315。

步骤S314:判断步骤S312是否成功,即是否下载成功,若是则执行步骤S316,否则执行步骤S324。

步骤S315:判断步骤S313是否成功,即是否下载成功,若是则执行步骤S317,否则执行步骤S324。

步骤S316:获取步骤S312下载下来的压缩文件的MD5校验码,即获取标准zip格式压缩的jar文件的MD5校验码和标准zip格式压缩的so文件的MD5校验码,然后执行步骤S318。

步骤S317:获取步骤S313下载下来的压缩文件的MD5校验码,即获取标准zip格式压缩的jar文件的MD5校验码和标准zip格式压缩的so文件的MD5校验码,然后执行步骤S319。

步骤S318:分别判断步骤S316获取的MD5校验码是否与引导文件中对应的MD5校验码一致,若一致则执行步骤S321,否则执行步骤S324。

步骤S319:分别判断步骤S317获取的MD5校验码是否与引导文件中对应的MD5校验码一致,若一致则执行步骤S320,否则执行步骤S324。

步骤S320:将SD卡库文件缓存目录中的标准zip格式压缩的jar文件和标准zip格式压缩的so文件拷贝至库文件缓存目录。

步骤S321:对库文件缓存目录中的标准zip格式压缩的jar文件和标准zip格式压缩的so文件进行解压,并将解压得到的jar文件和so文件保存到库文件目录。

步骤S322:判断步骤S321是否成功,即是否解压成功,若成功则执行步骤S323,否则执行步骤S324。

步骤S323:加载库文件目录中的jar文件。

步骤S324:执行版本恢复动作,按照图5所示版本恢复流程处理,然后执行步骤S326。

步骤S325:生成版本信息文件,例如“egret.json”,并将步骤S301得到的引导信息写入版本信息文件“egret.json”中。

步骤S326:判断版本恢复是否成功,若成功,则执行步骤S328,否则执行步骤S327。

步骤S327:更新与加载失败。

步骤S328:更新与加载成功。

图5是本实施例提供的版本恢复流程图,如图5所示,步骤包括:

步骤S401:判断版本信息文件是否存在,若存在则执行步骤S402,否则执行步骤S406。

以EgretRuntime版本恢复为例,若存在版本信息文件“egret.json”,则执行步骤S402,否则执行步骤S406。

步骤S402:读取版本信息文件,例如“egret.json”。

步骤S403:根据从版本信息文件中读取到的引导信息,在库文件目录中查找所需的文件。

例如在版本信息文件“egret.json”中读取引导信息,并通过解析引导信息,得到EgretRuntime文件的相关信息,从而在库文件目录中查找所需的文件。

步骤S404:判断所需文件是否存在,若存在则执行步骤S405,否则执行步骤S406。

例如,若存在EgretRuntime的文件则执行步骤S405,否则执行步骤S406。

步骤S405:加载引导信息指定的EgretRuntime的jar文件。

步骤S406:版本恢复失败。

步骤S407:版本恢复成功。

本发明实施例在当前游戏加速器更新失败时,能够继续使用已有的EgretRuntime,从而提高稳定性。

图6是本实施例提供的设置有SD卡库文件缓存目录时的游戏加速器自动热更新与加载流程图,本实施例以自动热更新与加载白鹭游戏加速器产品EgretRutime为例,假设设置SD卡库文件缓存目录为/sdcard/egret_runtime/,spID为spIDtest1,appKey为appKeytest1,如图6所示,步骤包括:

步骤S501:通过spID和appKey从服务器获取引导信息,例如:http://runtime.egret-labs.org/getInfo.php?spID=spIDtest1&appkey=appK eytest1。

步骤S502:解析引导信息得到以下相关信息。

远程下载地址:http://runtime.egret-labs.org/getRuntime/;

标准zip格式压缩的jar文件的文件名:egret-v100.jar.zip;

标准zip格式压缩的jar文件的md5校验码:jarzipmd512345;

jar文件的md5校验码:jarfilemd512345;

标准zip格式压缩的so文件的文件名:egret-v100.so.zip;

标准zip格式压缩的so文件的md5校验码:sozipmd512345;

so文件的md5校验码:sofilemd512345。

步骤S503:判断库文件目录中是否存在EgretRutime的文件egret-v100.jar和egret-v100.so,本实施例假设不存在egret-v100.jar和egret-v100.so,此时执行步骤S504。

步骤S504:判断库文件缓存目录中是否存在EgretRutime的压缩文件egret-v100.jar.zip和egret-v100.so.zip,本实施例假设不存在EgretRutime的压缩文件egret-v100.jar.zip和egret-v100.so.zip,此时执行步骤S505。

步骤S505:判断是否设置了SD卡库文件缓存目录,本实施例假设设置有SD卡库文件缓存目录,此时执行步骤S506。

步骤S506:判断SD卡库文件缓存目录中是否存在EgretRutime的压缩文件egret-v100.jar.zip和egret-v100.so.zip,本实施例假设不存在EgretRutime的压缩文件egret-v100.jar.zip和egret-v100.so.zip,此时执行步骤S507。

步骤S507:从步骤S502解析得到的远程下载地址下载EgretRutime的压缩文件到SD卡库文件缓存目录,即将http://runtime.egret-labs.org/getRuntime/egret-v100.jar.zip下载到/sdcard/egret_runtime/egret-v100.jar.zip;将http://runtime.egret-labs.org/getRuntime/egret-v100.so.zip下载到/sdcard/egret_runtime/egret-v100.so.zip。

步骤S508:获取下载下来的压缩文件的MD5校验码,例如压缩的jar文件的MD5校验码jarzipmd512345和压缩的so文件的MD5校验码sozipmd512345。

步骤S509:判断步骤S508得到的MD5校验码是否与引导文件中对应的zip文件的MD5校验码一致,本实施例假设比较结果一致,并执行步骤S510。

步骤S510:拷贝SD卡库文件缓存目录下的压缩文件到库文件缓存目录,即:<库文件缓存目录>/egret-v100.jar.zip和<库文件缓存目录>/egret-v100.so.zip。

步骤S511:将步骤S510中中拷贝的压缩文件解压到库文件目录中,即:<库文件目录>/egret-v100.jar和<库文件目录>/egret-v100.so。

步骤S512:获取文件的MD5校验码,例如jar文件的MD5校验码jarfilemd512345和so文件的MD5校验码sofilemd512345。

步骤S513:判断步骤S512得到的MD5校验码是否与引导文件中对应的MD5校验码一致,本实施例假设比较结果一致,并执行步骤S514。

步骤S514:加载jar文件,即:<库文件目录>/egret-v100.jar。

步骤S515:生成版本信息文件“egret.json”,并把步骤S501获取的引导信息写入该版本信息文件“egret.json”。

步骤S516:更新与加载成功。

综上所述,本发明的实施例具有以下技术效果:

1、本发明实施例根据引导信息来更新、部署和加载游戏加速器,例如EgretRuntime,配置简单,使用简单;

2、本发明实施例的每个关键步骤都使用md5校验码来校验文件的正确性、一致性和完整性;

3、本发明实施例支持版本恢复,从而在当前更新失败时,也能够继续使用已有的EgretRuntime,提高稳定性;

4、本发明实施例支持在SD卡上缓存游戏加速器文件,例如EgretRuntime文件,能够减少EgretRuntime文件的下载次数。

尽管上文对本发明进行了详细说明,但是本发明不限于此,本技术领域技术人员可以根据本发明的原理进行各种修改。因此,凡按照本发明原理所作的修改,都应当理解为落入本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1