资源显示方法、资源发送方法、装置、设备及存储介质转让专利

申请号 : CN202010070130.8

文献号 : CN111265885B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 冯昱尧黄利娟董庆文

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本申请公开了一种资源显示方法、资源发送方法、装置、设备及存储介质,属于计算机技术领域。本申请实施例中,每个虚拟资源对应一个资源包,在需要某个虚拟资源时可以向服务器获取该虚拟资源的资源包以进行显示,实现了单个虚拟资源的获取和显示,单个虚拟资源的资源包很小,获取过程无需花费很长时间,几乎可以忽略不计,进而可以快速获取到虚拟资源进行显示,获取效率很高,且不会获取到冗余资源,减少了不必要的传输资源消耗,能够更准确地满足用户需求,且由于获取和显示无需过多时间,显示效果好。

权利要求 :

1.一种资源显示方法,其特征在于,所述方法包括:响应于对虚拟对象的任一虚拟道具的获取指令,向服务器发送道具获取请求;

接收所述服务器响应于所述道具获取请求发送的道具资源包,所述道具资源包为所述任一虚拟道具的资源包,每个虚拟道具对应一个道具资源包;

基于所述道具资源包,在所述虚拟对象的目标位置上显示所述任一虚拟道具。

2.根据权利要求1所述的方法,其特征在于,所述道具资源包包括所述任一虚拟道具对应的一个或多个资源文件;

所述基于所述道具资源包,在所述虚拟对象的目标位置上显示所述任一虚拟道具,包括:

对所述道具资源包进行解析,得到所述任一虚拟道具对应的资源文件;

读取所述任一虚拟道具对应的资源文件,对所述资源文件中所述任一虚拟道具的贴图进行渲染。

3.根据权利要求2所述的方法,其特征在于,所述读取所述任一虚拟道具对应的资源文件,包括:

响应于对所述资源文件的第一次读取指令,创建所述资源文件的文件句柄,缓存所述文件句柄;或,

响应于对所述资源文件的读取指令且所述读取指令不是第一次读取指令,获取所述资源文件对应的文件句柄,缓存所述文件句柄。

4.根据权利要求1所述的方法,其特征在于,所述道具资源包包括所述任一虚拟道具对应的一个或多个资源文件,所述方法还包括:获取当前处于被读取状态的资源文件的数量;

响应于所述数量大于数量阈值,释放所述处于被读取状态的资源文件中的目标资源文件。

5.根据权利要求4所述的方法,其特征在于,每个虚拟道具对应一个缓存数据结构,资源文件的文件句柄缓存于所述缓存数据结构中;

所述响应于所述数量大于数量阈值,释放所述处于被读取状态的资源文件中的目标资源文件,包括:

响应于所述数量大于数量阈值,析构所述目标资源文件所属虚拟道具的缓存数据结构中所述目标资源文件的文件句柄。

6.根据权利要求4所述的方法,其特征在于,所述释放所述处于被读取状态的资源文件中的目标资源文件,包括:

根据所述处于被读取状态的资源文件的文件信息或读取信息中至少一项,从所述处于被读取状态的资源文件中,确定目标资源文件;

释放所述目标资源文件。

7.根据权利要求6所述的方法,其特征在于,所述根据所述处于被读取状态的资源文件的文件信息或读取信息中至少一项,从所述处于被读取状态的资源文件中,确定目标资源文件,包括:

根据所述处于被读取状态的资源文件的被读取时间、被读取时长、被读取次数、文件大小中至少一项,从所述处于被读取状态的资源文件中,确定目标资源文件。

8.根据权利要求1所述的方法,其特征在于,所述方法还包括:响应于目标应用的启动指令,向所述服务器发送资源获取请求;

接收所述服务器发送的目标虚拟道具的道具资源包,所述目标虚拟道具的优先级高于阈值。

9.根据权利要求1所述的方法,其特征在于,所述道具资源包包括所述任一虚拟道具对应的一个或多个资源文件;

所述方法还包括:

响应于对任一虚拟道具的任一资源文件的读取指令且所述任一资源文件处于被读取状态,获取所述读取指令所指示对所述任一资源文件的第一读取位置和所述任一资源文件正在被读取的第二读取位置;

响应于所述第一读取位置和所述第二读取位置存在重合区域,将所述读取指令设置为等待状态;

响应于所述第二读取位置的内容被读取完成后,执行所述读取指令,读取所述第一读取位置的内容。

10.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取多个虚拟道具的多个资源包和索引文件,所述索引文件包括虚拟道具与道具资源包的对应关系;

响应于对任一虚拟道具的显示指令时,根据所述索引文件所指示的对应关系,从多个道具资源包中,获取所述任一虚拟道具的道具资源包;

基于所述任一虚拟道具的道具资源包,对所述道具资源包中的所述任一虚拟道具进行显示。

11.一种资源发送方法,其特征在于,所述方法包括:接收道具获取请求;

响应于所述道具获取请求,从多个虚拟道具的道具资源包中,提取所述道具获取请求所指示的虚拟道具的道具资源包,每个虚拟道具对应一个道具资源包;

向终端发送所述道具资源包。

12.根据权利要求11所述的方法,其特征在于,所述接收道具获取请求之前,所述方法还包括:

根据任一虚拟道具的蓝图文件,确定所述任一虚拟道具对应的资源文件;

基于所述任一虚拟道具对应的资源文件,生成所述任一虚拟道具的道具资源包。

13.一种资源显示装置,其特征在于,所述装置包括:发送模块,用于响应于对虚拟对象的任一虚拟道具的获取指令,向服务器发送道具获取请求;

接收模块,用于接收所述服务器响应于所述道具获取请求发送的道具资源包,所述道具资源包为所述任一虚拟道具的资源包,每个虚拟道具对应一个道具资源包;

显示模块,用于基于所述道具资源包,在所述虚拟对象的目标位置上显示所述任一虚拟道具。

14.一种计算机设备,其特征在于,所述计算机设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条指令,所述指令由所述一个或多个处理器加载并执行以实现如权利要求1至权利要求10任一项所述的资源显示方法所执行的操作;或如权利要求11或12所述的资源发送方法所执行的操作。

15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现权利要求1至权利要求10任一项所述的资源显示方法所执行的操作;或如权利要求11或12所述的资源发送方法所执行的操作。

说明书 :

资源显示方法、资源发送方法、装置、设备及存储介质

技术领域

[0001] 本申请涉及计算机技术领域,特别涉及一种资源显示方法、资源发送方法、装置、设备及存储介质。

背景技术

[0002] 随着计算机技术的发展以及终端功能的多样化,能够在终端上实现的游戏种类越来越多。在游戏实现中,通常需要由服务器将游戏中的资源打包为资源包发送给终端,以使
得终端能够获取并对虚拟资源进行显示。
[0003] 目前,资源显示方法中通常将所有虚拟资源均打包在一个资源包中,从而可以一起下载。该方法中,如果用户想要查看某个虚拟资源,终端可以显示包括所有虚拟资源的资
源包的下载提示,如果用户通过操作,确认下载,可以向服务器请求该包括所有虚拟资源的
资源包,从而服务器向终端发送该资源包,终端下载该资源包,从而可以在该资源包中查询
到需求的虚拟资源进行显示。
[0004] 例如,如图1所示,终端可以显示包括所有虚拟资源的资源包的下载提示,用户可以选择是否下载,如果选择下载,则终端可以从服务器下载该资源包,该资源包包括所有虚
拟资源,大小在二百多兆(M),该数值仅为一种示例,有些资源包的大小可能更大,甚至几吉
字节(GB)。
[0005] 上述方法中将所有虚拟资源均打包在一个资源包中,用户需要下载某个虚拟资源时,则需要下载该资源包,由于该资源包很大,终端通常需要花费一定的时长去下载,待到
该资源包完全下载之后才能对用户需求的虚拟资源进行显示。且下载的该资源包包括很多
虚拟资源,与用户需求的某个虚拟资源相比,用户不一定会用到该资源包中的所有虚拟资
源,其获取的冗余资源比例很高,因而,上述方法的资源获取效率很低,无法很好的满足用
户需求,显示效果差。

发明内容

[0006] 本申请实施例提供了一种资源显示方法、资源发送方法、装置、设备及存储介质,提高了资源的获取效率,提高了资源的显示效果。所述技术方案如下:
[0007] 一方面,提供了一种资源显示方法,所述方法包括:
[0008] 响应于对任一虚拟资源的获取指令,向服务器发送资源获取请求;
[0009] 接收所述服务器响应于所述资源获取请求发送的资源包,所述资源包为所述任一虚拟资源的资源包,每个虚拟资源对应一个资源包;
[0010] 基于所述资源包,对所述资源包中的所述任一虚拟资源进行显示。
[0011] 在一种可能实现方式中,所述资源包包括所述任一虚拟资源对应的一个或多个资源文件,所述索引文件中包括每个资源文件对应的获取路径;
[0012] 所述方法还包括:
[0013] 响应于对任一虚拟资源的任一资源文件的读取指令,按照所述索引文件中所述任一资源文件的获取路径,读取所述任一虚拟资源的资源包中的所述任一资源文件。
[0014] 一方面,提供了一种资源发送方法,所述方法包括:
[0015] 接收资源获取请求;
[0016] 响应于所述资源获取请求,从多个虚拟资源的资源包中,提取所述资源获取请求所指示的虚拟资源的资源包,每个虚拟资源对应一个资源包;
[0017] 向终端发送所述资源包。
[0018] 在一种可能实现方式中,所述接收资源获取请求之前,所述方法还包括:
[0019] 根据所述任一虚拟资源与资源包的对应关系,生成索引文件;
[0020] 所述方法还包括:
[0021] 响应于对任一虚拟资源的资源获取请求,向终端发送所述索引文件。
[0022] 在一种可能实现方式中,所述任一虚拟资源对应一个或多个资源文件,所述索引文件中包括每个资源文件对应的获取路径;
[0023] 所述根据所述任一虚拟资源与资源包的对应关系,生成索引文件,包括:
[0024] 对所述任一虚拟资源中每个资源文件的获取路径和所述任一虚拟资源的资源包进行哈希计算,得到获取路径和资源包的哈希值;
[0025] 将所述获取路径的哈希值作为键,将所述资源包的哈希值作为值,生成映射表,将所述映射表作为所述索引文件。
[0026] 在一种可能实现方式中,所述响应于对任一虚拟资源的资源获取请求,向终端发送所述索引文件,包括:
[0027] 响应于对任一虚拟资源的资源获取请求,且所述资源获取请求为所述终端发送的第一次资源获取请求,向所述终端发送所述索引文件。
[0028] 一方面,提供了一种资源显示装置,所述装置包括:
[0029] 发送模块,用于响应于对任一虚拟资源的获取指令,向服务器发送资源获取请求;
[0030] 接收模块,用于接收所述服务器响应于所述资源获取请求发送的资源包,所述资源包为所述任一虚拟资源的资源包,每个虚拟资源对应一个资源包;
[0031] 显示模块,用于基于所述资源包,对所述资源包中的所述任一虚拟资源进行显示。
[0032] 在一种可能实现方式中,所述资源包包括所述任一虚拟资源对应的一个或多个资源文件;
[0033] 所述显示模块,用于:
[0034] 对所述资源包进行解析,得到所述任一虚拟资源对应的资源文件;
[0035] 读取所述任一虚拟资源对应的资源文件,对所述资源文件中所述任一虚拟资源的贴图进行渲染。
[0036] 在一种可能实现方式中,所述显示模块,用于:
[0037] 响应于对所述资源文件的第一次读取指令,创建所述资源文件的文件句柄,缓存所述文件句柄;或,
[0038] 响应于对所述资源文件的读取指令且所述读取指令不是第一次读取指令,获取所述资源文件对应的文件句柄,缓存所述文件句柄。
[0039] 在一种可能实现方式中,所述资源包包括所述任一虚拟资源对应的一个或多个资源文件,所述装置还包括:
[0040] 第一获取模块,用于获取当前处于被读取状态的资源文件的数量;
[0041] 释放模块,用于响应于所述数量大于数量阈值,释放所述处于被读取状态的资源文件中的目标资源文件。
[0042] 在一种可能实现方式中,每个虚拟资源对应一个缓存数据结构,资源文件的文件句柄缓存于所述缓存数据结构中;
[0043] 所述释放模块用于响应于所述数量大于数量阈值,析构所述目标资源文件所属虚拟资源的缓存数据结构中所述目标资源文件的文件句柄。
[0044] 在一种可能实现方式中,所述释放模块用于:
[0045] 根据所述处于被读取状态的资源文件的文件信息或读取信息中至少一项,从所述处于被读取状态的资源文件中,确定目标资源文件;
[0046] 释放所述目标资源文件。
[0047] 在一种可能实现方式中,所述释放模块用于根据所述处于被读取状态的资源文件的被读取时间、被读取时长、被读取次数、文件大小中至少一项,从所述处于被读取状态的
资源文件中,确定目标资源文件。
[0048] 在一种可能实现方式中,所述发送模块还用于响应于目标应用的启动指令,向所述服务器发送资源获取请求;
[0049] 所述接收模块,用于接收所述服务器发送的目标虚拟资源的资源包,所述目标虚拟资源的优先级高于阈值。
[0050] 在一种可能实现方式中,所述资源包包括所述任一虚拟资源对应的一个或多个资源文件;
[0051] 所述装置还包括:
[0052] 第二获取模块,用于响应于对任一虚拟资源的任一资源文件的读取指令且所述任一资源文件处于被读取状态,获取所述读取指令所指示对所述任一资源文件的第一读取位
置和所述任一资源文件正在被读取的第二读取位置;
[0053] 设置模块,用于响应于所述第一读取位置和所述第二读取位置存在重合区域,将所述读取指令设置为等待状态;
[0054] 第一读取模块,用于响应于所述第二读取位置的内容被读取完成后,执行所述读取指令,读取所述第一读取位置的内容。
[0055] 在一种可能实现方式中,所述装置还包括:
[0056] 第三获取模块,用于获取多个虚拟资源的多个资源包和索引文件,所述索引文件包括虚拟资源与资源包的对应关系;
[0057] 所述第三获取模块,还用于响应于对任一虚拟资源的显示指令时,根据所述索引文件所指示的对应关系,从所述多个资源包中,获取所述任一虚拟资源的资源包;
[0058] 所述显示模块,还用于基于所述任一虚拟资源的资源包,对所述资源包中的所述任一虚拟资源进行显示。
[0059] 在一种可能实现方式中,所述资源包包括所述任一虚拟资源对应的一个或多个资源文件,所述索引文件中包括每个资源文件对应的获取路径;
[0060] 所述装置还包括:
[0061] 第二读取模块,用于响应于对任一虚拟资源的任一资源文件的读取指令,按照所述索引文件中所述任一资源文件的获取路径,读取所述任一虚拟资源的资源包中的所述任
一资源文件。
[0062] 一方面,提供了一种资源发送装置,所述装置包括:
[0063] 接收模块,用于接收资源获取请求;
[0064] 提取模块,用于响应于所述资源获取请求,从多个虚拟资源的资源包中,提取所述资源获取请求所指示的虚拟资源的资源包,每个虚拟资源对应一个资源包;
[0065] 发送模块,用于向终端发送所述资源包。
[0066] 在一种可能实现方式中,所述装置还包括:
[0067] 确定模块,用于根据任一虚拟资源的蓝图文件,确定所述任一虚拟资源对应的资源文件;
[0068] 第一生成模块,用于基于所述任一虚拟资源对应的资源文件,生成所述任一虚拟资源的资源包。
[0069] 在一种可能实现方式中,所述装置还包括:
[0070] 第二生成模块,用于根据所述任一虚拟资源与资源包的对应关系,生成索引文件;
[0071] 所述发送模块,还用于响应于对任一虚拟资源的资源获取请求,向终端发送所述索引文件。
[0072] 在一种可能实现方式中,所述任一虚拟资源对应一个或多个资源文件,所述索引文件中包括每个资源文件对应的获取路径;
[0073] 所述第二生成模块用于:
[0074] 对所述任一虚拟资源中每个资源文件的获取路径和所述任一虚拟资源的资源包进行哈希计算,得到获取路径和资源包的哈希值;
[0075] 将所述获取路径的哈希值作为键,将所述资源包的哈希值作为值,生成映射表,将所述映射表作为所述索引文件。
[0076] 在一种可能实现方式中,所述发送模块用于响应于对任一虚拟资源的资源获取请求,且所述资源获取请求为所述终端发送的第一次资源获取请求,向所述终端发送所述索
引文件。
[0077] 一方面,提供了一种计算机设备,所述计算机设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条指令,所述指令由所述一个或多
个处理器加载并执行以实现所述资源显示方法或资源发送方法所执行的操作。
[0078] 一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现所述资源显示方法或资源发送方法所执
行的操作。
[0079] 本申请实施例中,每个虚拟资源对应一个资源包,在需要某个虚拟资源时可以向服务器获取该虚拟资源的资源包以进行显示,实现了单个虚拟资源的获取和显示,单个虚
拟资源的资源包很小,获取过程无需花费很长时间,几乎可以忽略不计,进而可以快速获取
到虚拟资源进行显示,获取效率很高,且不会获取到冗余资源,减少了不必要的传输资源消
耗,能够更准确地满足用户需求,且由于获取和显示无需过多时间,显示效果好。

