CN114064146A - 资源加载方法及装置 - Google Patents
资源加载方法及装置 Download PDFInfo
- Publication number
- CN114064146A CN114064146A CN202111357581.0A CN202111357581A CN114064146A CN 114064146 A CN114064146 A CN 114064146A CN 202111357581 A CN202111357581 A CN 202111357581A CN 114064146 A CN114064146 A CN 114064146A
- Authority
- CN
- China
- Prior art keywords
- resource
- loading
- target
- request
- downloading
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000011068 loading method Methods 0.000 title claims abstract description 423
- 238000000034 method Methods 0.000 claims description 33
- 238000012545 processing Methods 0.000 claims description 8
- 230000000875 corresponding effect Effects 0.000 description 75
- 238000007726 management method Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000001960 triggered effect Effects 0.000 description 8
- 230000004044 response Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 208000003028 Stuttering Diseases 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
Abstract
本申请提供资源加载方法及装置,其中所述资源加载方法包括:接收第一资源加载请求,所述第一资源加载请求中携带有资源标识;在未查找到所述资源标识对应的目标资源的情况下,识别所述第一资源加载请求的请求类型;若所述请求类型为主动加载,以目标网速的第一预设值下载所述目标资源并加载;若所述请求类型为静默加载,在存在请求类型为主动加载的第二资源加载请求的情况下,以所述目标网速的第二预设值下载所述目标资源并加载。在实现按需下载的同时,可以针对不同资源类型的目标资源使用不同的下载速度,以降低资源下载时长、提高资源下载效率,并提升资源加载速度,从而可以保证应用程序运行期间的流畅度,进而提高用户体验性。
Description
技术领域
本申请涉及互联网技术领域,特别涉及一种资源加载方法。本申请同时涉及一种资源加载装置、一种计算设备,以及一种计算机可读存储介质。
背景技术
随着互联网技术的发展,各种各样的游戏层出不穷,通过互联网技术玩游戏进行放松的人也越来越多。为了追求更好的视觉效果和极致的客户体验,游戏资源越来越大,这就造成了游戏客户端的部署过程较长、需要消耗用户比较多的网络流量,成了阻碍更多的潜在玩家享受游戏快乐的最大门槛。此外,当游戏需要更新时,也会使现有的玩家等待较长时间才能完成更新,从而造成玩家的大量流失。因此,亟需一种有效的方案以解决上述问题。
发明内容
有鉴于此,本申请实施例提供了一种资源加载方法,以解决现有技术中存在的技术缺陷。本申请实施例同时提供了一种资源加载装置,一种计算设备,以及一种计算机可读存储介质。
根据本申请实施例的第一方面,提供了一种资源加载方法,包括:
接收第一资源加载请求,其中,所述第一资源加载请求中携带有资源标识;
在未查找到所述资源标识对应的目标资源的情况下,识别所述第一资源加载请求的请求类型;
若所述请求类型为主动加载,以目标网速的第一预设值下载所述目标资源并加载;
若所述请求类型为静默加载,在存在请求类型为主动加载的第二资源加载请求的情况下,以所述目标网速的第二预设值下载所述目标资源并加载,其中,所述第一预设值大于所述第二预设值。
可选地,还包括:
若所述请求类型为静默加载,在不存在请求类型为主动加载的第二资源加载请求的情况下,以目标网速的第三预设值下载所述目标资源并加载,其中所述第三预设值大于所述第一预设值。
可选地,所述在未查找到所述资源标识对应的目标资源的情况下,识别所述第一资源加载请求的请求类型,包括:
根据所述资源标识,在资源缓存区中查找与所述资源标识对应的目标资源;
若在所述资源缓存区中查找失败,则根据所述资源标识,在本地资源库中查找与所述资源标识对应的目标资源;
若在所述本地资源库中查找失败,则识别所述第一资源加载请求的请求类型。
可选地,所述根据所述资源标识,在本地资源库中查找与所述资源标识对应的目标资源,包括:
识别所述目标资源的资源类型;
若所述资源类型为非内置资源,则根据所述资源标识,在所述本地资源库中查找与所述资源标识对应的目标资源。
可选地,在所述识别所述目标资源的资源类型之后,还包括:
若所述资源类型为内置资源,则识别所述第一资源加载请求的请求类型。
可选地,在所述接收第一资源加载请求之前,还包括:
加载资源配置表,其中,所述资源配置表包括资源标识、资源类型和资源路径;
根据所述资源标识、所述资源类型和所述资源路径,将已下载的资源存入本地资源库。
可选地,所述资源配置表还包括优先级;
所述若所述请求类型为主动加载,以目标网速的第一预设值下载所述目标资源,包括:
若所述请求类型为主动加载,确定是否存在第三资源加载请求;
若是,在所述第三资源加载请求的请求类型为主动加载的情况下,比较所述目标资源与所述第三资源加载请求所请求资源的优先级;
在所述目标资源的优先级高于所述第三资源加载请求所请求资源的优先级的情况下,以目标网速的第一预设值下载所述目标资源。
可选地,还包括:
在所述目标资源下载成功的情况下,将所述目标资源存入本地资源库,并将所述目标资源添加至资源缓存区。
可选地,还包括以下至少一种:
在所述资源缓存区的闲置资源在预设时长内未加载的情况下,清除所述资源缓存区中的闲置资源;
在所述闲置资源为过期资源的情况下,清除所述资源缓存区中的闲置资源;
按照预设间隔,定期清除所述资源缓存区中的闲置资源。
根据本申请实施例的第二方面,提供了一种资源加载装置,包括:
接收模块,被配置为接收第一资源加载请求,其中,所述第一资源加载请求中携带有资源标识;
识别模块,被配置为在未查找到所述资源标识对应的目标资源的情况下,识别所述第一资源加载请求的请求类型;
第一下载模块,被配置为若所述请求类型为主动加载,以目标网速的第一预设值下载所述目标资源并加载;
第二下载模块,被配置为若所述请求类型为静默加载,在存在请求类型为主动加载的第二资源加载请求的情况下,以所述目标网速的第二预设值下载所述目标资源并加载,其中,所述第一预设值大于所述第二预设值。
可选地,所述装置还包括第三下载模块,被配置为:
若所述请求类型为静默加载,在不存在请求类型为主动加载的第二资源加载请求的情况下,以目标网速的第三预设值下载所述目标资源并加载,其中所述第三预设值大于所述第一预设值。
可选地,所述识别模块,还被配置为:
根据所述资源标识,在资源缓存区中查找与所述资源标识对应的目标资源;
若在所述资源缓存区中查找失败,则根据所述资源标识,在本地资源库中查找与所述资源标识对应的目标资源;
若在所述本地资源库中查找失败,则识别所述第一资源加载请求的请求类型。
可选地,所述识别模块,还被配置为:
识别所述目标资源的资源类型;
若所述资源类型为非内置资源,则根据所述资源标识,在所述本地资源库中查找与所述资源标识对应的目标资源。
可选地,所述识别模块,还被配置为:
若所述资源类型为内置资源,则识别所述第一资源加载请求的请求类型。
可选地,所述装置还包括第一存入模块,被配置为:
加载资源配置表,其中,所述资源配置表包括资源标识、资源类型和资源路径;
根据所述资源标识、所述资源类型和所述资源路径,将已下载的资源存入本地资源库。
可选地,所述资源配置表还包括优先级;
所述第一下载模块,还被配置为:
若所述请求类型为主动加载,确定是否存在第三资源加载请求;
若是,在所述第三资源加载请求的请求类型为主动加载的情况下,比较所述目标资源与所述第三资源加载请求所请求资源的优先级;
在所述目标资源的优先级高于所述第三资源加载请求所请求资源的优先级的情况下,以目标网速的第一预设值下载所述目标资源。
可选地,所述装置还包括第二存入模块,被配置为:
在所述目标资源下载成功的情况下,将所述目标资源存入本地资源库,并将所述目标资源添加至资源缓存区。
可选地,所述装置还包括清除模块,被配置为以下至少一种:
在所述资源缓存区的闲置资源在预设时长内未加载的情况下,清除所述资源缓存区中的闲置资源;
在所述闲置资源为过期资源的情况下,清除所述资源缓存区中的闲置资源;
按照预设间隔,定期清除所述资源缓存区中的闲置资源。
根据本申请实施例的第三方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器执行所述计算机可执行指令时实现所述资源加载方法的步骤。
根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现所述资源加载方法的步骤。
根据本申请实施例的第五方面,提供了一种芯片,其存储有计算机指令,该计算机指令被芯片执行时实现所述资源加载方法的步骤。
本申请提供的资源加载方法,通过接收第一资源加载请求,其中,所述第一资源加载请求中携带有资源标识;然后在未查找到所述资源标识对应的目标资源的情况下,识别所述第一资源加载请求的请求类型;进一步地,若所述请求类型为主动加载,以目标网速的第一预设值下载所述目标资源并加载;若所述请求类型为静默加载,在存在请求类型为主动加载的第二资源加载请求的情况下,以所述目标网速的第二预设值下载所述目标资源并加载,其中,所述第一预设值大于所述第二预设值。如此,在实现按需下载的同时,可以针对不同资源类型的目标资源使用不同的下载速度,以降低资源下载时长、提高资源下载效率,并提升资源加载速度,从而可以保证应用程序运行期间的流畅度,进而提高用户体验性。
附图说明
图1是本申请一实施例提供的一种资源加载方法的流程图;
图2是本申请一实施例提供的一种非内置资源加载的流程图;
图3是本申请一实施例提供的一种内置资源加载的流程图;
图4是本申请一实施例提供的一种负载均衡加载资源的流程图;
图5是本申请一实施例提供的一种资源动态下载的流程图;
图6是本申请一实施例提供的一种清除闲置资源的流程图;
图7是本申请一实施例提供的一种应用程序的结构图;
图8是本申请一实施例提供的一种更新单元启动的流程图;
图9是本申请一实施例提供的一种应用于游戏应用程序的资源加载方法的处理流程图;
图10是本申请一实施例提供的一种资源加载装置的结构示意图;
图11是本申请一实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。
现有技术中,针对游戏的资源加载方法有两种:
方法一:在游戏启动阶段检查并下载所有更新资源,之后再启动游戏主程序。然而该方法,玩家在下载完游戏后还需要二次等待游戏资源更新。在客户端,即移动端,由于网络状况的多变性和首次资源更新量很大的问题,该方法会导致玩家等待时间过长,不适合平台娱乐的即时性,也会导致部分玩家在等待期间流失。
方法二:把资源按关卡流程切分成对应的多份资源,在下载必备的通用游戏资源和关卡资源后,启动游戏主程序娱乐,并在后续中由后台下载其他关卡资源。虽然该方案解决了方法一中的不能即时娱乐的问题,但还存在如下问题:不适用于拥有开放关卡流程的游戏,且在开放关卡流程的游戏中,所有资源的关系是平等的,不存在先后的体验顺序,因此不能简单的按关卡资源顺序,切分资源的下载顺序;对于通用游戏资源,比如角色皮肤、武器挂件等,其资源总和也会比较大,这也导致玩家需要等待较长的时间;游戏期间使用后台下载资源模式,会占用性能开销,导致断线、卡顿之类的性能问题,也需要处理。
为了提高资源加载效率,本申请提供了一种资源加载方法,通过接收第一资源加载请求,其中,所述第一资源加载请求中携带有资源标识;然后在未查找到所述资源标识对应的目标资源的情况下,识别所述第一资源加载请求的请求类型;若所述请求类型为主动加载,以目标网速的第一预设值下载所述目标资源并加载;若所述请求类型为静默加载,在存在请求类型为主动加载的第二资源加载请求的情况下,以所述目标网速的第二预设值下载所述目标资源并加载,其中,所述第一预设值大于所述第二预设值。从而在保证适用范围广泛的同时,提高资源加载的效率。
在本申请中,提供了一种资源加载方法。本申请同时涉及一种资源加载装置、一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1示出了根据本申请一实施例提供的一种资源加载方法的流程图,具体包括以下步骤:
步骤102:接收第一资源加载请求,其中,所述第一资源加载请求中携带有资源标识。
具体的,资源加载请求是指应用程序在运行中,由用户触发或者应用程序基于运行需求自动触发,需要加载并运行某资源而发出的请求;第一资源加载请求是指此时此刻客户端接收到的资源加载请求,也即当前接收到的资源加载请求;资源标识是指表征待加载的目标资源的标识,如目标资源的名称等。
实际应用中,从启动应用程序开始,应用程序就会加载各种资源,如加载启动资源、应用程序升级资源等等。当应用程序的地图单元、界面单元和表现单元等外部接口定义的单元中,任意一个单元需要加载某个资源时,需要该单元先确定待加载资源的资源标识,也即目标资源的资源标识,然后基于该资源标识自动生成第一资源加载请求。此时应用程序的资源管理单元将接收到携带有资源标识的第一加载资源请求。
例如,某游戏应用程序中的地图需要更新,则地图单元将确定待加载的地图资源的资源标识——“A地图”,然后基于“A地图”生成第一资源加载请求,并发送至该游戏应用程序的资源管理单元,此时资源管理单元将接收到携带有“A地图”的第一加载资源请求。
需要说明的是,在接收第一资源加载请求之前,需要先安装该应用程序,如导入资源配置表、创建本地资源库等,也即在所述接收第一资源加载请求之前,还包括:
加载资源配置表,其中,所述资源配置表包括资源标识、资源类型和资源路径;
根据所述资源标识、所述资源类型和所述资源路径,将已下载的资源存入本地资源库。
具体的,资源配置表用于应用程序打包每个资源时,标记每个资源的参数,包括资源标识、资源类型、资源路径,还可以包括资源大小等属性,以便确定资源的下载策略。资源标识可以是资源名称,还可以是资源的ID(Identity Document),也即序列号或帐号,本申请对此不做限定。资源类型是指该资源的类型,即该资源是内置资源还是远程资源(非内置资源),内置资源是指在安装应用程序时程序包中已存在的资源,对于该类资源,更新单元只需检查其是否需要更新,若需要,则下载更新后的资源即可;非内置资源是指不存在于程序包中的资源,当应用程序需要用到该资源时,首次使用时才会下载该资源,之后只会在更新时才触发下载该资源,可以极大地减少程序包的大小。资源路径是指资源存储的位置信息,也即存储在本地资源库中的位置信息。本地资源库是指客户端存储各种资源的集合,在本地资源库中存储着已经下载完成的资源和内置资源,资源以列表的形式存储在本地资源库,当有资源加载请求时,将先从本地资源库中获取资源加载请求对应的资源,如果本地资源库中不存在资源加载请求对应的资源,再发起下载,进而下载资源加载请求对应的资源。
实际应用中,在运行应用程序前,先安装应用程序:创建本地资源库,然后加载资源配置表,其中资源配置表中包括已下载的各个资源的资源标识、资源类型和资源路径,进而将下载的各个资源按照资源标识、资源类型和资源路径存入本地资源库。以便于在加载某个资源时,根据资源配置表中该资源标识和资源类型对应的资源路径,在本地资源库中快速加载该资源,有利于提高资源加载效率,从而提高客户端应用程序的流畅度。
步骤104:在未查找到所述资源标识对应的目标资源的情况下,识别所述第一资源加载请求的请求类型。
在接收到携带有资源标识的第一资源加载请求的情况下,进一步地,在本地查找该资源标识对应的目标资源,若未查找到,则识别第一资源加载请求的请求类型。
具体的,目标资源是指第一资源加载请求对应的待加载的资源,也即资源标识所指向的资源;请求类型是指资源加载请求所属的类别,例如该资源加载请求是由用户触发的请求、还是应用程序基于运行需求自动触发的请求。
实际应用中,应用程序的资源管理单元接收到携带有资源标识的第一加载资源请求后,将根据资源标识查找目标资源,在查找到资源标识对应的目标资源时,可以直接加载该目标资源;在未查找到资源标识对应的目标资源时,应用程序的资源管理单元会将该第一资源加载请求发送给应用程序的更新单元,然后由更新单元来识别第一资源加载请求的请求类型,并根据第一资源加载请求的请求类型,选择对应的下载模式下载第一资源加载请求对应的目标资源;或者在未查找到资源标识对应的目标资源时,应用程序的资源管理单元直接识别第一资源加载请求的请求类型,并将第一资源加载请求和第一资源加载请求的请求类型一起发送至应用程序的更新单元,然后由更新单元根据第一资源加载请求的请求类型,选择对应的下载模式下载第一资源加载请求对应的目标资源,也即资源标识对应的目标资源。
为了提高目标资源的加载速度,可以先在资源缓存区查找目标资源,若资源缓存区没有目标资源,再去本地资源库中查找目标资源,也即所述在未查找到所述资源标识对应的目标资源的情况下,识别所述第一资源加载请求的请求类型,具体实现过程可以如下:
根据所述资源标识,在资源缓存区中查找与所述资源标识对应的目标资源;
若在所述资源缓存区中查找失败,则根据所述资源标识,在本地资源库中查找与所述资源标识对应的目标资源;
若在所述本地资源库中查找失败,则识别所述第一资源加载请求的请求类型。
具体的,资源缓存区也即存储部分资源的缓存,资源缓存区可以是访问速度较快高速存储器,其中资源缓冲区在存储资源时会关联存储该资源的资源标识,以便于在资源缓存区中查找;本地资源库是指客户端存储各种资源的集合,同样的,本地资源库在存储资源时也会关联存储该资源的资源标识,以便于查找目标资源。
实际应用中,应用程序的资源管理单元接收到携带有资源标识的第一加载资源请求后,先根据资源标识在资源缓存区中查找目标资源,以便于在资源缓存区存在目标资源地情况下,可以快速加载目标资源。若在资源缓存区中查找到资源标识对应的目标资源,则快速加载目标资源;若在资源缓存区中未查找到资源标识对应的目标资源,则进一步在本地资源库中查找资源标识对应的目标资源。若在本地资源库查找到资源标识对应的目标资源,则加载目标资源;若在本地资源库中未查找到资源标识对应的目标资源,则进一步识别第一资源加载请求的请求类型。如此,由于资源缓存区读取速度快的属性,先根据资源标识在资源缓存区查找目标资源,可以极大地提高对资源缓存区的目标资源进行加载的速度,而针对资源缓存区不存在的目标资源,对加载目标资源的速度影响很小。也即从整体上提高了目标资源的加载效率,可以保证应用程序运行期间的流畅度,进而提高用户体验性。
例如,资源缓存区中有:资源zy1和资源zy2;本地资源库有:资源zy1、资源zy2、资源zy3和资源zy4。第一资源请求中的资源标识为zy7。则先根据“zy7”在资源缓存区中进行查找,未找到“zy7”对应的资源zy7;然后根据“zy7”在本地资源库中进行查找,也未找到“zy7”对应的资源zy7;进而识别第一资源加载请求是由用户触发的请求、还是应用程序基于运行需求自动触发的请求。
需要说明的是,应用程序可以通过资源管理单元识别第一资源加载请求的请求类型,还可以通过更新单元识别第一资源加载请求的请求类型。
由于待加载的目标资源有不同的资源类型,对于不同资源类型的目标资源,查找方式也不同,也即所述根据所述资源标识,在本地资源库中查找与所述资源标识对应的目标资源,包括:
识别所述目标资源的资源类型;
若所述资源类型为非内置资源,则根据所述资源标识,在所述本地资源库中查找与所述资源标识对应的目标资源。
具体的,资源类型是指该资源的类型,即该资源是内置资源还是远程资源(非内置资源);其中非内置资源是指不存在于程序包中的资源,以大大减少程序包的大小,当应用程序需要用到该资源时,首次使用时才会下载该资源,之后只会在更新时才触发下载该资源,如游戏应用程序中的皮肤资源、地图资源等,其资源类型为非内置资源。
实际应用中,在资源缓存区中未查找到资源标识对应的目标资源的情况下,可以先识别资源标识对应的目标资源的资源类型,也即确定目标资源是程序包内的资源,还是不存在于程序包中的资源。如果目标资源是不存在于程序包中的资源,即目标资源的资源类型为非内置资源,说明在运行应用程序时,该目标资源未存入资源缓存区,进而再去本地资源库中查找与资源标识对应的目标资源。如此,对于资源类型为非内置资源的目标资源,充分进行查找,避免了因资源缓存区不存在目标资源,进而导致下载目标资源所带来时间消耗,降低资源加载效率,造成应用程序长时间无法正常运行,也即保证了目标资源加载的高效性,提高了应用程序运行期间的流畅度。
可选地,还可以先识别目标资源的资源类型,再根据资源标识查找到目标资源:当识别到目标资源的资源类型为非内置资源时,先根据资源标识在资源缓存区查找目标资源,若查找到,则加载目标资源,根据资源标识在本地资源库中查找目标资源:若未查找到,则下载并加载目标资源,若查找到,则加载目标资源。参见图2,图2示出了本申请一实施例提供的一种非内置资源加载的流程图:当资源类型为非内置资源的目标资源加载时,如皮肤资源、地图资源等资源,判断目标资源是否存在于资源缓存区,若是,加载目标资源,若否,判断本地资源库是否存在目标资源,若存在,加载目标资源,并存入资源缓存区和存入本地资源库;若不存在,下载目标资源,等待下载完成,下载完成后加载目标资源,存入资源缓存区,并存入本地资源库。
此外,目标资源的资源类型还可以是内置资源。此时区别于非内置资源,在资源缓存区中未查找到资源标识对应的目标资源的情况下,若目标资源的资源类型为内置资源,则无需在本地资源库中查找目标资源。也即还包括:
若所述资源类型为内置资源,则识别所述第一资源加载请求的请求类型。
具体的,内置资源是指在安装应用程序时程序包中已存在的资源,对于该类资源,更新单元只需检查其是否需要更新,若需要更新,则下载更新后的资源即可,如游戏应用程序中的声音资源、界面显示资源等,其资源类型为内置资源。需要说明的是,内置资源可以采用同步加载的方式,以提高响应速度。内置资源加载完毕后会存入资源缓冲区,以便后续重复利用,比如某显示页面,可能会被多次打开。
实际应用中,对于资源类型为内置资源的目标资源,也即存在于程序包中的资源,在应用程序开始启动之初,内置资源就全部存入了资源缓存区。因此,在资源缓存区中未查找到资源标识对应的目标资源,且目标资源的资源类型为内置资源,则说明本地资源库中也没有存储该目标资源。此时,直接识别第一资源加载请求的请求类型,进而根据第一资源加载请求的请求类型,选择对应的下载模式下载目标资源。如此,在目标资源的资源类型为内置资源的情况下,可以免去在本地资源库中查找目标资源的过程,进而减少了数据处理量,同时可以减少从接收第一资源加载请求到下载目标资源之间的时长,提高加载速度。
可选地,还可以先识别目标资源的资源类型,再根据资源标识查找到目标资源:当识别到目标资源的资源类型为内置资源时,先根据资源标识在资源缓存区查找目标资源,若查找到,则加载目标资源,若未查找到,则下载并加载目标资源。参见图3,图3示出了本申请一实施例提供的一种内置资源加载的流程图:当资源类型为内置资源的目标资源加载时,也即声音资源、界面显示资源等资源,判断目标资源是否存在于资源缓存区,若是,加载目标资源,若否下载目标资源,并等待下载完成,然后加载目标资源。加载目标资源之后,将目标资源存入资源缓存区,并存入本地资源库。
步骤106:若所述请求类型为主动加载,以目标网速的第一预设值下载所述目标资源并加载。
在未查找到资源标识对应的目标资源,且识别第一资源加载请求的请求类型的情况下,进一步地,若所述请求类型为主动加载,以目标网速的第一预设值下载目标资源并加载。
具体的,主动加载是指由用户触发加载并运行某资源而发出的请求对应的类型。目标网速是指根据网络环境得到的网络速度,例如将网络环境的网络信号强度、网络延迟和下载速度按照预设权重值,计算得到网络速度;此外,可以每间隔一段时间,更新一下目标网速,也即每间隔一段时间重新根据网络信号强度、网络延迟和下载速度按照预设权重值,计算得到网络速度。第一预设值为预先设置的数据,可以是从0到1中的任意一个数值。优选地,第一预设值可以取大于等于0.8且小于等于1的值,以达到即时响应的效果。
实际应用中,在确定第一资源加载请求的请求类型为主动加载后,更新单元会以目标网速的第一预设值用来下载目标资源,并在目标资源下载完成后,返回应用程序的资源管理单元,并由资源管理单元将目标资源返回给应用程序的地图单元、界面单元和表现单元中发出第一资源加载请求的单元,以便于快速加载目标资源。
例如,目标网速为100Kbit/s(千比特每秒),第一预设值为0.8,则在第一资源加载请求的请求类型为主动加载的情况下,以80Kbit/s的网速下载目标资源并加载。
此外,在下载目标资源时,可能正在下载请求类型为主动加载的第三资源加载请求所请求的资源。此时,可以比较正在下载的资源与目标资源的优先级,若目标资源的优先级高于第三资源加载请求所请求资源的优先级,则下载目标资源。也即所述资源配置表还包括优先级,所述若所述请求类型为主动加载,以目标网速的第一预设值下载所述目标资源,具体实现过程可以如下:
若所述请求类型为主动加载,确定是否存在第三资源加载请求;
若是,在所述第三资源加载请求的请求类型为主动加载的情况下,比较所述目标资源与所述第三资源加载请求所请求资源的优先级;
在所述目标资源的优先级高于所述第三资源加载请求所请求资源的优先级的情况下,以目标网速的第一预设值下载所述目标资源。
具体的,第三资源加载请求是指正在下载的资源对应的资源加载请求;优先级是指资源下载时的优先级,也即下载优先级,优先级可以用数字表示,如优先级为1-100,数值低优先级越高或者数值低优先级越低;还可以用字母,如优先级为A-Z,字母在字母表中的位置越靠前优先级越高。资源配置表将资源标识与资源标识对应的资源的优先级关联存储。
实际应用中,在确定第一资源加载请求的请求类型为主动加载的情况下,需要查看是否有正在下载的资源,也即查看是否存在第三资源加载请求。若不存在第三资源加载请求,则以目标网速的第一预设值下载目标资源即可;若存在第三资源加载请求,需要先识别第三资源加载请求的请求类型。如果第三资源加载请求的请求类型为静默下载,则以目标网速的第一预设值下载目标资源即可;如果第三资源加载请求的请求类型为主动下载,则需要根据目标资源的资源标识在资源配置表中确定目标资源的优先级,并根据第三资源加载请求所请求资源的资源标识在资源配置表中确定第三资源加载请求所请求资源的优先级,然后进行比较。若目标资源的优先级等于或低于第三资源加载请求所请求资源的优先级,则继续下载第三资源加载请求所请求的资源,之后再以目标网速的第一预设值下载目标资源;若目标资源的优先级高于第三资源加载请求所请求资源的优先级,则暂停下载第三资源加载请求所请求的资源,先以目标网速的第一预设值下载目标资源,然后再继续下载第三资源加载请求所请求的资源。需要说明的是,此时在第三资源加载请求的请求类型为主动加载的情况下,第三资源加载请求所请求资源也是以目标网速的第一预设值下载的。如此,由于资源的优先级表征了资源的重要程度,因此对于同为主动加载对应的资源来说,先下载优先级较高的资源,有利于保证应用程序性能的稳定性,提高用户粘度。
例如,目标资源为资源N,此时正在下载资源M,资源M对应于资源加载请求m。然后识别资源加载请求m的请求类型为主动下载,此时根据资源配置表分别确定资源N和资源M的优先级,其中资源N的优先级为2,资源M的优先级为5。假设数值越低优先级越高,说明资源N的优先级高于资源M,则以目标网速的第一预设值下载资源N。
步骤108:若所述请求类型为静默加载,在存在请求类型为主动加载的第二资源加载请求的情况下,以所述目标网速的第二预设值下载所述目标资源并加载,其中,所述第一预设值大于所述第二预设值。
在未查找到资源标识对应的目标资源,且识别第一资源加载请求的请求类型的情况下,进一步地,若所述请求类型为静默加载,在存在请求类型为主动加载的第二资源加载请求的情况下,以目标网速的第二预设值下载目标资源并加载;第二资源加载请求是指正在下载的资源对应的资源加载请求,且该资源加载请求的请求类型为主动加载。
具体的,静默加载是指由应用程序基于运行需求自动触发加载并运行某资源而发出的请求对应的类型。目标网速是指根据网络环境得到的网络速度,例如将网络环境的网络信号强度、网络延迟和下载速度按照预设权重值,计算得到网络速度;第二预设值为预先设置的数据,可以是从0到1中的任意一个数值,且第二预设值小于第一预设值。可选地,第一预设值与第二预设值的和为1,优选第一预设值为0.8,第二预设值为0.2。
实际应用中,在确定第一资源加载请求的请求类型为静默加载后,还需要确定是否有正在下载的资源,也即查看是否存在第二资源加载请求。若存在第二资源加载请求,更新单元会以目标网速的第二预设值用来下载目标资源,并在目标资源下载完成后,返回应用程序的资源管理单元,并由资源管理单元将目标资源返回给应用程序的地图单元、界面单元和表现单元中发出第一资源加载请求的单元,以便于快速加载目标资源。
例如,目标网速为20Kbit/s(千比特每秒),第一预设值为0.3,则在第一资源加载请求的请求类型为静默加载、且存在请求类型为主动加载的第二资源加载请求的情况下,以6Kbit/s的网速下载目标资源并加载。
此外,在下载目标资源时,可能正在下载请求类型为静默加载的第四资源加载请求所请求的资源。此时,可以比较正在下载的资源与目标资源的优先级,若目标资源的优先级高于第四资源加载请求所请求资源的优先级,则下载目标资源。也即所述资源配置表还包括优先级,所述在存在请求类型为主动加载的第二资源加载请求的情况下,以所述目标网速的第二预设值下载所述目标资源并加载,具体实现过程可以如下:
在存在请求类型为主动加载的第二资源加载请求的情况下,确定是否存在第四资源加载请求;
若是,比较所述目标资源与所述第四资源加载请求所请求资源的优先级;
在所述目标资源的优先级高于所述第四资源加载请求所请求资源的优先级的情况下,以目标网速的第二预设值下载所述目标资源。
具体的,第四资源加载请求是指正在下载的资源对应的资源加载请求,且该资源加载请求的请求类型为静默加载;优先级是指资源下载时的优先级,也即下载优先级,优先级可以用数字表示,如优先级为1-100,数值低优先级越高或者数值低优先级越低;还可以用字母,如优先级为A-Z,字母在字母表中越靠前优先级越高。资源配置表将资源标识与资源标识对应的资源的优先级关联存储。
实际应用中,在确定第一资源加载请求的请求类型为静默加载、且存在请求类型为主动加载的第二资源加载请求的情况下,也即查看是否存在正在下载的资源,且该资源对应的资源加载请求的请求类型为静默加载,也即查看是否存在第四资源加载请求。若不存在第四资源加载请求,则以目标网速的第二预设值下载目标资源即可;若存在第四资源加载请求,则需要根据目标资源的资源标识在资源配置表中确定目标资源的优先级,并根据第四资源加载请求所请求资源的资源标识在资源配置表中确定第四资源加载请求所请求资源的优先级,然后进行比较。如果目标资源的优先级等于或低于第四资源加载请求所请求资源的优先级,则继续下载第四资源加载请求所请求的资源,之后再以目标网速的第二预设值下载目标资源;如果目标资源的优先级高于第四资源加载请求所请求资源的优先级,则暂停下载第四资源加载请求所请求的资源,先以目标网速的第二预设值下载目标资源,然后再继续下载第四资源加载请求所请求的资源。需要说明的是,此时第四资源加载请求所请求资源也是以目标网速的第二预设值下载的。如此,由于资源的优先级表征了资源的重要程度,因此对于同为静默加载对应的资源来说,先下载优先级较高的资源,有利于保证应用程序性能的稳定性,提高用户粘度。
在本说明书一个或多个可选的实施例中,当第一资源加载请求的请求类型为静默加载时,也有可能不存在请求类型为主动加载的第二资源加载请求,此时,可以以目标网速的第三预设值下载目标资源,也即:
若所述请求类型为静默加载,在不存在请求类型为主动加载的第二资源加载请求的情况下,以目标网速的第三预设值下载所述目标资源并加载,其中所述第三预设值大于所述第一预设值。
具体的,第三预设值为预先设置的数据,可以是从0到1中的任意一个数值,且第三预设值大于第一预设值。优选地,第三预设值为1。
实际应用中,在确定第一资源加载请求的请求类型为静默加载后,还需要确定是否有正在下载的资源,且正在下载的资源对应的资源加载请求的资源类型为主动加载,也即查看是否存在第二资源加载请求。若不存在第二资源加载请求,更新单元会以目标网速的第三预设值用来下载目标资源,并在目标资源下载完成后,返回应用程序的资源管理单元,并由资源管理单元将目标资源返回给应用程序的地图单元、界面单元和表现单元中发出第一资源加载请求的单元,以便于快速加载目标资源,降低应用程序的响应时间,从而提高用户体验性和用户粘度。
例如,目标网速为60Kbit/s(千比特每秒),第一预设值为0.9,则在第一资源加载请求的请求类型为静默加载、且不存在请求类型为主动加载的第二资源加载请求的情况下,以54Kbit/s的网速下载目标资源并加载。
参见图4,图4示出了本申请一实施例提供的一种负载均衡加载资源的流程图:更新单元中包含负载均衡单元,先启动负载均衡单元,然后获取网络环境,根据网络环境确定目标网速,接着分配下载速度:先判断主动下载对应的资源数量是否大于0,若是,为主动下载对应的资源分配目标网速的80%,为静默下载对应的资源分配目标网速的20%;若否,为静默下载对应的资源分配目标网速的100%。延时五分钟后,执行获取网络环境的步骤。
需要说明的是,无论目标资源是以目标网速的第一预设值下载的、还是以目标网速的第二预设值下载的、又或是以目标网速的第三预设值下载的,均需要在下载完成后将目标资源存入本地资源库,并添加至资源缓存区,也即:
在所述目标资源下载成功的情况下,将所述目标资源存入本地资源库,并将所述目标资源添加至资源缓存区。
例如,目标资源在下载完成后,可以在加载目标资源的同时,将目标资源存入本地资源库,并在加载完成后,将目标资源添加至资源缓存区。又如,目标资源在下载完成后,可以在加载目标资源的同时,将目标资源存入本地资源库,并将目标资源添加至资源缓存区。再如,目标资源在下载完成后,先加载目标资源,并在加载完成后,将目标资源存入本地资源库,并将目标资源添加至资源缓存区。
如此,在目标资源下载成功后,将目标资源保存在本地资源库和资源缓存区,有利再次加载该目标资源时,避免再次下载,从而加快资源加载效率。
此外,还可以参见图5,图5示出了本申请一实施例提供的一种资源动态下载的流程图:更新单元接收到资源管理单元发出第一资源加载请求后,会先在本地资源库中查找目标资源,判断目标资源是否存在,如果在本地资源库中不存在目标资源,则判断目标资源是否正在下载,若是,等待下载完成,下载完成后返回目标资源至资源管理单元,同时存入本地资源库,若否,先创建目标资源的下载队列,然后根据目标资源的优先级,等待下载完成,下载完成后返回目标资源至资源管理单元,同时存入本地资源库。如果目标资源已存在于本地资源库中,则直接返回目标资源至资源管理器。
由于资源缓存区存有大量资源会造成系统卡顿、帧率下降或者内存膨胀等性能问题,为了更快地加载相同资源,提高加载和响应速度,需要对资源缓存区进行清理,从而清除掉闲置资源。具体包括以下至少一种:
在所述资源缓存区的闲置资源在预设时长内未加载的情况下,清除所述资源缓存区中的闲置资源;
在所述闲置资源为过期资源的情况下,清除所述资源缓存区中的闲置资源;
按照预设间隔,定期清除所述资源缓存区中的闲置资源。
具体的,闲置资源是指资源缓存区中预设时长内未加载的资源、未使用的资源以及过期资源的总称。预设时长是指预先设置的一个时间长度,如10分钟、15分钟、一个小时等;预设间隔是指预先设置定时器的时间间隔,如20分钟、5分钟等。
实际应用中,针对资源缓存区的闲置资源设置了三种清理策略,分别如下:1)针对资源缓存区中的资源,设置一个预设时长,将在预设时长内没有被加载的资源确定为闲置资源,并清除该闲置资源,例如预设时长为3分钟,用户或者应用程序在3分钟内未请求加载、无操作的资源O,此时清除资源缓存区中的资源O,清理闲置资源可以达到省电目的;2)针对资源缓存区中的资源,如果资源缓存区出现了某个资源的更新资源,则将该资源确定为闲置资源,也即过期资源,例如资源缓存区中出现了新地图对应的资源,则旧地图对应的资源(闲置资源)就会过时,这时清理资源缓存区中旧地图对应的资源,可以减轻资源缓存区的负担;3)可以设置一个定时器,定时器携带有预设间隔,每间隔预设间隔指定的时长,清理资源缓存区的闲置资源,例如预设时长为10分钟,则每间隔10分钟,清理资源缓存区的闲置资源,又如针对游戏应用程序在某些大型活动时,游戏角色众多,因而资源加载量特别大,可能导致资源缓存区溢出奔溃,此时使用定时器,定时触发资源缓存区的闲置资源,能够保证资源缓存区的稳定性。
参见图6,图6示出了本申请一实施例提供的一种清除闲置资源的流程图:检测到用户在预设时长内未操作闲置资源,清除资源缓存区中的闲置资源;间隔时长达到预设间隔,清除资源缓存区中的闲置资源;资源缓存区存在为过期资源的闲置资源,清除资源缓存区中的闲置资源。
需要说明的是,如图7所示,图7示出了本申请一实施例提供的一种应用程序的结构图:应用程序中,设置了三个单元,分别是更新单元、资源管理单元、其他逻辑单元,其他逻辑单元包括地图单元、界面单元和表现单元。其中,更新单元负责从网络端下载资源和更新资源并主动同步资源到本地资源库,还负责处理资源加载请求,也即从网络端下载目标资源,并协调和控制资源下载时的开销,以避免影响客户端性能,之后返回目标资源给资源管理单元;资源管理单元对接更新单元,并给其他逻辑单元提供所需资源,如包括图片、地图、皮肤等资源,管理各类资源的加载和加载逻辑,以在质量和性能之间做平衡;其他逻辑单元根据需求的资源生成资源加载申请,对接资源管理单元,并由资源管理单元返回目标资源。
此外,更新单元提供按需下载功能,这意味着部分资源会放置在服务器,而应用程序在最初安装时只会携带部分必须的资源,当客户端程序请求到不存在的资源时,更新单元能通过网络通信下载该资源。更新单元中设立有资源下载单元,资源下载单元会在初始化阶段统计出需要更新或未下载的资源:如果该资源需要更新,则下载该资源的更新文件,并同步结果到本地资源库,如果该资源未下载,则根据优先级发起静默下载,在后台逐个下载资源。为了提高客户端的性能,静默下载的线程数较少,并且做速度控制,以免影响客户端前台的帧率或者网速。更新单元中设立有资源请求单元,对于资源管理单元发送的资源类型为主动加载的资源加载请求,为了保证即时响应性、避免延时,针对主动加载的资源加载请求,将会根据该资源加载请求所请求资源的优先级进行下载,并且以较高的速度下载;对于静默下载和主动下载两种资源加载请求,会统一在负载均衡单元中管理和控制优先级、速度和性能开销。
参见图8,图8示出了本申请一实施例提供的一种更新单元启动的流程图:先启动更新单元,然后导入资源配置表,创建本地资源库,然后启动资源下载单元,接着发起静默下载,在后台逐个下载资源,并在有资源需要更新时,下载更新资源。完成下载后,将资源存入本地资源库。此外,在启动资源下载单元后还需要创建资源请求单元,以等待资源加载请求。
需要说明的是,可以对资源进行管理和归类下载:目前资源采用单独的小文件模式,导致资源文件数量庞大而大小较小,这在下载时会导致下载速度波动较大,需要建立大量的连接。如果部分资源能按照同类或同场景归类,比如皮肤资源中同套装的头部图片、脚部图片、躯干图片能归类打包成一个资源文件,可以更快地下载完所有内置资源。还可以设置资源回收机制:目前回收时会遍历式地检查所有资源的使用状态并尝试回收,造成回收过程会耗时较长,可以通过手动控制资源的利用状态,针对性地回收闲置资源,也即清除资源缓存区的闲置资源。
本申请提供的资源加载方法,通过接收第一资源加载请求,其中,所述第一资源加载请求中携带有资源标识;然后在未查找到所述资源标识对应的目标资源的情况下,识别所述第一资源加载请求的请求类型;进一步地,若所述请求类型为主动加载,以目标网速的第一预设值下载所述目标资源并加载;若所述请求类型为静默加载,在存在请求类型为主动加载的第二资源加载请求的情况下,以所述目标网速的第二预设值下载所述目标资源并加载,其中,所述第一预设值大于所述第二预设值。如此,在实现按需下载的同时,可以针对不同资源类型的目标资源使用不同的下载速度,以降低资源下载时长、提高资源下载效率,并提升资源加载速度,从而可以保证应用程序运行期间的流畅度,进而提高用户体验性。
下述结合附图9,以本申请提供的资源加载方法对游戏应用程序的应用为例,对所述资源加载方法进行进一步说明。其中,图9示出了本申请一实施例提供的一种应用于游戏应用程序的资源加载方法的处理流程图,具体包括以下步骤:
步骤902:加载游戏应用程序的资源配置表,资源配置表包括资源标识、资源类型和资源路径。
步骤904:根据资源标识、资源类型和资源路径,将已下载的资源存入本地资源库。
步骤906:接收第一资源加载请求,第一资源加载请求中携带有资源标识。
步骤908:判断在资源缓存区中是否查找到与资源标识对应的目标资源。
若是,执行步骤926,若否,执行步骤910
步骤910:判断目标资源的资源类型是否为内置资源。
若是,执行步骤914,若否,执行步骤912。
步骤912:判断在本地资源库中是否查找到与资源标识对应的目标资源。
若是,执行步骤926,若否执行步骤914。
步骤914:识别第一资源加载请求的请求类型。
步骤916:判断请求类型是否为主动加载。
若是,执行步骤918,若否,执行步骤920。
步骤918:以目标网速的第一预设值下载目标资源。
可选地,资源配置表还包括优先级;
若请求类型为主动加载,以目标网速的第一预设值下载目标资源,包括:
若请求类型为主动加载,确定是否存在第三资源加载请求;
若是,在第三资源加载请求的请求类型为主动加载的情况下,比较目标资源与第三资源加载请求所请求资源的优先级;
在目标资源的优先级高于第三资源加载请求所请求资源的优先级的情况下,以目标网速的第一预设值下载目标资源。
步骤920:判断是否存在请求类型为主动加载的第二资源加载请求。
若是,执行步骤922,若否,执行步骤924。
步骤922:以目标网速的第二预设值下载目标资源。
第二预设值小于第一预设值。
步骤924:以目标网速的第三预设值下载目标资源。
第三预设值大于第一预设值。
步骤926:加载目标资源。
可选地,在目标资源下载成功的情况下,将目标资源存入本地资源库,并将目标资源添加至资源缓存区。
可选地,在资源缓存区的闲置资源在预设时长内未加载的情况下,清除资源缓存区中的闲置资源;在闲置资源为过期资源的情况下,清除资源缓存区中的闲置资源;按照预设间隔,定期清除资源缓存区中的闲置资源。
本申请提供的应用于游戏应用程序的资源加载方法,通过接收第一资源加载请求;然后在未查找到资源标识对应的目标资源的情况下,识别第一资源加载请求的请求类型;进一步地,若请求类型为主动加载,以目标网速的第一预设值下载目标资源并加载;若请求类型为静默加载,在存在请求类型为主动加载的第二资源加载请求的情况下,以目标网速的第二预设值下载目标资源并加载。如此,在实现按需下载的同时,可以针对不同资源类型的目标资源使用不同的下载速度,以降低资源下载时长、提高资源下载效率,并提升资源加载速度,实现了边玩边下载的效果,从而可以保证游戏应用程序运行期间的流畅度,进而提高用户体验性。
与上述方法实施例相对应,本申请还提供了资源加载装置实施例,图10示出了本申请一实施例提供的一种资源加载装置的结构示意图。如图10所示,该装置包括:
接收模块1002,被配置为接收第一资源加载请求,其中,所述第一资源加载请求中携带有资源标识;
识别模块1004,被配置为在未查找到所述资源标识对应的目标资源的情况下,识别所述第一资源加载请求的请求类型;
第一下载模块1006,被配置为若所述请求类型为主动加载,以目标网速的第一预设值下载所述目标资源并加载;
第二下载模块1008,被配置为若所述请求类型为静默加载,在存在请求类型为主动加载的第二资源加载请求的情况下,以所述目标网速的第二预设值下载所述目标资源并加载,其中,所述第一预设值大于所述第二预设值。
可选地,所述装置还包括第三下载模块,被配置为:
若所述请求类型为静默加载,在不存在请求类型为主动加载的第二资源加载请求的情况下,以目标网速的第三预设值下载所述目标资源并加载,其中所述第三预设值大于所述第一预设值。
可选地,所述识别模块1004,还被配置为:
根据所述资源标识,在资源缓存区中查找与所述资源标识对应的目标资源;
若在所述资源缓存区中查找失败,则根据所述资源标识,在本地资源库中查找与所述资源标识对应的目标资源;
若在所述本地资源库中查找失败,则识别所述第一资源加载请求的请求类型。
可选地,所述识别模块1004,还被配置为:
识别所述目标资源的资源类型;
若所述资源类型为非内置资源,则根据所述资源标识,在所述本地资源库中查找与所述资源标识对应的目标资源。
可选地,所述识别模块1004,还被配置为:
若所述资源类型为内置资源,则识别所述第一资源加载请求的请求类型。
可选地,所述装置还包括第一存入模块,被配置为:
加载资源配置表,其中,所述资源配置表包括资源标识、资源类型和资源路径;
根据所述资源标识、所述资源类型和所述资源路径,将已下载的资源存入本地资源库。
可选地,所述资源配置表还包括优先级;
所述第一下载模块1006,还被配置为:
若所述请求类型为主动加载,确定是否存在第三资源加载请求;
若是,在所述第三资源加载请求的请求类型为主动加载的情况下,比较所述目标资源与所述第三资源加载请求所请求资源的优先级;
在所述目标资源的优先级高于所述第三资源加载请求所请求资源的优先级的情况下,以目标网速的第一预设值下载所述目标资源。
可选地,所述装置还包括第二存入模块,被配置为:
在所述目标资源下载成功的情况下,将所述目标资源存入本地资源库,并将所述目标资源添加至资源缓存区。
可选地,所述装置还包括清除模块,被配置为以下至少一种:
在所述资源缓存区的闲置资源在预设时长内未加载的情况下,清除所述资源缓存区中的闲置资源;
在所述闲置资源为过期资源的情况下,清除所述资源缓存区中的闲置资源;
按照预设间隔,定期清除所述资源缓存区中的闲置资源。
本申请提供的资源加载装置,通过接收第一资源加载请求,其中,所述第一资源加载请求中携带有资源标识;然后在未查找到所述资源标识对应的目标资源的情况下,识别所述第一资源加载请求的请求类型;进一步地,若所述请求类型为主动加载,以目标网速的第一预设值下载所述目标资源并加载;若所述请求类型为静默加载,在存在请求类型为主动加载的第二资源加载请求的情况下,以所述目标网速的第二预设值下载所述目标资源并加载,其中,所述第一预设值大于所述第二预设值。如此,在实现按需下载的同时,可以针对不同资源类型的目标资源使用不同的下载速度,以降低资源下载时长、提高资源下载效率,并提升资源加载速度,从而可以保证应用程序运行期间的流畅度,进而提高用户体验性。
上述为本实施例的一种资源加载装置的示意性方案。需要说明的是,该资源加载装置的技术方案与上述的资源加载方法的技术方案属于同一构思,资源加载装置的技术方案未详细描述的细节内容,均可以参见上述资源加载方法的技术方案的描述。此外,装置实施例中的各组成部分应当理解为实现该程序流程各步骤或该方法各步骤所必须建立的功能模块,各个功能模块并非实际的功能分割或者分离限定。由这样一组功能模块限定的装置权利要求应当理解为主要通过说明书记载的计算机程序实现该解决方案的功能模块构架,而不应当理解为主要通过硬件方式实现该解决方案的实体装置。
图11示出了根据本申请一实施例提供的一种计算设备1100的结构框图。该计算设备1100的部件包括但不限于存储器1110和处理器1120。处理器1120与存储器1110通过总线1130相连接,数据库1150用于保存数据。
计算设备1100还包括接入设备1140,接入设备1140使得计算设备1100能够经由一个或多个网络1160通信。这些网络的示例包括公用交换电话网(PSTN,Public SwitchedTelephone Network)、局域网(LAN,Local Area Network)、广域网(WAN,Wide AreaNetwork)、个域网(PAN,Personal Area Network)或诸如因特网的通信网络的组合。接入设备1140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC,NetworkInterface Controller))中的一个或多个,诸如IEEE802.11无线局域网(WLAN,WirelessLocal Area Network)无线接口、全球微波互联接入(Wi-MAX,WorldwideInteroperability for Microwave Acess)接口、以太网接口、通用串行总线(USB,Universal Serial Bus)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC,Near FieldCommunication)接口,等等。
在本申请的一个实施例中,计算设备1100的上述部件以及图11中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图11所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备1100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备1100还可以是移动式或静止式的服务器。
其中,处理器1120用于执行所述资源加载方法的计算机可执行指令。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的资源加载方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述资源加载方法的技术方案的描述。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以用于资源加载方法。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的资源加载方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述资源加载方法的技术方案的描述。
本申请实施例公开了一种芯片,其存储有计算机指令,该计算机指令被处理器执行时实现如前所述资源加载方法的步骤。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。
Claims (12)
1.一种资源加载方法,其特征在于,包括:
接收第一资源加载请求,其中,所述第一资源加载请求中携带有资源标识;
在未查找到所述资源标识对应的目标资源的情况下,识别所述第一资源加载请求的请求类型;
若所述请求类型为主动加载,以目标网速的第一预设值下载所述目标资源并加载;
若所述请求类型为静默加载,在存在请求类型为主动加载的第二资源加载请求的情况下,以所述目标网速的第二预设值下载所述目标资源并加载,其中,所述第一预设值大于所述第二预设值。
2.根据权利要求1所述的方法,其特征在于,还包括:
若所述请求类型为静默加载,在不存在请求类型为主动加载的第二资源加载请求的情况下,以目标网速的第三预设值下载所述目标资源并加载,其中所述第三预设值大于所述第一预设值。
3.根据权利要求1所述的方法,其特征在于,所述在未查找到所述资源标识对应的目标资源的情况下,识别所述第一资源加载请求的请求类型,包括:
根据所述资源标识,在资源缓存区中查找与所述资源标识对应的目标资源;
若在所述资源缓存区中查找失败,则根据所述资源标识,在本地资源库中查找与所述资源标识对应的目标资源;
若在所述本地资源库中查找失败,则识别所述第一资源加载请求的请求类型。
4.根据权利要求3所述的方法,其特征在于,所述根据所述资源标识,在本地资源库中查找与所述资源标识对应的目标资源,包括:
识别所述目标资源的资源类型;
若所述资源类型为非内置资源,则根据所述资源标识,在所述本地资源库中查找与所述资源标识对应的目标资源。
5.根据权利要求4所述的方法,其特征在于,在所述识别所述目标资源的资源类型之后,还包括:
若所述资源类型为内置资源,则识别所述第一资源加载请求的请求类型。
6.根据权利要求1所述的方法,其特征在于,在所述接收第一资源加载请求之前,还包括:
加载资源配置表,其中,所述资源配置表包括资源标识、资源类型和资源路径;
根据所述资源标识、所述资源类型和所述资源路径,将已下载的资源存入本地资源库。
7.根据权利要求6所述的方法,其特征在于,所述资源配置表还包括优先级;
所述若所述请求类型为主动加载,以目标网速的第一预设值下载所述目标资源,包括:
若所述请求类型为主动加载,确定是否存在第三资源加载请求;
若是,在所述第三资源加载请求的请求类型为主动加载的情况下,比较所述目标资源与所述第三资源加载请求所请求资源的优先级;
在所述目标资源的优先级高于所述第三资源加载请求所请求资源的优先级的情况下,以目标网速的第一预设值下载所述目标资源。
8.根据权利要求1-7任意一项所述的方法,其特征在于,还包括:
在所述目标资源下载成功的情况下,将所述目标资源存入本地资源库,并将所述目标资源添加至资源缓存区。
9.根据权利要求8所述的方法,其特征在于,还包括以下至少一种:
在所述资源缓存区的闲置资源在预设时长内未加载的情况下,清除所述资源缓存区中的闲置资源;
在所述闲置资源为过期资源的情况下,清除所述资源缓存区中的闲置资源;
按照预设间隔,定期清除所述资源缓存区中的闲置资源。
10.一种资源加载装置,其特征在于,包括:
接收模块,被配置为接收第一资源加载请求,其中,所述第一资源加载请求中携带有资源标识;
识别模块,被配置为在未查找到所述资源标识对应的目标资源的情况下,识别所述第一资源加载请求的请求类型;
第一下载模块,被配置为若所述请求类型为主动加载,以目标网速的第一预设值下载所述目标资源并加载;
第二下载模块,被配置为若所述请求类型为静默加载,在存在请求类型为主动加载的第二资源加载请求的情况下,以所述目标网速的第二预设值下载所述目标资源并加载,其中,所述第一预设值大于所述第二预设值。
11.一种计算设备,其特征在于,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令实现权利要求1至9任意一项所述资源加载方法的步骤。
12.一种计算机可读存储介质,其存储有计算机指令,其特征在于,该指令被处理器执行时实现权利要求1至9任意一项所述资源加载方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111357581.0A CN114064146B (zh) | 2021-11-16 | 2021-11-16 | 资源加载方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111357581.0A CN114064146B (zh) | 2021-11-16 | 2021-11-16 | 资源加载方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114064146A true CN114064146A (zh) | 2022-02-18 |
CN114064146B CN114064146B (zh) | 2024-04-09 |
Family
ID=80273179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111357581.0A Active CN114064146B (zh) | 2021-11-16 | 2021-11-16 | 资源加载方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114064146B (zh) |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100318985A1 (en) * | 2009-06-15 | 2010-12-16 | Microsoft Corporation | Contextual discovery of value-added components |
US20140094163A1 (en) * | 2011-06-29 | 2014-04-03 | Rockstar Consortium Us Lp | Method and Apparatus for Pre-Loading Information Over a Communication Network |
CN104111847A (zh) * | 2014-06-26 | 2014-10-22 | 北京奇虎科技有限公司 | 一种提高游戏运行速度的方法及装置 |
CN104503784A (zh) * | 2014-12-16 | 2015-04-08 | 珠海金山网络游戏科技有限公司 | 一种利用脚本控制微端下载的方法和系统 |
US20160357538A1 (en) * | 2015-06-05 | 2016-12-08 | Apple Inc. | On demand resources |
CN107577537A (zh) * | 2017-09-06 | 2018-01-12 | 广东欧珀移动通信有限公司 | 资源配置方法及相关产品 |
CN108287836A (zh) * | 2017-01-09 | 2018-07-17 | 腾讯科技(深圳)有限公司 | 一种资源缓存方法及装置 |
CN110333947A (zh) * | 2019-05-23 | 2019-10-15 | 深圳市腾讯网域计算机网络有限公司 | 一种游戏应用的分包资源加载方法、装置、设备及介质 |
CN111135581A (zh) * | 2019-12-26 | 2020-05-12 | 网易(杭州)网络有限公司 | 游戏更新的方法与装置 |
CN111258680A (zh) * | 2020-01-21 | 2020-06-09 | 腾讯科技(深圳)有限公司 | 资源加载方法和装置、存储介质及电子装置 |
CN111371705A (zh) * | 2020-02-24 | 2020-07-03 | 维沃移动通信有限公司 | 一种下载任务执行方法及电子设备 |
CN111885733A (zh) * | 2020-06-30 | 2020-11-03 | 达闼机器人有限公司 | 资源分配的方法、装置、存储介质及网络设备 |
CN112169310A (zh) * | 2020-10-13 | 2021-01-05 | 网易(杭州)网络有限公司 | 一种游戏资源加载方法、装置、计算机设备和存储介质 |
CN112559927A (zh) * | 2020-12-23 | 2021-03-26 | 上海哔哩哔哩科技有限公司 | 一种网页加载方法及装置 |
CN113312572A (zh) * | 2021-05-17 | 2021-08-27 | 深圳市中科明望通信软件有限公司 | 一种资源处理方法、装置、存储介质及电子设备 |
-
2021
- 2021-11-16 CN CN202111357581.0A patent/CN114064146B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100318985A1 (en) * | 2009-06-15 | 2010-12-16 | Microsoft Corporation | Contextual discovery of value-added components |
US20140094163A1 (en) * | 2011-06-29 | 2014-04-03 | Rockstar Consortium Us Lp | Method and Apparatus for Pre-Loading Information Over a Communication Network |
CN104111847A (zh) * | 2014-06-26 | 2014-10-22 | 北京奇虎科技有限公司 | 一种提高游戏运行速度的方法及装置 |
CN104503784A (zh) * | 2014-12-16 | 2015-04-08 | 珠海金山网络游戏科技有限公司 | 一种利用脚本控制微端下载的方法和系统 |
US20160357538A1 (en) * | 2015-06-05 | 2016-12-08 | Apple Inc. | On demand resources |
CN108287836A (zh) * | 2017-01-09 | 2018-07-17 | 腾讯科技(深圳)有限公司 | 一种资源缓存方法及装置 |
CN107577537A (zh) * | 2017-09-06 | 2018-01-12 | 广东欧珀移动通信有限公司 | 资源配置方法及相关产品 |
CN110333947A (zh) * | 2019-05-23 | 2019-10-15 | 深圳市腾讯网域计算机网络有限公司 | 一种游戏应用的分包资源加载方法、装置、设备及介质 |
CN111135581A (zh) * | 2019-12-26 | 2020-05-12 | 网易(杭州)网络有限公司 | 游戏更新的方法与装置 |
CN111258680A (zh) * | 2020-01-21 | 2020-06-09 | 腾讯科技(深圳)有限公司 | 资源加载方法和装置、存储介质及电子装置 |
CN111371705A (zh) * | 2020-02-24 | 2020-07-03 | 维沃移动通信有限公司 | 一种下载任务执行方法及电子设备 |
CN111885733A (zh) * | 2020-06-30 | 2020-11-03 | 达闼机器人有限公司 | 资源分配的方法、装置、存储介质及网络设备 |
CN112169310A (zh) * | 2020-10-13 | 2021-01-05 | 网易(杭州)网络有限公司 | 一种游戏资源加载方法、装置、计算机设备和存储介质 |
CN112559927A (zh) * | 2020-12-23 | 2021-03-26 | 上海哔哩哔哩科技有限公司 | 一种网页加载方法及装置 |
CN113312572A (zh) * | 2021-05-17 | 2021-08-27 | 深圳市中科明望通信软件有限公司 | 一种资源处理方法、装置、存储介质及电子设备 |
Non-Patent Citations (6)
Title |
---|
MAXIM MOZGOVOY等: "A Comprehensive Approach to Quality Assurance in a Mobile Game Project", CEE-SECR \'18: PROCEEDINGS OF THE 14TH CENTRAL AND EASTERN EUROPEAN SOFTWARE ENGINEERING CONFERENCE RUSSIAOCTOBER 2018, 12 October 2018 (2018-10-12), pages 1 - 8 * |
N-THEERA-AMPORNPUNT: "AppStreamer: Reducing Storage Requirements of Mobile Games through Predictive Streaming", ARXIV, 16 December 2019 (2019-12-16), pages 37 - 48 * |
SEBASTIAN FRISTON: "3DRepo4Unity: dynamic loading of version controlled 3D assets into the unity game engine", WEB3D \'173DREPO4UNITY: DYNAMIC LOADING OF VERSION CONTROLLED 3D ASSETS INTO THE UNITY GAME ENGINE 3DREPO4UNITY:将版本控制的 3D 资源动态加载到 UNITY 游戏引擎中, 5 June 2017 (2017-06-05), pages 1 - 9 * |
吴秦(TYLER): "页游资源管理", Retrieved from the Internet <URL:https://www.cnblogs.com/skynet/archive/2012/12/20/2827236.html> * |
应申 等: "论游戏地图的特点", 武汉大学学报 ( 信息科学版), vol. 45, no. 9, 30 September 2020 (2020-09-30), pages 1334 - 1343 * |
张惠娟 等: "基于DR预测的大规模Web3D场景预加载机制", 系统仿真学报, vol. 32, no. 7, 31 July 2020 (2020-07-31), pages 1341 - 1348 * |
Also Published As
Publication number | Publication date |
---|---|
CN114064146B (zh) | 2024-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10491535B2 (en) | Adaptive data synchronization | |
US10349134B2 (en) | Analyzing multimedia content using knowledge graph embeddings | |
CN110134495B (zh) | 一种容器跨主机在线迁移方法、存储介质及终端设备 | |
CN109460297B (zh) | 一种边缘云游戏缓存和资源调度方法 | |
CN107357896A (zh) | 数据库集群的扩容方法、装置、系统和数据库集群系统 | |
EP3069263A1 (en) | Session idle optimization for streaming server | |
US11677877B2 (en) | Utilizing machine learning with call histories to determine support queue positions for support calls | |
WO2015081907A1 (zh) | 一种角色对象管理的方法、装置和服务器 | |
US11284160B2 (en) | Start-up performance improvement for remote application | |
CN111744177A (zh) | 游戏数据处理方法和装置、存储介质和电子设备 | |
CN112905326A (zh) | 任务处理方法及装置 | |
US9588983B2 (en) | Data classification for adaptive synchronization | |
JP2023526883A (ja) | タスクのためのスケジューリング方法、コンピューティングデバイス、およびストレージ媒体 | |
Bhojan et al. | CloudyGame: Enabling cloud gaming on the edge with dynamic asset streaming and shared game instances | |
CN113900774B (zh) | 云操作系统的虚拟机控制方法、装置以及存储介质 | |
Micó et al. | An algorithm for finding nearest neighbours in constant average time with a linear space complexity | |
CN111061511A (zh) | 一种服务处理方法、装置及存储介质和服务器 | |
CN114064146A (zh) | 资源加载方法及装置 | |
CN111359213B (zh) | 用于控制游戏对局中的虚拟玩家的方法和设备 | |
CN110134655A (zh) | 一种资源管理方法、装置和设备 | |
CN112527450A (zh) | 基于不同资源的超融合自适应方法、终端及系统 | |
CN110221902A (zh) | 一种基于虚拟机的数据传输方法及相关装置 | |
CN116510312A (zh) | 一种云游戏多开实现方法、装置、设备及存储介质 | |
CN110874256B (zh) | 一种计算集群更新系统、方法及装置 | |
CN112206514A (zh) | 一种游戏画面渲染方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |