一种应用分发和快速加载运行的系统及方法

文档序号:6622532阅读:211来源:国知局
一种应用分发和快速加载运行的系统及方法
【专利摘要】本发明公开了一种应用分发和快速加载运行的系统及方法,系统包括应用引擎打包模块;应用引擎安装注册模块;应用资源文件编译模块;应用资源文件打包模块;应用资源文件分发服务器;智能终端设备。方法为将应用资源和应用引擎分离,并通过可由浏览器触发的自定义协议URL将二者关联起来。浏览器通过指向应用资源的自定义协议的URL启动应用引擎。应用引擎提供对于自定义协议支持并在安装的时候向操作系统进行注册。应用引擎根据自定义协议的链接对应用资源文件进行管理,包括下载、注册、更新和运行等。本发明总体上解决了两个问题:第一个,应用上线周期长;第二个,应用用户必须到应用市场下载安装后才能运行应用的问题。
【专利说明】一种应用分发和快速加载运行的系统及方法

【技术领域】
[0001] 本发明涉及智能设备中运行应用的分发和快速加载运行的【技术领域】,尤其涉及一 种针对基于应用引擎的应用快速分发和快速加载运行的系统和方法。

【背景技术】
[0002] -般而言,应用开发者在开发完应用之后,会将应用提交到应用市场;应用市场进 行审核;用户通过应用市场下载应用并进行安装、运行(如图4所示)。
[0003] 对于应用开发者而言,由于应用市场审核周期普遍较长(大约七天),审核通过后 用户才能下载安装;通过应用市场下载安装的应用,如果应用需要进行更新,一般都需要重 新提交到应用市场。因此应用用户必须重新下载和安装应用。这无疑也会不利于快速更新 新版到用户手里。
[0004] 从应用本身的角度说,应用安装包一般由应用引擎和应用资源这两个部分组成。 市面上许多应用,例如绝大部分游戏应用所用到的游戏运行环境或者游戏引擎都是由几家 游戏引擎供应商提供,比如Unity3D,C 〇C〇S2d等。因此,大部分游戏应用都是由相同的引擎 开发,游戏应用开发者仅仅是游戏应用资源的作者。然而现在的问题是:应用开发者上线的 每一个应用除了自己开发的应用资源部分,同时要携带体积较大的应用引擎。而应用用户 在安装多个此类应用时,也需要重复下载应用引擎部分,这部分重复的下载既费网络流量, 又增加了应用用户的等待时间,而且安装后又占用额外的存储空间,同时启动应用也需要 消耗更多的10操作来加载,运行时还占用冗余的内存。


【发明内容】