附图说明

[0080] 为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于
本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他
的附图。
[0081] 图1是相关技术提供的一种资源显示方法的终端界面图;
[0082] 图2是本申请实施例提供的一种资源显示方法和资源发送方法的实施环境;
[0083] 图3是本申请实施例提供的一种资源显示方法和资源发送方法的流程图;
[0084] 图4是本申请实施例提供的一种终端界面图;
[0085] 图5是本申请实施例提供的一种终端界面图;
[0086] 图6是本申请实施例提供的一种索引文件的生成过程示意图;
[0087] 图7是本申请实施例提供的一种资源文件读取方式的示意图;
[0088] 图8是本申请实施例提供的一种文件句柄动态清空的示意图;
[0089] 图9是本申请实施例提供的一种文件句柄动态清空的示意图;
[0090] 图10是本申请实施例提供的一种资源显示方法和资源发送方法的流程图;
[0091] 图11是本申请实施例提供的一种资源显示装置的结构示意图;
[0092] 图12是本申请实施例提供的一种资源发送装置的结构示意图;
[0093] 图13是本申请实施例提供的一种终端的结构示意图;
[0094] 图14是本申请实施例提供的一种服务器的结构示意图。

具体实施方式

[0095] 为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
[0096] 图2是本申请实施例提供的一种资源显示方法和资源发送方法的实施环境,参见图2,该实施环境包括终端201和服务器202,其中,该终端201和服务器202可以通过有线或
无线网络连接。
[0097] 该终端201用于从服务器202中获取虚拟资源并对虚拟资源进行显示,服务器202用于下发虚拟资源,在终端201需要获取虚拟资源时,可以向该服务器202发送资源获取请
求,由服务器202响应于该资源获取请求,将虚拟资源的资源包发送给终端201。
[0098] 图3是本申请实施例提供的一种资源显示方法和资源发送方法的流程图,在该图3所示实施例中,以终端和服务器交互的角度,对实现虚拟资源发送、获取和显示的过程进行
了详细说明,具体可以包括以下步骤:
[0099] 301、终端接收对任一虚拟资源的获取指令。
[0100] 在本申请实施例中,虚拟资源不再被打包在一个资源包中,每个虚拟资源可以对应一个资源包,如果用户想要查看任一虚拟资源时,可以对该任一虚拟资源进行获取操作,
终端接收到对任一虚拟资源的获取指令,可以对其进行响应,通过下述步骤302,发送资源
获取请求以获取该虚拟资源。
[0101] 这样可以根据用户的需求来进行资源获取和显示,获取单个虚拟资源时,获取时间很小,几乎可以忽略不计,获取效率很高,且不会获取到冗余资源,减少了不必要的传输
资源消耗,能够更准确地满足用户需求,且由于获取和显示无需过多时间,因而,显示效果
好。
[0102] 在一种可能实现方式中,还可以提供一种预下载机制,该虚拟资源可以根据重要程度划分优先级,对于优先级高于阈值的目标虚拟资源,在启动目标应用时,终端可以自动
获取目标虚拟资源,而无需用户手动操作,简化了用户操作,且在目标应用启动时即加载了
重要的目标虚拟资源,用户可直接看到重要的目标虚拟资源,而无需用户再手动获取。
[0103] 具体地,用户可以对目标应用进行启动操作,例如,点击该目标应用的图标,从而终端接收到目标应用的启动指令,可以响应于目标应用的启动指令,向服务器发送资源获
取请求,服务器接收到该目标应用的启动指令触发的资源获取请求后,可以从多个虚拟资
源中,确定目标虚拟资源,将该目标虚拟资源的资源包发送给该终端,从而该终端可以接收
该服务器发送的目标虚拟资源的资源包,该目标虚拟资源的优先级高于阈值。
[0104] 可以理解地,该目标虚拟资源可以由相关技术人员根据需求进行设置,也可以由用户进行自定义设置,还可以根据用户账号的账号信息确定,本申请实施例对此不作限定。
例如,以目标应用为电子游戏,虚拟资源为虚拟资源的服饰为例,对于该用户账号中虚拟对
象正穿戴的服饰,可以确定为上述目标虚拟资源,在电子游戏启动时,终端即可获取这部分
服饰,以便于对其进行显示,而无需由用户再重新获取后再显示,更符合用户需求,显示效
果更好。又例如,对于该用户账号已拥有的虚拟资源,比如服饰、虚拟道具等,也可以将其确
定为上述目标虚拟资源。
[0105] 302、终端响应于对任一虚拟资源的获取指令,向服务器发送资源获取请求。
[0106] 终端接收到对任一虚拟资源的获取指令后,可以响应于该获取指令,向服务器发送资源获取请求,该资源获取请求用于请求该任一虚拟资源的资源包。
[0107] 在一种可能实现方式中,该资源获取请求可以携带有该任一虚拟资源的标识信息,服务器可以根据该任一虚拟资源的标识信息来获知终端所需求的是哪个虚拟资源。例
如,该标识信息可以为资源编号,也可以为资源名称,还可以为获取地址,本申请实施例对
此不作限定。
[0108] 303、服务器接收资源获取请求。
[0109] 304、服务器响应于该资源获取请求,从多个虚拟资源的资源包中,提取该资源获取请求所指示的虚拟资源的资源包,每个虚拟资源对应一个资源包。
[0110] 在该服务器中可以存储有多个虚拟资源的资源包,服务器接收到终端发送的资源获取请求后,可以确定终端所需求的是哪种虚拟资源,从该多个虚拟资源的资源包中提取
相应的资源包。
[0111] 其中,该服务器中的资源包可以根据每个虚拟资源的蓝图文件生成,该蓝图文件可以为虚拟资源的资源文件的编辑脚本,相关技术人员可以在该蓝图文件中设置或修改该
虚拟资源的属性等参数。每个虚拟资源可以对应一个或多个资源文件,在该蓝图文件中可
以设置有资源文件之间的关联信息,也即是,该蓝图文件中的关联信息可以用于指示该虚
拟资源对应哪几个资源文件和这几个资源文件所引用的下一级资源文件。服务器可以将该
虚拟资源对应的资源文件和资源文件所引用的资源文件打包到该虚拟资源的资源包中。
[0112] 具体地,服务器可以根据任一虚拟资源的蓝图文件,确定该任一虚拟资源对应的资源文件,基于该任一虚拟资源对应的资源文件,生成该任一虚拟资源的资源包。
[0113] 305、服务器向终端发送该资源包。
[0114] 服务器确定了该终端所需求的资源包后,即可将资源包发送给该终端。
[0115] 306、终端接收该服务器响应于该资源获取请求发送的资源包,该资源包为该任一虚拟资源的资源包。
[0116] 终端接收到该服务器发送的资源包,每个虚拟资源对应一个资源包,该终端需求单个虚拟资源时,即通过上述过程获取到了该单个虚拟资源的资源包。
[0117] 307、终端基于该资源包,对该资源包中的该任一虚拟资源进行显示。
[0118] 终端接收到该资源包后,该资源包中包括该任一虚拟资源,终端即可对该资源包进行解析,获取并显示该任一虚拟资源。例如,如图4和图5所示,以电子游戏场景为例,用户
打开电子游戏应用,终端可以显示已下载的虚拟资源,部分虚拟资源未下载。虚拟资源列表
可以如图中401所示,对于未下载的虚拟资源,终端显示该虚拟资源时,该虚拟资源处于暗
淡状态,用户可以对虚拟资源进行获取操作,从而通过上述流程,终端可以下载一个或多个
虚拟资源,如图5所示,对于用户未进行获取操作的虚拟资源,则终端可以不进行上述获取
步骤。终端可以对用户从虚拟资源列表401中选择的一个暗淡的虚拟资源进行获取,该虚拟
资源下载完成,该虚拟资源可以明亮显示。
[0119] 在一种可能实现方式中,该资源包包括该任一虚拟资源对应的一个或多个资源文件,例如,对于电子游戏中的某个虚拟物品,该虚拟物品相关的资源文件可以包括该虚拟物
品的贴图、描述文件等,当然,也可以包括其他文件,在此仅为一种示例说明。则上述显示过
程即可为:终端对该资源包进行解析,得到该任一虚拟资源对应的资源文件,读取该任一虚
拟资源对应的资源文件,对该资源文件中该任一虚拟资源的贴图进行渲染。其中,贴图可以
为多种类型的贴图,例如,法线贴图,又例如,纹理贴图,本申请实施例对此不作限定。
[0120] 在一种可能实现方式中,上述读取资源文件的过程可以体现为缓存对应的文件句柄的过程。而对于一个资源文件,在第一次读取时,可以为其创建文件句柄,在后续读取时,
终端即可直接获取该文件句柄进行缓存。具体地,上述读取过程可以为:终端响应于对该资
源文件的第一次读取指令,创建该资源文件的文件句柄,缓存该文件句柄,或,响应于对该
资源文件的读取指令且该读取指令不是第一次读取指令,获取该资源文件对应的文件句
柄,缓存该文件句柄。在一种可能实现方式中,终端在缓存文件句柄时,也可以获取该资源
文件的文件信息,并缓存该文件信息,例如,该文件信息可以包括文件头信息。
[0121] 在一个具体的可能实施例中,上述文件句柄可以缓存于该虚拟资源对应的缓存数据结构中,例如,该缓存数据结构可以为ReaderMap,该ReaderMap为UE引擎底层缓存操作系
统文件句柄的数据结构。具体地,每个虚拟资源可以对应一个缓存数据结构,资源文件的文
件句柄缓存于该缓存数据结构中。
[0122] 在一种可能实现方式中,可以设置一个数量阈值,对处于被读取状态的资源文件的数量进行限制,以避免同时运行的资源文件过多导致系统崩溃,或资源显示效果不好的
情况。具体地,终端可以获取当前处于被读取状态的资源文件的数量,响应于该数量大于数
量阈值,释放该处于被读取状态的资源文件中的目标资源文件。其中,该数量阈值可以由相
关技术人员根据需求进行设置,本申请实施例对此不作限定。
[0123] 在一个具体的可能实施例中,上述获取当前处于被读取状态的资源文件的数量的步骤可以在终端响应于对任一虚拟资源的任一资源文件的读取指令时执行,也即是,终端
在打开一个资源文件时,可以判断当前已经打开了多少资源文件,从而判断是否超出了阈
值,如果超过了阈值,则可以释放一些资源文件,来减小系统压力。
[0124] 在上述资源文件的文件句柄缓存于该缓存数据结构中的实现方式中,该释放过程可以为:终端响应于该数量大于数量阈值,析构该目标资源文件所属虚拟资源的缓存数据
结构中该目标资源文件的文件句柄。该析构过程也即是将销毁文件句柄的过程,将该文件
句柄销毁,将该目标资源文件的缓存信息清除,也即实现了关闭目标资源文件。对于上述对
资源文件的文件信息进行了缓存的方式中,在对该资源文件的文件句柄进行销毁时,该资
源文件的文件信息(例如,文件头信息)可以不被销毁,依然缓存有该资源文件的文件信息。
[0125] 其中,该目标资源文件的确定可以基于文件信息或读取信息实现,具体地,终端可以根据该处于被读取状态的资源文件的文件信息或读取信息中至少一项,从该处于被读取
状态的资源文件中,确定目标资源文件,从而释放该目标资源文件。
[0126] 该文件信息可以包括该目标资源文件的文件大小或该文件的文件类型等,该读取信息可以包括被读取时间、被读取时长或被读取次数等,终端则可以根据该处于被读取状
态的资源文件的被读取时间、被读取时长、被读取次数、文件大小中至少一项,从该处于被
读取状态的资源文件中,确定目标资源文件。
[0127] 例如,终端可以按照多个资源文件的被读取时间,将被读取时间在前的目标数量的资源文件确定为目标资源文件。该目标数量可以为设置的数值,也可以基于该资源文件
的数量和目标比例确定,例如,目标比例可以为50%,本申请实施例对此不作限定。又例如,
终端可以将被读取时长小于时长阈值的资源文件确定为目标资源文件。又例如,终端可以
将被读取次数小于次数阈值的资源文件确定为目标资源文件。又例如,终端可以将文件大
小小于阈值的资源文件确定为目标资源文件。在此仅提供了几种考虑单个因素的可能情
况,终端还可以综合考虑多种因素,本申请实施例对此不作限定。
[0128] 在一种可能实现方式中,资源文件可以支持多线程同时调用,为了明确每个资源文件的被读取状态,可以设置有临边界加锁机制,具体地,多个线程可能同时读取一个资源
文件,其读取该资源文件的读取位置可能相同,也可能不同,在此可以设置有,对于该资源
文件中的任一位置,支持一个线程对其进行读取,在一个线程对该位置进行读取时,其他线
程不可重复对该位置进行读取。具体地,终端可以响应于对任一虚拟资源的任一资源文件
的读取指令且该任一资源文件处于被读取状态,获取该读取指令所指示对该任一资源文件
的第一读取位置和该任一资源文件正在被读取的第二读取位置,响应于该第一读取位置和
该第二读取位置存在重合区域,将该读取指令设置为等待状态,响应于该第二读取位置的
内容被读取完成后,执行该读取指令,读取该第一读取位置的内容。
[0129] 在一种可能实现方式中,通过上述方法,终端可以从服务器获取到多个虚拟资源,该多个虚拟资源与资源包之间的对应关系可以存储于索引文件中,则终端可以获取多个虚
拟资源的多个资源包和索引文件,该索引文件包括虚拟资源与资源包的对应关系,终端可
以响应于对任一虚拟资源的显示指令时,根据该索引文件所指示的对应关系,从该多个资
源包中,获取该任一虚拟资源的资源包。终端基于该任一虚拟资源的资源包,对该资源包中
的该任一虚拟资源进行显示。
[0130] 在一种可能实现方式中,上述索引文件可以由服务器生成并发送给终端,服务器生成该索引文件的过程可以为根据该任一虚拟资源与资源包的对应关系,生成索引文件。
服务器可以响应于对任一虚拟资源的资源获取请求,向终端发送该索引文件。
[0131] 在资源包包括该任一虚拟资源对应的一个或多个资源文件的方式中,该索引文件中包括每个资源文件对应的获取路径,则读取任一资源文件时,终端可以响应于对任一虚
拟资源的任一资源文件的读取指令,按照该索引文件中该任一资源文件的获取路径,读取
该任一虚拟资源的资源包中的该任一资源文件。通过索引文件中明确的索引路径,可快速
准确的读取到相应的资源文件。
[0132] 该索引文件可以为映射表的形式,具体地,该索引文件的生成过程可以为:服务器对该任一虚拟资源中每个资源文件的获取路径和该任一虚拟资源的资源包进行哈希计算,
得到获取路径和资源包的哈希值,将该获取路径的哈希值作为键,将该资源包的哈希值作
为值,生成映射表,将该映射表作为该索引文件。上述仅以该映射表中各项信息以哈希值表
示为例进行说明,当然,其也可以版本号或者直接以上述获取路径来生成映射表。
[0133] 例如,如图6所示,对于资源文件Item1‑Item4,Item为项目的意思,在此指资源文件,每个资源文件可以对应一个获取路径Path1‑Path4,Path为路径的意思,该资源文件
Item1‑Item3被打包于Pak1中,Item4被打包于Pak2中。Pak为一种虚幻引擎(Unreal 
Engine,UE)自身的资源打包文件格式。可以分别对获取路径和Pak文件进行哈希(hash)运
算,对该路径进行哈希运算过程可以通过简介:SHA1(Secure Hash Algorithm 1,安全散列
算法1)实现,得到相应的哈希值Hash1‑Hash4进行存储,对Pak文件进行哈希时可以按照资
源源文件的内容计算hash,得到内容哈希(ContentHash1和ContentHash2)。
[0134] 在一种可能实现方式中,上述索引文件可以在终端第一次获取虚拟资源时获取得到,具体地,服务器可以响应于对任一虚拟资源的资源获取请求,且该资源获取请求为该终
端发送的第一次资源获取请求,向该终端发送该索引文件。在另一种可能实现方式中,该索
引文件也可以由服务器在目标应用的安装包构建时生成,并打包在该安装包中,在该终端
获取安装包时下载至该终端中。
[0135] 在一种可能实现方式中,上述方法可以应用于虚幻引擎(Unreal Engine,UE)中,每个虚拟资源的压缩包可以为Pak文件,通过上述方法,实现了移动平台上数千资源文件的
动态加载与卸载。同时对于用户来说,能够实时按照需求下载并加载自己需要的资源文件,
本地无需保留冗余文件,压缩了包体大小,提升了用户体验。该资源文件的大小在500千字
节(Kilobyte,kB或k)左右,文件小,下载实时,效率高。且通过键值对(Key‑Value)形式的资
源加载/卸载机制,将查询复杂度从O(n)降低到了O(1),且只加载当前会用到的资源。克服
了UE引擎自身的缺陷。
[0136] 下面通过图7、图8和图9,对上述方法的流程进行介绍。在该图7、图8和图9中出现的FPakFile、FpakPlatformFile为数据结构,用于缓存文件信息,GetShareReader、
FarchiveFileReaderGeneric*、BeginAccess和EndAccess等均为命令参数或数据结构参
数,ContentHash1.pak为pak格式的文件的文件名,以哈希值表示,FpakFileHandle为文件
处理对象。其中,参数解释如下:Hash:哈希;Content:内容;null:零值;File:文件;
platform:平台;Mount:挂载命令;unmount:卸载命令;Handle:处理;Get:获取;Share:分
享;Reader:读取器;Map:地图,映射;archive:存档;Generic:普通的;通用的;Thread:线
程;OpenRead:启动读取;archive:存档;Generic:普通的;通用的;begin:开始;end:结束;
Access:访问。
[0137] 如图7所示,对于资源包中查找资源文件进行访问,在上层查找不到文件时,则可以通过索引文件查询相应的资源文件路径,从而访问资源文件。如果再找不到,则可以再去
下一层进行查询。对于多线程访问,需要进行加锁,也即是,对一个资源文件的同一个位置
的内容进行访问,需要等待,等一个线程访问结束,另一个线程再访问。对于资源包中的资
源文件进行访问时,可以创建数据结构(FPakFile),通过该数据结构来缓存文件句柄。在一
种可能实现方式中,终端也可以通过创建并缓存缓存该资源文件的文件句柄以及相关信息
的数据结构(FPakFile)。如图8所示,对于资源文件的文件句柄,文件被访问时即缓存于
ReaderMap中,在本申请实施例中,可以从操作系统(Operating System,OS)文件系统按需
动态清空ReaderMap,也即是,在判断处于被访问状态的资源文件的数量达到阈值时,即可
清空ReaderMap,来释放缓存。如图9所示,在对资源文件进行访问时,对资源进行了相关操
作,可以判断当前线程文件句柄是否被关闭,如果是,则可以重新打开文件句柄,并将资源
文件的被访问的总计数+1,如果否,则可以访问该资源文件,正在访问的资源文件的访问计
数+1,并记录访问时间,用户如果对文件进行关闭操作,则可以将访问计数‑1,关闭该线程。
对于动态释放资源文件(资源卸载)的过程,对资源进行相关操作,则资源文件的总计数+1,
并判断是否到达打开文件上限阈值,如果是,可以遍历所有的资源Pak,并释放当前打开的
50%的文件句柄。具体可以进行多项判定操作以实现释放。
[0138] 本申请实施例中,每个虚拟资源对应一个资源包,在需要某个虚拟资源时可以向服务器获取该虚拟资源的资源包以进行显示,实现了单个虚拟资源的获取和显示,单个虚
拟资源的资源包很小,获取过程无需花费很长时间,几乎可以忽略不计,进而可以快速获取
到虚拟资源进行显示,获取效率很高,且不会获取到冗余资源,减少了不必要的传输资源消
耗,能够更准确地满足用户需求,且由于获取和显示无需过多时间,显示效果好。
[0139] 上述所有可选技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
[0140] 上述资源显示方法和资源发送方法可以应用于电子游戏场景中,上述虚拟资源为虚拟对象的虚拟道具,资源获取请求可以为道具获取请求,在该场景中,该资源显示方法可
以包括:响应于对虚拟对象的任一虚拟道具的获取指令,向服务器发送道具获取请求;接收
该服务器响应于该道具获取请求发送的道具资源包,该道具资源包为该任一虚拟道具的资
源包,每个虚拟道具对应一个道具资源包;基于该道具资源包,在该虚拟对象的目标位置上
显示该任一虚拟道具。
[0141] 在一种可能实现方式中,该道具资源包包括该任一虚拟道具对应的一个或多个资源文件;该基于该道具资源包,在该虚拟对象的目标位置上显示该任一虚拟道具,包括:对
该道具资源包进行解析,得到该任一虚拟道具对应的资源文件;读取该任一虚拟道具对应
的资源文件,对该资源文件中该任一虚拟道具的贴图进行渲染。
[0142] 在一种可能实现方式中,该读取该任一虚拟道具对应的资源文件,包括:响应于对该资源文件的第一次读取指令,创建该资源文件的文件句柄,缓存该文件句柄;或,响应于
对该资源文件的读取指令且该读取指令不是第一次读取指令,获取该资源文件对应的文件
句柄,缓存该文件句柄。
[0143] 在一种可能实现方式中,该道具资源包包括该任一虚拟道具对应的一个或多个资源文件,该方法还包括:获取当前处于被读取状态的资源文件的数量;响应于该数量大于数
量阈值,释放该处于被读取状态的资源文件中的目标资源文件。
[0144] 在一种可能实现方式中,每个虚拟道具对应一个缓存数据结构,资源文件的文件句柄缓存于该缓存数据结构中;该响应于该数量大于数量阈值,释放该处于被读取状态的
资源文件中的目标资源文件,包括:响应于该数量大于数量阈值,析构该目标资源文件所属
虚拟道具的缓存数据结构中该目标资源文件的文件句柄。
[0145] 在一种可能实现方式中,该释放该处于被读取状态的资源文件中的目标资源文件,包括:根据该处于被读取状态的资源文件的文件信息或读取信息中至少一项,从该处于
被读取状态的资源文件中,确定目标资源文件;释放该目标资源文件。
[0146] 在一种可能实现方式中,该根据该处于被读取状态的资源文件的文件信息或读取信息中至少一项,从该处于被读取状态的资源文件中,确定目标资源文件,包括:根据该处
于被读取状态的资源文件的被读取时间、被读取时长、被读取次数、文件大小中至少一项,
从该处于被读取状态的资源文件中,确定目标资源文件。
[0147] 在一种可能实现方式中,该方法还包括:响应于目标应用的启动指令,向该服务器发送资源获取请求;接收该服务器发送的目标虚拟道具的道具资源包,该目标虚拟道具的
优先级高于阈值。
[0148] 在一种可能实现方式中,该道具资源包包括该任一虚拟道具对应的一个或多个资源文件;该方法还包括:响应于对任一虚拟道具的任一资源文件的读取指令且该任一资源
文件处于被读取状态,获取该读取指令所指示对该任一资源文件的第一读取位置和该任一
资源文件正在被读取的第二读取位置;响应于该第一读取位置和该第二读取位置存在重合
区域,将该读取指令设置为等待状态;响应于该第二读取位置的内容被读取完成后,执行该
读取指令,读取该第一读取位置的内容。
[0149] 在一种可能实现方式中,该方法还包括:获取多个虚拟道具的多个道具资源包和索引文件,该索引文件包括虚拟道具与道具资源包的对应关系;响应于对任一虚拟道具的
显示指令时,根据该索引文件所指示的对应关系,从该多个道具资源包中,获取该任一虚拟
道具的道具资源包;基于该任一虚拟道具的道具资源包,对该道具资源包中的该任一虚拟
道具进行显示。
[0150] 在一种可能实现方式中,该道具资源包包括该任一虚拟道具对应的一个或多个资源文件,该索引文件中包括每个资源文件对应的获取路径;该方法还包括:响应于对任一虚
拟道具的任一资源文件的读取指令,按照该索引文件中该任一资源文件的获取路径,读取
该任一虚拟道具的道具资源包中的该任一资源文件。
[0151] 相应地,上述资源发送方法可以应用于服务器,该方法可以包括:接收道具获取请求;响应于该道具获取请求,从虚拟对象的多个虚拟道具的道具资源包中,提取该道具获取
请求所指示的虚拟道具的道具资源包,每个虚拟道具对应一个道具资源包;向终端发送该
道具资源包。
[0152] 在一种可能实现方式中,该接收道具获取请求之前,该方法还包括:
[0153] 根据任一虚拟道具的蓝图文件,确定该任一虚拟道具对应的资源文件;
[0154] 基于该任一虚拟道具对应的资源文件,生成该任一虚拟道具的道具资源包。
[0155] 在一种可能实现方式中,该接收道具获取请求之前,该方法还包括:根据该任一虚拟道具与道具资源包的对应关系,生成索引文件;相应地,该方法还包括:响应于对任一虚
拟道具的道具获取请求,向终端发送该索引文件。
[0156] 在一种可能实现方式中,该任一虚拟道具对应一个或多个资源文件,该索引文件中包括每个资源文件对应的获取路径;该根据该任一虚拟道具与道具资源包的对应关系,
生成索引文件,包括:对该任一虚拟道具中每个资源文件的获取路径和该任一虚拟道具的
道具资源包进行哈希计算,得到获取路径和道具资源包的哈希值;将该获取路径的哈希值
作为键,将该道具资源包的哈希值作为值,生成映射表,将该映射表作为该索引文件。
[0157] 在一种可能实现方式中,该响应于对任一虚拟道具的道具获取请求,向终端发送该索引文件,包括:响应于对任一虚拟道具的道具获取请求,且该道具获取请求为该终端发
送的第一次道具获取请求,向该终端发送该索引文件。
[0158] 下面通过图10所示实施例,对上述资源显示方法和资源发送方法应用于电子游戏场景时的具体流程进行说明,在该实施例中,上述虚拟资源为虚拟对象的虚拟道具,资源获
取请求可以为道具获取请求。具体地,该方法可以包括以下步骤。
[0159] 1001、终端接收对虚拟对象的任一虚拟道具的获取指令。
[0160] 在本申请实施例中,虚拟资源为虚拟对象的虚拟道具,虚拟道具不再被打包在一个道具资源包中,每个虚拟道具可以对应一个道具资源包。如果用户想要查看任一虚拟道
具时,可以对该任一虚拟道具进行获取操作,终端接收到对任一虚拟道具的获取指令,可以
对其进行响应,通过下述步骤1002,发送道具获取请求以获取该虚拟道具。
[0161] 例如,如图4和图5所示,用户可以选择虚拟道具为虚拟对象换装或换装饰品,该虚拟道具可以为虚拟饰品道具或虚拟服装道具,用户可以选择一种帽子道具,从而终端接收
到对该帽子道具的获取指令,并执行后续步骤,来获取该帽子道具。
[0162] 1002、终端响应于对虚拟对象的任一虚拟道具的获取指令,向服务器发送道具获取请求。
[0163] 1003、服务器接收道具获取请求。
[0164] 1004、服务器响应于该道具获取请求,从虚拟对象的多个虚拟资源的道具资源包中,提取该道具获取请求所指示的虚拟道具的道具资源包,每个虚拟道具对应一个资源包。
[0165] 1005、服务器向终端发送该道具资源包。
[0166] 1006、终端接收该服务器响应于该道具获取请求发送的道具资源包,该道具资源包为该任一虚拟道具的道具资源包。
[0167] 1007、终端基于该道具资源包,在该虚拟对象的目标位置上显示该任一虚拟道具。
[0168] 其中,该终端通过上述步骤,获取到虚拟道具的道具资源包后,可以基于道具资源包,为该虚拟对象进行换装,以使得后续显示的虚拟对象配备有该虚拟道具。该目标位置可
以与该虚拟道具对应,例如,帽子道具对应的目标位置为虚拟对象的头部,裤子道具对应的
目标位置为该虚拟对象的下身等。
[0169] 需要说明的是,上述步骤1001‑步骤1007均与上述步骤301‑步骤307同理,只是虚拟资源为虚拟对象的虚拟道具,资源获取请求为道具获取请求,资源包为道具资源包,在此
不多做赘述。
[0170] 图11是本申请实施例提供的一种资源显示装置的结构示意图,参见图11,该装置包括:
[0171] 发送模块1101,用于响应于对任一虚拟资源的获取指令,向服务器发送资源获取请求;
[0172] 接收模块1102,用于接收该服务器响应于该资源获取请求发送的资源包,该资源包为该任一虚拟资源的资源包,每个虚拟资源对应一个资源包;
[0173] 显示模块1103,用于基于该资源包,对该资源包中的该任一虚拟资源进行显示。
[0174] 在一种可能实现方式中,该资源包包括该任一虚拟资源对应的一个或多个资源文件;
[0175] 该显示模块1103,用于:
[0176] 对该资源包进行解析,得到该任一虚拟资源对应的资源文件;
[0177] 读取该任一虚拟资源对应的资源文件,对该资源文件中该任一虚拟资源的贴图进行渲染。
[0178] 在一种可能实现方式中,该显示模块1103,用于:
[0179] 响应于对该资源文件的第一次读取指令,创建该资源文件的文件句柄,缓存该文件句柄;或,
[0180] 响应于对该资源文件的读取指令且该读取指令不是第一次读取指令,获取该资源文件对应的文件句柄,缓存该文件句柄。
[0181] 在一种可能实现方式中,该资源包包括该任一虚拟资源对应的一个或多个资源文件,该装置还包括:
[0182] 第一获取模块,用于获取当前处于被读取状态的资源文件的数量;
[0183] 释放模块,用于响应于该数量大于数量阈值,释放该处于被读取状态的资源文件中的目标资源文件。
[0184] 在一种可能实现方式中,每个虚拟资源对应一个缓存数据结构,资源文件的文件句柄缓存于该缓存数据结构中;
[0185] 该释放模块用于响应于该数量大于数量阈值,析构该部分资源文件所属虚拟资源的缓存数据结构中该目标资源文件的文件句柄。
[0186] 在一种可能实现方式中,该释放模块用于:
[0187] 根据该处于被读取状态的资源文件的文件信息或读取信息中至少一项,从该处于被读取状态的资源文件中,确定目标资源文件;
[0188] 释放该目标资源文件。
[0189] 在一种可能实现方式中,该释放模块用于根据该处于被读取状态的资源文件的被读取时间、被读取时长、被读取次数、文件大小中至少一项,从该处于被读取状态的资源文
件中,确定目标资源文件。
[0190] 在一种可能实现方式中,该发送模块1101还用于响应于目标应用的启动指令,向该服务器发送资源获取请求;
[0191] 该接收模块1102,用于接收该服务器发送的目标虚拟资源的资源包,该目标虚拟资源的优先级高于阈值。
[0192] 在一种可能实现方式中,该资源包包括该任一虚拟资源对应的一个或多个资源文件;
[0193] 该装置还包括:
[0194] 第二获取模块,用于响应于对任一虚拟资源的任一资源文件的读取指令且该任一资源文件处于被读取状态,获取该读取指令所指示对该任一资源文件的第一读取位置和该
任一资源文件正在被读取的第二读取位置;
[0195] 设置模块,用于响应于该第一读取位置和该第二读取位置存在重合区域,将该读取指令设置为等待状态;
[0196] 第一读取模块,用于响应于该第二读取位置的内容被读取完成后,执行该读取指令,读取该第一读取位置的内容。
[0197] 在一种可能实现方式中,该装置还包括:
[0198] 第三获取模块,用于获取多个虚拟资源的多个资源包和索引文件,该索引文件包括虚拟资源与资源包的对应关系;
[0199] 该第三获取模块,还用于响应于对任一虚拟资源的显示指令时,根据该索引文件所指示的对应关系,从该多个资源包中,获取该任一虚拟资源的资源包;
[0200] 该显示模块1103,还用于基于该任一虚拟资源的资源包,对该资源包中的该任一虚拟资源进行显示。
[0201] 在一种可能实现方式中,该资源包包括该任一虚拟资源对应的一个或多个资源文件,该索引文件中包括每个资源文件对应的获取路径;
[0202] 该装置还包括:
[0203] 第二读取模块,用于响应于对任一虚拟资源的任一资源文件的读取指令,按照该索引文件中该任一资源文件的获取路径,读取该任一虚拟资源的资源包中的该任一资源文
件。
[0204] 本申请实施例中,每个虚拟资源对应一个资源包,在需要某个虚拟资源时可以向服务器获取该虚拟资源的资源包以进行显示,实现了单个虚拟资源的获取和显示,单个虚
拟资源的资源包很小,获取过程无需花费很长时间,几乎可以忽略不计,进而可以快速获取
到虚拟资源进行显示,获取效率很高,且不会获取到冗余资源,减少了不必要的传输资源消
耗,能够更准确地满足用户需求,且由于获取和显示无需过多时间,显示效果好。
[0205] 需要说明的是:上述实施例提供的资源显示装置在显示资源时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模
块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功
能。另外,上述实施例提供的资源显示装置与资源显示方法实施例属于同一构思,其具体实
现过程详见方法实施例,这里不再赘述。
[0206] 图12是本申请实施例提供的一种资源发送装置的结构示意图,参见图12,该装置包括:
[0207] 接收模块1201,用于接收资源获取请求;
[0208] 提取模块1202,用于响应于该资源获取请求,从多个虚拟资源的资源包中,提取该资源获取请求所指示的虚拟资源的资源包,每个虚拟资源对应一个资源包;
[0209] 发送模块1203,用于向终端发送该资源包。
[0210] 在一种可能实现方式中,该装置还包括:
[0211] 确定模块,用于根据任一虚拟资源的蓝图文件,确定该任一虚拟资源对应的资源文件;
[0212] 第一生成模块,用于基于该任一虚拟资源对应的资源文件,生成该任一虚拟资源的资源包。
[0213] 在一种可能实现方式中,该装置还包括:
[0214] 第二生成模块,用于根据该任一虚拟资源与资源包的对应关系,生成索引文件;
[0215] 该发送模块1203,还用于响应于对任一虚拟资源的资源获取请求,向终端发送该索引文件。
[0216] 在一种可能实现方式中,该任一虚拟资源对应一个或多个资源文件,该索引文件中包括每个资源文件对应的获取路径;
[0217] 该第二生成模块用于:
[0218] 对该任一虚拟资源中每个资源文件的获取路径和该任一虚拟资源的资源包进行哈希计算,得到获取路径和资源包的哈希值;
[0219] 将该获取路径的哈希值作为键,将该资源包的哈希值作为值,生成映射表,将该映射表作为该索引文件。
[0220] 在一种可能实现方式中,该发送模块1203用于响应于对任一虚拟资源的资源获取请求,且该资源获取请求为该终端发送的第一次资源获取请求,向该终端发送该索引文件。
[0221] 本申请实施例中,每个虚拟资源对应一个资源包,服务器可以根据单个虚拟资源的资源获取请求,向其发送单个虚拟资源的资源包,实现了单个虚拟资源的发送,单个虚拟
资源的资源包很小,发送过程无需花费很长时间,几乎可以忽略不计,进而终端可以快速获
取到虚拟资源进行显示,发送效率很高,且终端不会获取到冗余资源,减少了不必要的传输
资源消耗,能够更准确地满足用户需求。
[0222] 需要说明的是:上述实施例提供的资源发送装置在发送资源时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模
块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功
能。另外,上述实施例提供的资源发送装置与资源发送方法实施例属于同一构思,其具体实
现过程详见方法实施例,这里不再赘述。
[0223] 图13是本申请实施例提供的一种终端的结构示意图。该终端1300可以是:智能手机、平板电脑、MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩
标准音频层面3)播放器、MP4(Moving Picture Experts Group Audio Layer IV,动态影像
专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端1300还可能被称为用户设
备、便携式终端、膝上型终端、台式终端等其他名称。
[0224] 通常,终端1300包括有:一个或多个处理器1301和一个或多个存储器1302。
[0225] 处理器1301可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1301可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-
Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程
逻辑阵列)中的至少一种硬件形式来实现。处理器1301也可以包括主处理器和协处理器,主
处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing 
Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在
一些实施例中,处理器1301可以在集成有GPU(Graphics Processing Unit,图像处理器),
GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1301还可以包
括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的
计算操作。
[0226] 存储器1302可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1302还可包括高速随机存取存储器,以及非易失性存储器,比如一个
或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1302中的非暂态的计算机可
读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1301所执行以实现本申
请中方法实施例提供的资源显示方法,或资源发送方法中终端侧所执行的方法操作。
[0227] 在一些实施例中,终端1300还可选包括有:外围设备接口1303和至少一个外围设备。处理器1301、存储器1302和外围设备接口1303之间可以通过总线或信号线相连。各个外
围设备可以通过总线、信号线或电路板与外围设备接口1303相连。具体地,外围设备包括:
射频电路1304、显示屏1305、摄像头组件1306、音频电路1307、定位组件1308和电源1309中
的至少一种。
[0228] 外围设备接口1303可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1301和存储器1302。在一些实施例中,处理器1301、存储器1302和外围
设备接口1303被集成在同一芯片或电路板上;在一些其他实施例中,处理器1301、存储器
1302和外围设备接口1303中的任意一个或两个可以在单独的芯片或电路板上实现,本实施
例对此不加以限定。
[0229] 射频电路1304用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1304通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1304将电信
号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路
1304包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解
码芯片组、用户身份模块卡等等。射频电路1304可以通过至少一种无线通信协议来与其它
终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及
5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电
路1304还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请
对此不加以限定。
[0230] 显示屏1305用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1305是触摸显示屏时,显示屏1305还具有采集在
显示屏1305的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处
理器1301进行处理。此时,显示屏1305还可以用于提供虚拟按钮和/或虚拟键盘,也称软按
钮和/或软键盘。在一些实施例中,显示屏1305可以为一个,设置终端1300的前面板;在另一
些实施例中,显示屏1305可以为至少两个,分别设置在终端1300的不同表面或呈折叠设计;
在再一些实施例中,显示屏1305可以是柔性显示屏,设置在终端1300的弯曲表面上或折叠
面上。甚至,显示屏1305还可以设置成非矩形的不规则图形,也即异形屏。显示屏1305可以
采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light‑Emitting Diode,
有机发光二极管)等材质制备。
[0231] 摄像头组件1306用于采集图像或视频。可选地,摄像头组件1306包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在
一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄
像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广
角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合
拍摄功能。在一些实施例中,摄像头组件1306还可以包括闪光灯。闪光灯可以是单色温闪光
灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于
不同色温下的光线补偿。
[0232] 音频电路1307可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1301进行处理,或者输入至射频电路1304以实现语音通
信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端1300的不同部位。
麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1301或射频
电路1304的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声
器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将
电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1307还可
以包括耳机插孔。
[0233] 定位组件1308用于定位终端1300的当前地理位置,以实现导航或LBS(Location Based Service,基于位置的服务)。定位组件1308可以是基于美国的GPS(Global 
Positioning System,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的
伽利略系统的定位组件。
[0234] 电源1309用于为终端1300中的各个组件进行供电。电源1309可以是交流电、直流电、一次性电池或可充电电池。当电源1309包括可充电电池时,该可充电电池可以支持有线
充电或无线充电。该可充电电池还可以用于支持快充技术。
[0235] 在一些实施例中,终端1300还包括有一个或多个传感器1310。该一个或多个传感器1310包括但不限于:加速度传感器1311、陀螺仪传感器1312、压力传感器1313、指纹传感
器1314、光学传感器1315以及接近传感器1316。
[0236] 加速度传感器1311可以检测以终端1300建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1311可以用于检测重力加速度在三个坐标轴上的分量。处理器
1301可以根据加速度传感器1311采集的重力加速度信号,控制显示屏1305以横向视图或纵
向视图进行用户界面的显示。加速度传感器1311还可以用于游戏或者用户的运动数据的采
集。
[0237] 陀螺仪传感器1312可以检测终端1300的机体方向及转动角度,陀螺仪传感器1312可以与加速度传感器1311协同采集用户对终端1300的3D动作。处理器1301根据陀螺仪传感
器1312采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍
摄时的图像稳定、游戏控制以及惯性导航。
[0238] 压力传感器1313可以设置在终端1300的侧边框和/或显示屏1305的下层。当压力传感器1313设置在终端1300的侧边框时,可以检测用户对终端1300的握持信号,由处理器
1301根据压力传感器1313采集的握持信号进行左右手识别或快捷操作。当压力传感器1313
设置在显示屏1305的下层时,由处理器1301根据用户对显示屏1305的压力操作,实现对UI
界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜
单控件中的至少一种。
[0239] 指纹传感器1314用于采集用户的指纹,由处理器1301根据指纹传感器1314采集到的指纹识别用户的身份,或者,由指纹传感器1314根据采集到的指纹识别用户的身份。在识
别出用户的身份为可信身份时,由处理器1301授权该用户执行相关的敏感操作,该敏感操
作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1314可以被设
置终端1300的正面、背面或侧面。当终端1300上设置有物理按键或厂商Logo时,指纹传感器
1314可以与物理按键或厂商Logo集成在一起。
[0240] 光学传感器1315用于采集环境光强度。在一个实施例中,处理器1301可以根据光学传感器1315采集的环境光强度,控制显示屏1305的显示亮度。具体地,当环境光强度较高
时,调高显示屏1305的显示亮度;当环境光强度较低时,调低显示屏1305的显示亮度。在另
一个实施例中,处理器1301还可以根据光学传感器1315采集的环境光强度,动态调整摄像
头组件1306的拍摄参数。
[0241] 接近传感器1316,也称距离传感器,通常设置在终端1300的前面板。接近传感器1316用于采集用户与终端1300的正面之间的距离。在一个实施例中,当接近传感器1316检
测到用户与终端1300的正面之间的距离逐渐变小时,由处理器1301控制显示屏1305从亮屏
状态切换为息屏状态;当接近传感器1316检测到用户与终端1300的正面之间的距离逐渐变
大时,由处理器1301控制显示屏1305从息屏状态切换为亮屏状态。
[0242] 本领域技术人员可以理解,图13中示出的结构并不构成对终端1300的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
[0243] 图14是本申请实施例提供的一种服务器的结构示意图,该服务器1400可因配置或性能不同而产生比较大的差异,可以包括一个或多个处理器(Central Processing Units,
CPU)1401和一个或多个的存储器1402,其中,该一个或多个存储器1402中存储有至少一条
指令,该至少一条指令由该一个或多个处理器1401加载并执行以实现上述各个方法实施例
提供的资源发送方法,或资源显示方法中服务器侧的方法操作。当然,该服务器1400还可以
具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器
1400还可以包括其他用于实现设备功能的部件,在此不做赘述。
[0244] 在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由处理器执行以完成上述实施例中的资源显示方法或资源发送方法。例如,该
计算机可读存储介质可以是只读存储器(Read‑Only Memory,ROM)、随机存取存储器
(Random Access Memory,RAM)、只读光盘(Compact Disc Read‑Only Memory,CD‑ROM)、磁
带、软盘和光数据存储设备等。
[0245] 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储
介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0246] 上述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。