资源文件加载方法、装置、设备、存储介质以及产品与流程

文档序号:24305325发布日期:2021-03-17 00:57阅读:64来源:国知局
资源文件加载方法、装置、设备、存储介质以及产品与流程

本公开涉及数据处理技术领域,尤其涉及资源文件加载领域。



背景技术:

随着手机等智能终端性能的不断提升,游戏厂商为了提供更好的游戏体验,应用中游戏多边形面数以及贴图文件大小等资源大小不断增加,导致应用首次安装需要浪费大量时间来下载资源文件(如贴图和模型文件)。



技术实现要素:

本公开提供了一种用于资源文件加载方法、装置、设备、存储介质以及产品。

根据本公开的一方面,提供了一种资源文件加载方法,应用于客户端,包括:

确定针对目标应用的待加载资源文件;

确定本地的资源共享目录中是否包含待加载资源文件,资源共享目录中包含不同应用共享的资源文件;

在资源共享目录中包含待加载资源文件的情况下,从资源共享目录中加载待加载资源文件。

根据本公开的另一方面,提供了一种资源文件加载装置,应用于客户端,包括:

第一确定模块,用于确定针对目标应用的待加载资源文件;

第二确定模块,用于确定本地的资源共享目录中是否包含待加载资源文件,资源共享目录中包含不同应用共享的资源文件;

资源加载模块,用于在资源共享目录中包含待加载资源文件的情况下,从资源共享目录中加载待加载资源文件。

根据本公开的另一方面,提供了一种电子设备,包括:

至少一个处理器;以及

与该至少一个处理器通信连接的存储器;其中,

该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行本公开任一实施例中的方法。

根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行本公开任一实施例中的方法。

根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本公开任一实施例中的方法。

根据本公开的技术解决了应用首次安装浪费大量时间来下载资源文件的问题,能够提高资源文件加载速度。

应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图用于更好地理解本方案,不构成对本公开的限定。其中:

图1是根据本公开实施例的资源文件加载方法示意图;

图2是根据本公开实施例的资源文件加载方法示意图;

图3是根据本公开实施例的开发者视角的新旧资源文件加载模式对比示意图;

图4是根据本公开实施例的应用用户视角的新旧资源文件加载模式对比示意图;

图5是根据本公开实施例的资源文件加载装置示意图;

图6是根据本公开实施例的资源文件加载装置示意图;

图7是根据本公开实施例的资源文件加载装置示意图;

图8是用来实现本公开实施例的资源文件加载方法的电子设备的框图。

具体实施方式

以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

为解决应用首次安装需要浪费大量时间来下载资源文件的问题,现有的两种实现方案中:

一、厂商将大量的资源文件打包到应用的安装包内,会导致安装包体积过大,进而导致下载速度缓慢、应用更新覆盖、安装速度慢等问题。

二、应用首次启动后从应用对应的服务器下载资源文件,虽然能解决安装包体积过大的问题,但是由于应用对应的服务器的性能参差不齐,尤其是在高峰时段,下载速度不能保证,存在应用首次启动时间过长的问题。

本公开实施例提供一种资源文件加载方法,应用于客户端,如图1所示,该方法包括:

步骤s101:确定针对目标应用的待加载资源文件。

步骤s102:确定本地的资源共享目录中是否包含待加载资源文件,资源共享目录中包含不同应用共享的资源文件。

步骤s103:在资源共享目录中包含待加载资源文件的情况下,从资源共享目录中加载待加载资源文件。

实际应用中,手机等智能终端可以安装各种应用,比如各种游戏的应用。应用执行过程中,需要加载各种资源文件,比如贴图文件和模型文件,等等。这里,贴图文件对应的贴图可以覆于模型文件对应的模型上。模型文件可以包括针对模型的逻辑脚本文件和动画脚本文件。逻辑脚本文件是组件形式的脚本文件,加载之后可以执行一定的逻辑功能。动画脚本文件加载之后则可以产生动画效果。

对于各种游戏应用来说,不同应用需要加载的资源文件的种类有许多相同之处,举例来说,对于应用a,需要加载的资源文件至少包括树木、草地、房屋和车辆等资源文件,对于应用b,需要加载的资源文件至少包括树木、草地、房屋和武器等资源文件,对于应用c,需要加载的资源文件至少包括树木、草地、武器和马匹等资源文件,而这些应用中的相同之处在于,都用到了树木和草地这两种资源文件。基于此,本方案中,在客户端本地创建有不同应用共同使用的资源共享目录,该资源共享目录中包含不同应用共享的资源文件,即每个资源文件都可以加载到不同应用中。

仍举例来说,资源共享目录中包含树木、草地、房屋、车辆、武器和马匹等资源文件,这些资源文件都可以由不同的应用共享,对于应用a,可以从资源共享目录中加载需要的树木、草地、房屋和车辆等资源文件,对于应用b,则可以从资源共享目录中加载需要的树木、草地、房屋和武器等资源文件,对于应用c,则可以从资源共享目录中加载需要的树木、草地、武器和马匹等资源文件。

以上目标应用即当前运行的应用。

本方案中,由于确定目标应用待加载资源文件后,可以先确定资源共享目录中是否包含该待加载资源文件,在资源共享目录中包含待加载资源文件的情况下,可以直接从本地的资源共享目录中加载待加载资源文件,如此,通过从本地的资源共享目录加载资源文件的方式,解决了应用首次安装浪费大量时间来下载资源文件的问题,能够提高资源文件加载速度。与以上现有的方案相比,一方面,无需再将目标应用的资源文件打包到目标应用的安装包中,从而减少了安装包的体积,提高了用户下载安装包的速度,避免了因安装包体积过大,进而导致下载速度缓慢、游戏更新覆盖、安装速度慢等问题,另一方面,也无需在应用首次启动时从目标应用对应的服务器下载资源文件,从而避免了由于目标应用对应的服务器的性能差,尤其是在高峰时段,下载速度不能保证,导致的应用首次启动时间过长的问题,提高了资源文件加载速度。

另外,由于客户端本地的资源共享目录中的资源文件可以由不同应用共享,所以,在本地仅存储一套资源文件就可以满足不同应用的加载需求,无需重复存储资源文件,大大地节省了占用的空间。

在一种实施方式中,资源文件加载方法还可以包括:在资源共享目录中不包含待加载资源文件的情况下,从目标应用对应的服务器之外的共享服务器下载待加载资源文件,共享服务器存储有不同应用共享的资源文件。

需要说明的是,目标应用对应的服务器,是目标应用原有服务器,可以为该目标应用提供计算服务等。不同应用的原有服务器不同。而共享服务器是在目标应用原有服务器的基础上之外的服务器。共享服务器可以为不同应用提供统一的资源文件共享加载服务。共享服务器可以选择性能良好稳定的服务器。另外,共享服务器可以但不限于是云服务器,也即云平台。

实际应用中,可以预先确定不同应用需要加载的资源文件,确定出一套可以满足不同应用的资源文件,存储在共享服务器中,以供不同应用共享。并且,共享服务器中的资源文件可以根据实际需要进行更新。更新的资源文件可以是由不同应用的开发人员上传的,也可以是共享服务器的维护人员上传的。

如此,在本地的资源共享目录中没有待加载资源文件的情况下,还可以从共享服务器下载待加载资源文件,由于是通过统一的共享服务器下载资源文件,该共享服务器性能良好且稳定,不再受目标应用对应的服务器的性能的影响,并且由于各种应用的高峰时段有所不同可以相互错开,达到了削峰填谷的效果,从而提高了下载速度,也可以避免相关技术中从目标应用对应的服务器下载资源文件导致的应用首次启动时间过长的问题。

在一种实施方式中,资源文件加载方法还包括:基于下载的待加载资源文件,更新本地的资源共享目录。实际应用中,资源共享目录更新后,目标应用可以从资源共享目录中加载下载好的待加载的资源文件。

如此,通过动态地更新资源共享目录,除目标应用之外,其它应用加载需求时,也可以直接从资源共享目录中加载下载好的加载资源文件,提高了加载速度。

在一种实施方式中,从目标应用对应的服务器之外的共享服务器下载待加载资源文件,如图2所示,具体实现方式可以包括:

步骤s201:基于安装目标应用时得到的安装信息,得到待加载资源文件的标识信息。