[0005] 本发明的目的在于针对基于应用引擎的应用提供一种快速分发、快速加载运行的 系统和方法,从而解决现有技术中存在的前述问题。
[0006] 为了实现上述目的,本发明采用的技术方案如下:
[0007] -种应用分发和快速加载运行的系统,包括:
[0008] 应用引擎打包模块,用于将经过修改应用资源加载方式的应用引擎文件打包成可 独立安装运行的通用应用引擎;
[0009] 应用引擎安装注册模块,用于将所述通用应用引擎安装到智能终端设备的操作系 统中,并向所述操作系统注册所述通用应用引擎能够识别的自定义协议;
[0010] 应用资源文件编译模块,用于将欲发布的应用的源应用资源文件编译为可供所述 通用应用引擎加载执行的目标应用资源文件;
[0011] 应用资源文件打包模块,用于将可供所述通用应用引擎加载执行的目标应用资源 文件打包,生成目标应用资源文件包,以用于应用资源文件分发服务器部署;
[0012] 应用资源文件分发服务器,用于以所述自定义协议的规范发布所述目标应用资源 文件包的URL ;
[0013] 智能终端设备,用于安装承载所述通用应用引擎,还用于承载由所述通用应用引 擎加载执行所述目标应用资源文件后所运行的应用。
[0014] 优选的,所述通用应用引擎为能够动态加载所述目标应用资源文件,且能够根据 指令在多组所述目标应用资源文件间动态切换的通用应用引擎。
[0015] 优选的,所述目标应用资源文件为由应用资源编译器对源应用资源文件进行编译 后得到的能够供所述通用应用引擎直接加载执行的二进制机器指令文件。
[0016] 一种应用分发和快速加载运行的方法,包括以下步骤:
[0017] S1,修改应用引擎加载应用资源的方式,并将修改后的所述应用引擎单独打包为 不包含应用资源文件的通用应用引擎;
[0018] S2,智能终端设备的操作系统中安装所述的通用应用引擎,并向所述操作系统注 册所述通用应用引擎能够识别的自定义协议;
[0019] S3,将欲发布的应用的源应用资源文件编译为可供所述通用应用引擎加载执行的 目标应用资源文件;
[0020] S4,将欲发布的可供所述通用应用引擎加载执行的目标应用资源文件打包成所述 通用应用引擎能够识别的目标应用资源文件包;
[0021] S5,以所述自定义协议规范发布所述目标应用资源文件包的URL ;
[0022] S6,所述智能终端设备访问所述URL,并依据所述自定义协议启动所述通用应用 引擎,并将所述URL中包含的参数信息传递给所述通用应用引擎;
[0023] S7,所述通用应用引擎根据所述参数信息得到所述目标应用资源文件,并加载执 行所述目标应用资源文件。
[0024] 优选的,
[0025] 所述通用应用引擎为能够动态加载所述目标应用资源文件,且能够根据指令在多 组所述目标应用资源文件间动态切换的通用应用引擎。
[0026] 优选的,
[0027] 所述目标应用资源文件为由应用资源编译器对源应用资源文件进行编译后得到 的能够供所述通用应用引擎直接加载执行的二进制机器指令文件。
[0028] 优选的,
[0029] 所述参数信息包括与所述目标应用资源文件包相对应的下载链接地址。
[0030] 优选的,
[0031] S7具体为:
[0032] 根据所述下载链接地址将所述目标应用资源文件包下载到本地并解压,得到所述 目标应用资源文件,然后再加载执行所述目标应用资源文件。
[0033] 优选的,
[0034] S7具体为:
[0035] 根据所述下载链接地址,判断所述目标应用资源文件在本地是否已存在,如存在 则判断本地已存在的目标应用资源文件的版本号是否已过期,如果已过期,则根据所述下 载链接地址将所述目标应用资源文件包下载到本地并解压,得到新版本的所述目标应用资 源文件,然后再加载执行所述目标应用资源文件,如果判断结果为未过期,则直接执行本地 已存在的所述目标应用资源文件。
[0036] 优选的,
[0037] 所述URL是能够由所述智能终端设备上的浏览器识别和触发的URL。
[0038] 本发明的有益效果是:
[0039] 本发明公开的系统和方法实施后使得应用开发者不需要将应用发布到应用市场, 应用用户也不需要到应用市场手动下载安装应用。应用开发者可以直接在线分发应用,应 用用户通过浏览器就可以免除安装该应用的过程,直接快速加载运行该应用。从而实现应 用的快速分发和加载运行。

【专利附图】

【附图说明】
[0040] 图1是现有游戏应用的结构示意图;
[0041] 图2是本发明实施例的总体流程示意图;
[0042] 图3是本发明实施例中通过自定义协议启动游戏引擎的实现流程示意图;
[0043] 图4是现有技术中游戏用户使用游戏应用的过程示意图;
[0044] 图5是本发明实施例中游戏用户使用游戏应用的过程示意图;
[0045] 图6是本发明实施例中启动加载运行游戏的整体过程示意图。

【具体实施方式】
[0046] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进 行进一步详细说明。应当理解,此处所描述的【具体实施方式】仅仅用以解释本发明,并不用于 限定本发明。
[0047] 本发明总体上解决了两个问题:第一个,应用上线周期长;第二个,应用用户必须 到应用市场下载安装后才能运行应用的问题。
[0048] 为解决上述技术问题,本发明采用的技术方案是:将应用资源和应用引擎分离,并 通过可由web浏览器触发的自定义协议URL将二者关联起来。浏览器通过指向应用资源的 自定义协议的URL启动应用引擎。应用引擎提供对于自定义协议的支持并在安装的时候向 操作系统进行注册。应用引擎根据自定义协议的链接对应用资源文件进行管理,包括下载、 注册、更新和运行等。通过已内置在web浏览器中或已安装在本地的支持加载在线应用资 源或本地应用资源的应用引擎,直接访问在线应用资源或本地应用资源,这样该应用就不 需要从应用市场下载安装了。
[0049] 采用本发明的技术方案的应用所需的应用资源可以非常简单快速的部署到任意 的Web服务器上,而不再需要将整个应用发布到应用市场,从而节省了很长的应用市场的 审批时间,并且也就不需要从应用市场下载应用,进而免掉了应用用户必须要到应用市场 下载应用并安装的过程。对于应用开发者而言,由于不用提交到应用市场审核,而且应用引 擎已经内置到设备本地,因此可以更快速的上线应用,从而提高应用的转化率和提高应用 更新速度。对于应用用户而言,可以快速地打开应用并运行,而且可以在多个应用之间迅速 切换。
[0050] 对于应用开发者而言,本发明的技术方案提供了新的上线机制。应用开发者使用 应用资源编译器对应用资源进行预编译,生成可供应用引擎直接执行的二进制机器指令文 件,然后通过应用资源打包工具进行打包,最后将打包后的文件部署到任意Web服务器。这 样可以避免应用市场的审批,节省宝贵的时间,做到部署即上线,从而解决应用上线周期长 的问题;对于应用用户而言,本发明的技术方案提供了新的运行机制。应用用户可以通过应 用市场下载安装应用引擎或者由其他应用捆绑安装。应用引擎在安装的过程中向操作系统 注册所支持的自定义协议。应用用户通过浏览器访问包含有应用资源文件URL的页面,点 击相应的带有自定义协议的URL就可以直接使用该应用,不再需要单独手动下载和安装, 解决了需要下载安装后才能运行应用的问题。
[0051] 所述的应用资源打包工具是指对应用资源单独打包用于部署、发布的工具(一般 应用引擎自带)。
[0052] 所述的应用资源编译器是指一个能够编译应用资源生成二进制机器指令的工具 (一般应用引擎自带)。
[0053] 所述的浏览器是指能够访问Web服务器资源的互联网浏览工具,也包括使用智能 终端设备系统提供的WebView等浏览器技术实现的支持Web服务器访问的任意应用。
[0054] 所述的应用链接是指应用开发者为上线后的应用指定的URL。
[0055] 游戏应用是典型的基于游戏引擎的应用,因此以下内容以游戏应用为例详细阐述 本发明的具体实施过程。
[0056] 传统的游戏应用包括游戏资源(相当于前述的应用资源)和游戏引擎(相当于前 述的应用引擎)两部分(如图1所示)。为了实现在线部署游戏和快速加载运行游戏,本实 施例中将游戏资源与游戏引擎分离后,通过自定义协议URL方式加载在线的游戏资源,从 而方便的部署游戏资源和游戏引擎。以下以基于C 〇C〇s2D游戏引擎的游戏为例进行说明如 何实现本发明。本发明并不仅限于基于C〇C〇s2D游戏引擎的游戏,基于Unity3D等游戏引 擎的其他游戏也适用本发明;本发明中所述的智能终端设备包括但不限于智能手机、PAD、 平板电脑等智能设备。实施方式请参考图2:
[0057] 支持游戏资源动态加载的实现:
[0058] 将游戏资源与游戏引擎分离,具体为:使用Cocos2D提供的创建新工程的工具,创 建一个传统的游戏应用工程。将工程中的示例游戏资源移除掉,提取出该工程中除示例游 戏资源外的其他全部文件,使该工程成为了一个仅包含游戏引擎的工程。使用游戏资源编 译工具编译游戏引擎API提供的JS脚本生成可供游戏引擎直接执行的二进制机器指令文 件,并删除掉这些脚本文件,从而提高游戏引擎的效率。
[0059] 修改游戏引擎加载游戏资源的方式,具体为:修改游戏引擎中加载游戏资源的逻 辑,使得游戏引擎不再默认从游戏引擎的安装目录中读取游戏资源,而是能够接受外部传 入的参数,并根据该参数读取游戏资源,从而支持加载在线的或者本地独立的游戏资源,做 到游戏引擎与游戏资源的分离并能够动态加载游戏资源。
[0060] 生成独立的游戏引擎应用,具体为:使用COCOS2D提供的生成游戏引擎应用的工 具,编译不包含游戏资源的新的工程并生成能够发布到应用市场的游戏引擎应用。
[0061 ] 游戏引擎支持自定义协议的URL的实现:
[0062] 自定义协议URL,具体为:定义专有游戏协议链接的格式为mge://abC,其中abc = base64Encode(real_url) 〇
[0063] 其中mge://为专有游戏协议链接的协议头;real_url为http://协议的指向游 戏资源的真实URL ;base64Encode为base64编码功能;abc为real_url使用base64编码 之后的结果;将mge://与abc拼接在一起就组成了自定义协议的URL。
[0064] 向系统注册自定义协议URL,具体为:根据不同的平台需要采用不同的实现方式。 例如,安卓平台的游戏引擎可以通过修改Manifest文件增加对自定义协议的支持,游戏引 擎在安装时会向安卓系统注册可以支持的自定义协议。
[0065] 游戏引擎对自定义协议URL解码,具体为:游戏引擎接收由浏览器传递过来的专 有游戏链接,识别其协议头mge: //,然后对协议头后部的内容使用base64对该内容进行解 码,得到真实的游戏资源URL。
[0066]启动游戏引擎的实现过程:
[0067] 游戏开发者将开发的游戏打包部署到Web服务器,并按照自定义协议的格式要求 生成相应的游戏链接,最后,游戏链接通过网页发布。用户进入带有游戏链接的网页后,点 击相应的游戏链接,从而启动游戏引擎。通过自定义协议启动游戏引擎的实现流程图参见 图3。
[0068] 游戏引擎可以内置到浏览器中,也可以单独安装,如果游戏引擎内置于浏览器中, 则可由浏览器直接启动游戏引擎。
[0069] 对于游戏引擎需要单独安装的情况,操作系统中可能尚未安装游戏引擎,启动引 擎之前操作系统还需要查找支持自定义协议的应用的过程,具体为:
[0070] 用户在点击了 web页面中的自定义协议游戏链接后,操作系统会查找支持该自定 义协议的应用程序。同时,浏览器会启动一个时间较短的倒计时的定时器,该定时器的功能 就是根据定时器响应时与定时器启动时之间的时间差来判断游戏引擎是否被找到并启动。 由于游戏引擎启动后,会挂起浏览器的执行,因此,时间差就会比较大。也就是说,时间差不 小于预设的时间,那么就认为游戏引擎被找到和启动起来;如果时间差小于预设时间则认 为游戏引擎没有找到和启动起来。
[0071] 如果操作系统找到了支持自定义协议的游戏引擎,操作系统就会调用游戏引擎, 同时挂起浏览器的运行。如果操作系统没有找到支持自定义协议的游戏引擎,也就是系 统中没有安装支持自定义协议的游戏引擎,浏览器就会跳转到游戏引擎下载安装的提示页 面,提示用户先下载安装游戏引擎。
[0072] 安装完游戏引擎后,操作系统会将自定义协议游戏链接作为参数传递给游戏引 擎,并启动游戏引擎。
[0073] 游戏引擎管理游戏资源的下载、更新、注册和运行的实现过程:
[0074] 检测游戏是否已经下载并注册以及是否需要更新的过程,具体为:游戏引擎启动 后,根据传递过来的自定义协议游戏链接,识别出协议头mge://,然后使用base64对协议 头后面的用base64编码过的游戏资源URL进行解码,从而得到游戏资源的真实URL。根据 该真实URL检测本地是否已经下载并注册过该游戏。如果没有下载并注册,那么进入下载 并注册游戏的步骤;如果已经下载并注册过该游戏,那么游戏引擎会请求Web服务器上的 版本信息数据并与本地版本信息数据进行比较,从而检测游戏是否需要更新。如果需要更 新,进入更新游戏的步骤;否则,直接加载执行已经下载注册的游戏资源,运行游戏。
[0075] 下载并注册游戏的过程,具体为:在得到游戏资源自定义协议里的http://协议 的真实URL之后,游戏引擎启动下载,将游戏资源下载到本地。下载成功后,游戏引擎将下 载到本地的游戏资源进行解压缩,并将解压缩之后的文件放到游戏引擎指定的游戏资源目 录,并将相关的游戏信息保存到游戏引擎的配置文件当中进行注册。
[0076] 更新游戏的过程,具体为:游戏引擎从Web服务器下载了版本更新信息,按照更新 信息的要求下载需要更新的文件。在更新文件下载成功后,对本地的游戏资源文件进行替 换。在所有文件都更新成功后,将新的版本信息保存到游戏引擎并注册。
[0077] 运行游戏的过程,具体为:游戏引擎根据游戏资源的真实URL从注册信息中找到 相应的本地游戏资源,然后加载游戏资源。
[0078] 游戏资源的打包及部署的实现过程:
[0079] 游戏开发者在线部署游戏资源并提供自定义协议URL分发游戏,具体过程为:游 戏开发者在开发完游戏后,通过游戏资源编译器将游戏资源编译成目标脚本,然后通过游 戏资源打包工具进行打包生成新的游戏文件包,最后将游戏文件包部署到任何Web服务器 上。如果游戏开发者需要更新游戏,只需要将游戏重新打包然后替换之前的游戏文件包即 可。
[0080] 游戏开发者将mge: //与经过base64编码后的游戏资源URL结合在一起组成自定 义游戏协议链接,并将这些链接放到发布的网页中,用户通过这个网页玩游戏。这就实现 了游戏的在线部署。因此,游戏开发者只需进行游戏资源的在线部署和更新即可,不再需要 单独生成一个包含游戏引擎和游戏资源的安装包发布到应用市场。
[0081] 本实施例中,游戏的启动、加载、运行方式说明(请见图6):
[0082] 用户通过浏览器进入游戏开发者提供的包含有自定义协议URL的页面,点击相应 的URL,浏览器或操作系统会根据该协议查找关联了该协议的游戏引擎。如果浏览器或操作 系统没有找到该游戏引擎,则提示用户安装该游戏引擎。如果浏览器或操作系统找到了该 游戏引擎,则该游戏引擎会被启动并将自定义协议的URL传递到游戏引擎中。然后游戏引 擎对自定义协议URL进行解码处理从而得到真实的http: //协议的URL,并根据该URL查询 游戏引擎中的注册信息检查该游戏资源是否已经存在。如果已经存在,则检查游戏资源是 否需要更新。如果需要更新,则游戏引擎就更新游戏资源,然后再加载运行游戏资源;如果 不需要更新,则直接加载游戏资源并运行。如果查询游戏引擎中该游戏资源不存在,则游戏 引擎根据游戏资源的真实URL下载该游戏资源,下载完成后注册游戏资源到游戏引擎,然 后再加载并运行该游戏资源。从而实现快速的加载和运行。
[0083] 对于游戏用户来讲,由于多个符合本发明规范的游戏资源共用同一个游戏引擎, 游戏引擎动态加载游戏资源,则可实现在不同游戏之间的快速加载和切换,大大提高游戏 运行效率,同时也减少了游戏用户到应用市场单独下载安装每个游戏所需要的时间和安装 每个游戏所需要的空间。
[0084] 通过采用本发明公开的上述技术方案,得到了如下有益的效果:
[0085] 本发明公开的系统和方法实施后使得应用开发者不需要将应用发布到应用市场, 应用用户也不需要到应用市场手动下载安装应用。应用开发者可以直接在线分发应用,应 用用户通过浏览器就可以免除安装该应用的过程,直接快速加载运行该应用。从而实现应 用的快速分发和快速加载运行。
[0086] 以上所述仅是本发明的优选实施方式,应当指出,对于本【技术领域】的普通技术人 员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应 视本发明的保护范围。
【权利要求】
1. 一种应用分发和快速加载运行的系统,其特征在于,包括: 应用引擎打包模块,用于将经过修改应用资源加载方式的应用引擎文件打包成可独立 安装运行的通用应用引擎; 应用引擎安装注册模块,用于将所述通用应用引擎安装到智能终端设备的操作系统 中,并向所述操作系统注册所述通用应用引擎能够识别的自定义协议; 应用资源文件编译模块,用于将欲发布的应用的源应用资源文件编译为可供所述通用 应用引擎加载执行的目标应用资源文件; 应用资源文件打包模块,用于将可供所述通用应用引擎加载执行的目标应用资源文件 打包,生成目标应用资源文件包,以用于应用资源文件分发服务器部署; 应用资源文件分发服务器,用于以所述自定义协议的规范发布所述目标应用资源文件 包的URL ; 智能终端设备,用于安装承载所述通用应用引擎,还用于承载由所述通用应用引擎加 载执行所述目标应用资源文件后所运行的应用。
2. 根据权利要求1所述的应用分发和快速加载运行的系统,其特征在于,所述通用应 用引擎为能够动态加载所述目标应用资源文件,且能够根据指令在多组所述目标应用资源 文件间动态切换的通用应用引擎。
3. 根据权利要求1所述的应用分发和快速加载运行的系统,其特征在于,所述目标应 用资源文件为由应用资源编译器对源应用资源文件进行编译后得到的能够供所述通用应 用引擎直接加载执行的二进制机器指令文件。
4. 一种应用分发和快速加载运行的方法,其特征在于,包括以下步骤: S1,修改应用引擎加载应用资源的方式,并将修改后的所述应用引擎单独打包为不包 含应用资源文件的通用应用引擎; 52, 智能终端设备的操作系统中安装所述的通用应用引擎,并向所述操作系统注册所 述通用应用引擎能够识别的自定义协议; 53, 将欲发布的应用的源应用资源文件编译为可供所述通用应用引擎加载执行的目标 应用资源文件; 54, 将欲发布的可供所述通用应用引擎加载执行的目标应用资源文件打包成所述通用 应用引擎能够识别的目标应用资源文件包; 55, 以所述自定义协议规范发布所述目标应用资源文件包的URL ; 56, 所述智能终端设备访问所述URL,并依据所述自定义协议启动所述通用应用引擎, 并将所述URL中包含的参数信息传递给所述通用应用引擎; 57, 所述通用应用引擎根据所述参数信息得到所述目标应用资源文件,并加载执行所 述目标应用资源文件。
5. 根据权利要求4所述的应用分发和快速加载运行的方法,其特征在于, 所述通用应用引擎为能够动态加载所述目标应用资源文件,且能够根据指令在多组所 述目标应用资源文件间动态切换的通用应用引擎。
6. 根据权利要求4所述的应用分发和快速加载运行的方法,其特征在于, 所述目标应用资源文件为由应用资源编译器对源应用资源文件进行编译后得到的能 够供所述通用应用引擎直接加载执行的二进制机器指令文件。
7. 根据权利要求4所述的应用分发和快速加载运行的方法,其特征在于, 所述参数信息包括与所述目标应用资源文件包相对应的下载链接地址。
8. 根据权利要求4所述的应用分发和快速加载运行的方法,其特征在于, S7具体为: 根据所述下载链接地址将所述目标应用资源文件包下载到本地并解压,得到所述目标 应用资源文件,然后再加载执行所述目标应用资源文件。
9. 根据权利要求4所述的应用分发和快速加载运行的方法,其特征在于, S7具体为: 根据所述下载链接地址,判断所述目标应用资源文件在本地是否已存在,如存在则判 断本地已存在的目标应用资源文件的版本号是否已过期,如果已过期,则根据所述下载链 接地址将所述目标应用资源文件包下载到本地并解压,得到新版本的所述目标应用资源文 件,然后再加载执行所述目标应用资源文件,如果判断结果为未过期,则直接执行本地已存 在的所述目标应用资源文件。
10. 根据权利要求4所述的应用分发和快速加载运行的方法,其特征在于, 所述URL是能够由所述智能终端设备上的浏览器识别和触发的URL。
【文档编号】G06F9/445GK104156243SQ201410381660
【公开日】2014年11月19日 申请日期:2014年8月5日 优先权日:2014年8月5日
【发明者】陈明杰 申请人:网际傲游(北京)科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1