实际应用中,可以预先给每个资源文件设置标识信息,例如,可以设置数字编号等标识信息。开发目标应用时,可以从共享服务器下载目标应用需要加载的资源文件,基于下载的需要加载的资源文件进行开发。开发完成后,打包目标应用的安装包时,将需要加载的资源文件的标识信息打包到安装包中。在下载目标应用的安装包后,基于该安装包安装目标应用时得到的安装信息中就包含资源文件的标识信息,因此,可以基于安装目标应用时得到的安装信息,得到待加载资源文件的标识信息。

步骤s202:生成下载请求并发送给共享服务器,下载请求中携带待加载资源文件的标识信息,以便共享服务器响应于下载请求,根据待加载资源文件的标识信息,获取待加载资源文件,并发送给客户端。

共享服务器接收到客户端的下载请求后,响应于该下载请求,可以解析出该下载请求中携带的待加载资源文件的标识信息,根据待加载资源文件的标识信息,获取该待加载资源文件的标识信息所标识的待加载资源文件,并发送给客户端。

步骤s203:接收共享服务器发送的待加载资源文件,以实现下载。

如此,由于可以基于安装目标应用时得到的安装信息,得到待加载资源文件的标识信息,可以基于该待加载资源文件的标识信息实现准确下载。另外,由于打包目标应用的安装包时,并非将需要加载的资源文件本身打包到安装包中,而是将需要加载的资源文件的标识信息打包到安装包中,资源文件的标识信息占用的体积非常小,大大减小了安装包的体积。

需要说明的是,如果目标应用是本地首次安装的能够与其它应用共享资源文件的应用,在基于安装包安装目标应用时,确定本地没有创建资源共享目录,则创建资源共享目录。此时,资源共享目录为空,确定待加载资源文件并下载后更新到该资源共享目录中即可。待再安装其它能够共享资源文件的应用时,确定本地已创建资源共享目录,则无需再创建资源共享目录。

在一种实施方式中,确定针对目标应用的待加载资源文件,具体实现方式可以包括:在目标应用启动的情况下,确定目标应用启动所需的待加载资源文件;或者,在目标应用启动后的进程中,确定目标应用当前进程所需的待加载资源文件。这里,目标应用启动的情况可以包括目标应用首次启动的情况,也可以包括首次启动之后每次启动的情况。如此,在启动时,将启动所需的资源文件加载好即可,可以快速启动。在目标应用运行过程中,当前进程需要加载资源文件时,再进行加载,无需全部加载完,提高了处理速度。

下面以具体的应用场景为例,对本公开实施例提供的一种资源文件加载方法进行更加详细地描述。

本应用场景中,针对的应用为多种游戏应用,这些应用可以安装在手机等智能终端中,由应用用户使用。

本实施例提供了资源文件共享服务云平台(即共享服务器),作为服务端,可以在服务端整合并存储所有常用的资源文件,例如,贴图文件、模型文件(包括逻辑脚本文件和动画脚本文件)等。

具体的,本实施例的资源文件共享云平台分为两个部分:

第一部分:资源文件共享云平台软件开发工具包(softwaredevelopmentkit,sdk)。

sdk是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、作业系统等建立应用软件的开发工具的集合。应用厂商的应用开发者可以基于sdk开发应用。应用开发的过程中,应用开发者可以在资源文件共享云平台挑选自己需要的贴图文件和模型文件,集成到自己的应用中。

第二部分:资源文件共享云平台云存储服务。

当应用用户下载安装包之后,应用会在启动后从资源文件共享云平台下载应用开发者挑选集成的资源文件;假如,多个应用使用了相同的资源文件,这些应用将共享资源文件,不会重复占用资源。

下面以开发者视角和应用用户视角对旧的资源文件加载模式和新的资源文件加载模式(即公开提供的资源文件加载方法)进行对比说明。

如图3所示,在开发者视角,旧的资源文件加载模式:

应用开发者基于应用开发工具和资源文件进行应用开发,开发完成后,将资源文件打包到应用安装包,应用用户下载应用安装包时,大量资源文件导致安装包过大应用用户需要大量等待下载时间,安装完应用后,即可得到资源文件。

如图3所示,在开发者视角,新的资源文件加载模式:

应用开发者从资源文件共享平台下载应用需要加载的资源文件,基于应用sdk和下载的资源文件进行应用开发,开发完成后,打包应用安装包,安装包不需包含资源文件,可以包含资源文件的标识信息,减小了安装包体积。应用用户下载应用安装包,应用安装后,自动从网络获取资源,即从统一的资源文件共享云平台下载需要加载的资源文件,下载速度提高。

如图4所示,在应用用户视角,旧的资源文件加载模式:

对于应用a,单独存储供应用a加载的树木、草地、房屋和车辆等资源文件。

对于应用b,单独存储供应用b加载的树木、草地、房屋和武器等资源文件。

对于应用c,单独存储供应用c加载的树木、草地、武器和马匹等资源文件。

由此可以看出,旧的资源文件加载模式中,树木、草地、房屋和武器这些资源文件都会重复存储。

如图4所示,在应用用户视角,新的资源文件加载模式:

从资源文件共享云平台下载的一套树木、草地、房屋、武器、车辆和马匹等资源文件存储在资源共享目录中。

应用a可以从该资源共享目录中加载树木、草地、房屋和车辆等资源文件。

应用b可以从该资源共享目录中加载树木、草地、房屋和武器等资源文件。

应用c可以从该资源共享目录中加载树木、草地、武器和马匹等资源文件。

由此可以看出,新的资源文件加载模式中,本地只需存储一套资源文件,就可以供多个应用使用,节省了占用空间。

如此,为应用开发者提供一套共享资源文件的平台,为不同应用提供统一的资源加载服务,应用厂商无需将常用的应用的模型文件、贴图文件打包在安装包中,减少了安装包的体积,当应用用户下载安装应用的安装包之后,应用会在资源文件加载时从资源文件共享云平台下载资源文件,提高用户下载速度。假如,用户手机等智能终端中的多个应用共用相同的资源文件,无需重复下载,以达到节约用户手机登智能终端中的存储空间的目的。

本公开实施例还提供一种资源文件加载装置,应用于客户端,如图5所示,包括:

第一确定模块501,用于确定针对目标应用的待加载资源文件;

第二确定模块502,用于确定本地的资源共享目录中是否包含待加载资源文件,资源共享目录中包含不同应用共享的资源文件;

资源加载模块503,用于在资源共享目录中包含待加载资源文件的情况下,从资源共享目录中加载待加载资源文件。

在一种实施方式中,如图6所示,还包括资源下载模块504,用于:

在资源共享目录中不包含待加载资源文件的情况下,从目标应用对应的服务器之外的共享服务器下载待加载资源文件,共享服务器存储有不同应用共享的资源文件。

在一种实施方式中,如图7所示,还包括目录更新模块505,用于:

基于下载的待加载资源文件,更新本地的资源共享目录。

在一种实施方式中,其中,资源下载模块504具体用于:

基于安装目标应用时得到的安装信息,得到待加载资源文件的标识信息;

生成下载请求并发送给共享服务器,下载请求中携带待加载资源文件的标识信息,以便共享服务器响应于下载请求,根据待加载资源文件的标识信息,获取待加载资源文件,并发送给客户端;

接收共享服务器发送的待加载资源文件,以实现下载。

在一种实施方式中,其中,第一确定模块501具体用于:

在目标应用启动的情况下,确定目标应用启动所需的待加载资源文件;

或者,在目标应用启动后的进程中,确定目标应用当前进程所需的待加载资源文件。

本公开实施例各装置中的各模块的功能可以参见上述资源文件加载方法中的对应描述,在此不再赘述。

根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。

图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或要求的本公开的实现。

如图8所示,设备800包括计算单元801,其可以根据存储在只读存储器(rom)802中的计算机程序或者从存储单元808加载到随机访问存储器(ram)803中的计算机程序来执行各种适当的动作和处理。在ram803中,还可存储设备800操作所需的各种程序和数据。计算单元801、rom802以及ram803通过总线804彼此相连。输入输出(i/o)接口805也连接至总线804。

设备800中的多个部件连接至i/o接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如资源文件加载方法。例如,在一些实施例中,资源文件加载方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由rom802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到ram803并由计算单元801执行时,可以执行上文描述的资源文件加载方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行资源文件加载方法。

本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

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