1.本技术涉及计算机领域,尤其涉及一种资源清理方法和资源加载方法。
背景技术:2.随着计算机技术的发展,游戏引擎越来越受到广大的游戏开发者的青睐。游戏引擎是一些已编写好的可编辑电脑游戏系统或者一些交互式实时应用程序的核心组件。大多数游戏引擎集成了图形、声音、物理和人工智能等功能,这些功能开放给开发人员,使得开发人员可以在其基础上进行游戏开发,降低开发复杂性。例如,unity是由unity technologies研发的跨平台2d/3d游戏引擎,可用于开发windows、macos及linux平台的单机游戏,playstation、xbox、任天堂和switch等游戏主机平台的视频游戏,及ios、android等移动设备的游戏。
3.在使用游戏引擎开发的游戏项目中,由于功能的不确定性,导致项目使用的资源也存在不确定,然而这些没有使用的资源如果不清理掉的话必然会导致要么安装包体增大,要么更新包体增大。发明人了解的做法是游戏开发结束后,上线之前做统一的资源清理,把无用的资源删除,然而会存在误删、漏删、费事费力等问题。
技术实现要素:4.本技术实施例的目的是提供一种资源清理方法、系统、计算机设备及计算机可读存储介质,用于解决上述问题。
5.本技术实施例的一个方面提供了一种资源清理方法,所述方法包括:
6.获取多个游戏引擎的资源使用信息表,所述资源使用信息表用于记录已使用的多个资源;
7.根据所述资源使用信息表和资源库,生成无用资源列表,所述无用资源列表用于记录一个或多个无用资源;及
8.根据指示信息对资源进行清理。
9.可选的,各个游戏引擎被注入资源使用监测代码;
10.所述获取多个游戏引擎的资源使用信息表,包括:
11.获取所述各个游戏引擎在全用例模式下的资源使用信息,所述资源使用信息通过资源使用监测代码监测得到;及
12.整合所述各个游戏引擎在全用例模式下的资源使用信息,以得到所述资源使用信息表。
13.可选的,所述资源使用信息表包括所述多个资源中的各个资源的标识;
14.所述根据所述资源使用信息表和资源库,生成无用资源列表,包括:
15.判断所述资源库中的各个资源的标识是否在所述资源使用信息表中被查找到;及
16.若所述资源库中的一个或多个资源的标识在所述资源使用信息表未被查找到,则判定所述一个或多个资源为所述一个或多个无用资源,并生成所述无用资源列表。
17.可选的,所述指示信息包括删除指令或预设规则;
18.所述根据指示信息对资源进行清理,包括:
19.若接收删除指令或触发预设规则,则确定清理所述一个或多个无用资源。
20.可选的,所述根据指示信息对资源进行清理,还包括:
21.将所述一个或多个无用资源移动到无用资源库中,以完成所述资源清理操作。
22.本技术实施例的一个方面又提供了一种资源清理系统,所述系统包括:
23.获取模块,用于获取多个游戏引擎的资源使用信息表,所述资源使用信息表用于记录已使用的多个资源;
24.生成模块,用于根据所述资源使用信息表和资源库,生成无用资源列表,所述无用资源列表用于记录一个或多个无用资源;及
25.清理模块,用于根据指示信息对资源进行清理。
26.本技术实施例的一个方面又提供了一种资源加载方法,用于服务器中,所述方法包括:
27.获取电子设备发送的下载请求,所述下载请求用于下载待加载资源;
28.根据所述下载请求,确定所述待加载资源是否记录在资源更新列表中;
29.若所述待加载资源未记录在所述资源更新列表中,则确定所述待加载资源是否记录在无用资源列表中,所述无用资源列表用于记录无用资源库中的一个或多个无用资源;及
30.若所述待加载资源记录在所述无用资源列表中,则返回相应的下载地址给所述电子设备,以使所述电子设备根据所述相应的下载地址下载并加载所述待加载资源。
31.可选的,还包括:
32.若所述待加载资源记录在所述资源更新列表中,则返回相应的下载地址返回给所述电子设备。
33.可选的,还包括:
34.将所述待加载资源的资源信息更新到所述资源更新列表中;及
35.将位于所述无用资源库中的所述待加载资源移动到所述资源库中;
36.其中,所述资源库用于存储所述资源更新列表记录中的各个资源。
37.可选的,还包括:
38.若所述待加载资源未记录在所述无用资源列表中,则返回空地址给所述电子设备。
39.本技术实施例的一个方面又提供了一种资源加载方法,用于电子设备中,所述方法包括:
40.判断所述电子设备是否已存储待加载资源;
41.若所述电子设备未存储所述待加载资源,则向服务器请求返回所述待加载资源的下载地址;其中,所述待加载资源的下载地址从资源更新列表中查找得到,或从所述资源更新列表中查找失败的情形下,从无用资源列表中查找得到;及
42.接收所述服务器返回的下载地址,并根据所述下载地址下载和加载所述待加载资源。
43.可选的,还包括:
44.若所述下载地址为空地址,则显示弹框,所述弹框用于提示所述待加载资源丢失。
45.本技术实施例的一个方面又提供了一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时用于实现如上述资源清理方法或资源加载方法的步骤。
46.本技术实施例的一个方面又提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如上述资源清理方法或资源加载方法的步骤。
47.本技术实施例提供的资源清理方法、系统、设备及计算机可读存储介质,包括如下优点:
48.通过收集各个电子设备的游戏引擎使用过的资源使用信息,自动分析出资源库中的无用资源,提高清理效率、防止误删除和漏删除,并避免了人工清理导致的如下问题:第一,开发时间过久,已忘记哪些资源使用了哪些资源没有使用。第二,假设中途有人离开,那么没人知道哪些资源可以删除。第三,人工的贸然删除存在游戏崩溃的风险,读完整套代码再做删除除了工作量巨大,且部分使用资源并不能从代码中看出来,从而存在资源的误删除和漏删除。
附图说明
49.图1示意性示出了根据本技术实施例的资源清理方法的应用环境图;
50.图2示意性示出了根据本技术实施例一的资源清理方法的流程图;
51.图3为图2中步骤s200的子步骤流程图;
52.图4为图2中步骤s202的子步骤流程图;
53.图5为图2中步骤s204的子步骤流程图;
54.图6为显示于开发人员的客户端的无用资源列表的图形界面;
55.图7示意性示出了根据本技术实施例二的资源加载方法的流程图;
56.图8至图10示意性示出了根据本技术实施例二的资源加载方法的新增步骤流程图;
57.图11示意性示出了用于实现本技术实施例二中的资源加载方法的应用流程图;
58.图12示意性示出了根据本技术实施例三的资源加载方法的流程图;
59.图13示意性示出了用于实现本技术实施例三中的资源加载方法的应用流程图;
60.图14示意性示出了根据本技术实施例四的资源清理系统的框图;
61.图15示意性示出了根据本技术实施例五的资源加载系统的框图;
62.图16示意性示出了根据本技术实施例六的资源加载系统的框图;
63.图17示意性示出了根据本技术实施例七的适于实现资源清理方法的计算机设备的硬件架构示意图。
具体实施方式
64.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前
提下所获得的所有其他实施例,都属于本技术保护的范围。
65.需要说明的是,在本技术实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本技术要求的保护范围之内。
66.在本技术的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本技术及区别每一步骤,因此不能理解为对本技术的限制。
67.经发明人分析,通常在游戏项目研发过程中,由于功能的不确定性,导致项目使用的资源也存在不确定,然而这些没有使用的资源如果不清理掉的话必然会导致要么安装包体增大,要么更新包体增大。发明人了解的做法是游戏开发结束后,上线前期会做统一的资源清理,把无用的资源删除,然而会存在以下问题:
68.第一,开发时间过久,已忘记哪些资源使用了哪些资源没有使用。
69.第二,假设中途有人离开,那么没人知道哪些资源可以删除。
70.第三,针对本地化项目资源清理更是一大难题,本地化研发团队没有参与项目的开发,即使获取到的各个版本存在大量无用资源的情况下也无可奈何,因为贸然删除存在游戏崩溃的风险,读完整套代码再做删除除了工作量巨大,并且部分使用资源并不能从代码中看出来,从而可能存在误删除和漏删除风险。
71.第四,手动删除资源误操作的时候资源丢失,同样需要手动补充。
72.第五,客户端资源丢失时只能找玩家获取信息然后复现,看日志获取丢失资源信息,最后再去补充资源,费时费力。
73.针对上述发现的问题,本技术旨在提供资源清理方案:
74.第一,本方案删除资源是基于游戏全用力阶段资源的使用信息做排除的删除,被删除的资源一定是全用例阶段没有被使用到的,删除属于有根据删除。
75.第二,本方案检测到需要清理的资源时并不会直接删除资源,而是会列出无用资源,由开发人员确认后再删除,因此,假设存在部分资源开发人员确定使用的但是系统检测到没有使用,则可以反向证明全用例测试不完整,并没有覆盖所有情况。
76.第三,本方案清理资源是依赖全用例测试的,但是全用例测试过程属于所有项目必然经历的过程,因此不算增加研发任务,但是全用例之后可以立即清理资源,可以节约大量清理无用资源的时间和人力。
77.第四,本方案并不会解释删除资源,而是将需删除的资源迁移到无用资源库,如果存在客户端发现资源丢失,客户端会启动资源下载线程去无用资源库下载,并且无用资源库会把该资源移动到热更新资源库中,实现资源动态补给。
78.第五,针对客户端资源缺失并且无用资源库也没有的资源,资源服务器自动报警通知开发资源丢失。开发人员能第一时间知道丢失的资源并且补充到资源库。
79.以下为本技术的术语解释:
80.全用例:表示新版本app正式上线前,对app所有功能做的全面测试,也称全用例测试。
81.游戏引擎:指一些已编写好的可编辑电脑游戏系统或交互式实时图像应用程序的核心组件。这些系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地做出游戏程式而不用由零开始。大部分都支持多种操作平台,如linux、mac os x、微软windows。游戏引擎包含以下系统:渲染引擎(即“渲染器”,含二维图像引擎和三维图像引擎)、物理引擎、碰撞检测系统、音效、脚本引擎、电脑动画、人工智能、网络引擎以及场景管理。
82.资源,可以包括图片、shader(着色代码)、材质、模型、动画等。
83.图1示意性示出了根据本技术实施例的资源清理方法的环境架构图。在示例性的实施例中,如图1所示,服务器2可以通过网络4连接多个电子设备6。
84.服务器2可以通过一个或多个网络4提供资源管理服务,如资源清理。
85.服务器2,可以由单个或多个计算设备组成,如,机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。所述一个或多个计算机设备可以包括虚拟化计算实例。计算机设备可以基于定义用于仿真的特定软件(例如,操作系统,专用应用程序,服务器)的虚拟映像和/或其他数据来加载虚拟机。随着对不同类型的处理服务的需求改变,可以在所述一个或多个计算机设备上加载和/或终止不同的虚拟机。
86.网络4,可以包括各种网络设备,例如路由器,交换机,多路复用器,集线器,调制解调器,网桥,中继器,防火墙,代理设备和/或等等。网络4可以包括物理链路,例如同轴电缆链路,双绞线电缆链路,光纤链路,它们的组合和/或类似物。网络4可以包括无线链路,例如蜂窝链路,卫星链路,wi-fi链路和/或类似物。
87.电子设备6可以被配置为访问服务器2。电子设备6可以包括可以游戏引擎的任何类型的计算机设备,如:智能手机,平板设备,膝上型计算机,智能设备(例如,智能手表,智能眼镜),虚拟现实,游戏设备,机顶盒,数字流设备,车载终端,智能电视,电视盒,mp4(运动图像专家组音频层iv)播放器等。
88.电子设备6,可以运行windows系统、安卓(android
tm
)系统或ios系统等操作系统。另外,用户还可以根据需要安装各种应用程序、程序组件(如游戏引擎)。基于上述程序或程序组件,可以实现各类功能,如游戏功能,或资源监测功能。游戏引擎,是为运行游戏应用的核心组件,用于提供各种运行所需的各种工具,如一些已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件。在本技术中,游戏引擎可以负责提供游戏运行时,不同状态下游戏使用的资源使用信息,如当前状态加载了什么资源,释放了什么资源等。
89.下文,本技术将提供资源清理方法、加载方法、系统、计算机设备和计算机可读存储介质。
90.实施例一
91.图2示意性示出了根据本技术实施例一的资源清理方法的流程图。所述方法可以执行在服务器2中。如图2所示,该资源清理方法可以包括步骤s200~s204,其中:
92.步骤s200,获取多个游戏引擎的资源使用信息表,所述资源使用信息表用于记录已使用的多个资源。
93.步骤s202,根据所述资源使用信息表和资源库,生成无用资源列表,所述无用资源
列表用于记录一个或多个无用资源。其中,所述一个或多个无用资源是所述资源库中的资源,且所述一个或多个无用资源是所述资源使用信息表中未记录的资源。
94.步骤s204,根据指示信息对资源进行清理。
95.在实际应用中,在使用游戏引擎(如unity)开发游戏过程中,可以在各个电子设备6的游戏引擎中注入资源使用监测代码,以获取资源使用信息(资源的实际渲染情况)。
96.以其中一个电子设备6为例:该电子设备6在整个游戏运行过程中,会通过所述资源使用监测代码监视游戏引擎使用到的各个资源的资源使用信息,这些信息如下:
97.name:该资源的资源名;
98.path:该资源的路径;
99.md5:该资源对应的标识。所述标识也可以是用于区分各资源的其他形式的字符串。在本实施例中,通过散列加密算法,md5可以根据资源名进行加密计算得到。需要说明的是,所述标识也可以通过其他算法计算得到,在此不做限定。
100.电子设备6在游戏运行后,自动生成临时数据库存放数据(资源使用信息),临时数据库设计如下:
101.文件信息表:可以存储相应的电子设备6在游戏过程中使用到的各个资源的资源使用信息。
102.该电子设备6在退出游戏之后,会发送该临时数据库存放的数据发送给服务器2。
103.以上提供了一个电子设备6收集资源使用信息的示例。需说明的是,服务器2会整合所有电子设备6上报的数据,整合形成资源使用信息表(包括去重及新增插入)。
104.接下来,服务器2根据所述资源使用信息表中的各个资源和服务器2本地(即,资源库)当前存储的各个资源进行比较,根据比较结果找出在所述资源库中的但没有记录在所述资源使用信息表中的一个或多个资源(即,所述资源库中未被任意一个电子设备6的游戏引擎使用过的一个或多个资源)。需要说明的是,由于根据上述比较结果找出的该一个或多个资源,至少到当前为止没有被任意一个电子设备6的游戏引擎使用过,因此该一个或多个资源通过属于无使用价值的无用资源。该一个或多个资源在下文统称为一个或多个无用资源。
105.服务器2会根据该一个或多个无用资源生成无用资源列表,用于记录各个无用资源的资源信息。该无用资源列表亦可以展示到开发人员的电脑显示界面上。
106.在找到该一个或多个无用资源之后,接下来,服务器2可以执行如下操作:
107.(1)根据预设规则,对该一个或多个无用资源进行自动清理。
108.(2)将无用资源列表提供给开发人员,根据开发人员的指令执行清理或其他操作。
109.即,所述指示信息来源于人机互动,或基于预设规则的自动触发。
110.举例而言,若开发人员认为某个无用资源是真的无用,则通过删除按钮触发发送给服务器2的删除指令。基于这个删除指令时,服务器2对这个无用资源进行清理。若开发人员认为某个无用资源是有用的资源,则在电子设备上重新测试相应功能。
111.本技术实施例提供的上述资源清理方法,包括如下优点:可以自动分析出资源库中的无用资源,提高清理效率、防止误删除和漏删除,并避免了人工清理导致的如下问题:第一,开发时间过久,已忘记哪些资源使用了哪些资源没有使用。第二,假设中途有人离开,那么没人知道哪些资源可以删除。第三,人工的贸然删除存在游戏崩溃的风险,读完整套代
码再做删除除了工作量巨大,且部分使用资源并不能从代码中看出来,从而存在资源的误删除和漏删除。
112.以下提供几个可选的实施例。
113.作为可选的实施例,各个游戏引擎被注入资源使用监测代码,如加载资源使用的load函数等,具体的,凡是可以加载资源的接口都需要注入监测代码。如图3所示,所述步骤s200可以包括:步骤s300,获取所述各个游戏引擎在全用例模式下的资源使用信息,所述资源使用信息通过资源使用监测代码监测得到;及步骤s302,整合所述各个游戏引擎在全用例模式下的资源使用信息,以得到所述资源使用信息表。所述全用例模式,对游戏程序所有功能做全面测试。在本实施例中,删除资源是基于游戏全用例模式下的资源使用信息做排除的删除,被删除的资源一定是全用例模式下没有被使用到的,删除属于有根据删除,有效防止误删除和漏删除。另外,本实施例所述的方案依赖全用例模式,但是全用例模式下的测试属于项目必然经历的过程,因此未增加研发任务,但是全用例测试之后可以立即清理资源,可以节约大量清理无用资源的时间和人力。
114.所述整合,是指将各个游戏引擎使用到的资源进行统计和汇总,从而得到所述资源使用信息表。
115.作为可选的实施例,所述资源使用信息表包括所述多个资源中的各个资源的标识。如图4所示,所述步骤s202可以包括:步骤s400,判断所述资源库中的各个资源的标识是否在所述资源使用信息表中被查找到;及步骤s402,若所述资源库中的一个或多个资源的标识在所述资源使用信息表未被查找到,则判定所述一个或多个资源为所述一个或多个无用资源,并生成所述无用资源列表。在本实施例中,标识可以有效地排查出无用资源,以提高清理效率和准确度。需要说明的是,该标识可以是md5码,也可以是用于区分各资源的其他字符串。
116.作为可选的实施例,所述指示信息包括删除指令或预设规则。如图5所示,所述步骤s204可以包括:步骤s500,若接收删除指令或触发预设规则,则确定清理所述一个或多个无用资源。所述步骤s204还可以包括:步骤s502,将所述一个或多个无用资源移动到无用资源库中,以完成所述资源清理操作。在本实施例中,检测到无用资源时并不会直接删除检测出的无用资源,而是会列出无用资源列表并发送给开发人员,由开发人员确认后再进行清理操作以进一步提升清理的可靠性。因此,假设开发人员确认其中某个无用资源实际是有用的(会被游戏引擎使用到,可能仅是未被资源使用监测代码监视到),那么可以反向证明全用例测试不完整,并没有覆盖所有情况。另外,在本实施例中,接收到某个无用资源的删除指令之后,服务器2并不会将这个无用资源从存储介质(如,磁盘)中直接删除,而是安全地迁移到无用资源库。当某个电子设备需要这个无用资源时,会启动资源下载线程从无用资源库下载,且将这个无用资源从无用资源库移动到资源库(又称,热更新资源库),实现资源动态补给。
117.如图6所示,其是在服务器2中生成的,并显示于开发人员的客户端的无用资源列表。该无用资源列表提供了两个无用资源(1.png和2.png),每个无用资源对应两个控件(“打开文件”和“删除文件”)。举例来说,若开人员确认1.png是无用的资源,则通过鼠标等触控与1.png关联的控件“删除文件”以生成1.png的删除指令,并将该1.png的删除发送给服务器2,由服务器2对1.png进行清理。
118.需要说明的是:
119.(1)上文提供的各个可选方案可以单独实施,也可以组合实施。
120.(2)游戏引擎可以是unity。
121.实施例二
122.图7示意性示出了根据本技术实施例二的资源加载方法的流程图。所述方法可以执行在服务器2中。如图7所示,该资源加载方法可以包括步骤s700~s706,其中:
123.步骤s700,获取电子设备发送的下载请求,所述下载请求用于下载待加载资源。
124.步骤s702,根据所述下载请求,确定所述待加载资源是否记录在资源更新列表中。
125.步骤s704,若所述待加载资源未记录在所述资源更新列表中,则确定所述待加载资源是否记录在无用资源列表中,所述无用资源列表用于记录无用资源库中的一个或多个无用资源。
126.步骤s706,若所述待加载资源记录在所述无用资源列表中,则返回相应的下载地址给所述电子设备,以使所述电子设备根据所述相应的下载地址下载并加载所述待加载资源。
127.在具体应用中,修改资源加载接口,资源加载前先判断电子设备中是否存在所述待加载资源,如果存在则按照正常流程加载所述待加载资源。如果不存在,则电子设备启动显示资源加载界面,并且挂起游戏线程,同时启动资源下载线程,资源下载线程使用资源名从服务器2中获取所述待加载资源的下载地址,如,url(uniform resource locator,统一资源定位器)。服务器2接收到下载请求后,先查找资源更新文件列表内是否存在所述待加载资源。如果所述资源更新文件列表内不存在所述待加载资源,则再查找无用资源列表是否存在所述待加载资源。如果所述无用资源列表存在所述待加载资源,则返回所述待加载资源的url。电子设备获取到url后开始下载所述待加载资源,下载结束后从新唤醒游戏线程。现有技术中的电子设备资源丢失时只能找玩家获取信息然后复现,看日志获取丢失资源信息,最后再去补充资源,费时费力。相较现有技术,本实施例中的服务器2可以自动提供电子设备中的缺失的待加载资源。
128.以下提供几个可选的实施例。
129.作为可选的实施例中,如图8所示,所述方法还可以包括:步骤s800,若所述待加载资源记录在所述资源更新列表中,则返回相应的下载地址返回给所述电子设备。在本实施例中,服务器2可以将资源库中的待加载资源提供给电子设备。
130.作为可选的实施例中,如图9所示,所述方法还可以包括:步骤s900,将所述待加载资源的资源信息更新到所述资源更新列表中;及步骤s902,将位于所述无用资源库中的所述待加载资源移动到所述资源库中;其中,所述资源库用于存储所述资源更新列表记录中的各个资源。在本实施例中,将这个原先被认定为“无用资源”的待加载资源从无用资源库移动到资源库,实现资源动态补给。
131.作为可选的实施例中,如图10所示,所述方法还可以包括:步骤s1000,若所述待加载资源未记录在所述无用资源列表中,则返回空地址给所述电子设备。在本实施例中,当服务器2从资源更新文件列表和无用资源列表都没有找到所述待加载资源时,则服务器2报警,并且通知电子设备缺失的资源名。服务器2返回url为空,电子设备收到空url弹出弹框提示正在修复,请等待。因此,针对电子设备资源缺失并且无用资源库也没有的资源,服务
器2自动报警通知开发人员资源丢失。开发人员能第一时间知道丢失的资源并且补充到资源库。
132.为便于理解,如图11所示,以下提供一个应用示例:
133.步骤s1100,服务器2获取电子设备发送的下载请求,所述下载请求用于下载待加载资源。
134.步骤s1102,服务器2判断所述待加载资源是否记录在资源更新列表中。
135.若是,则进入步骤s1108;否则进入步骤s1104。
136.步骤s1104,服务器2判断所述待加载资源是否记录在无用资源列表中。
137.若是,则进入步骤s1110;否则进入步骤s1106。
138.步骤s1106,服务器2将所述待加载资源的资源信息更新到所述资源更新列表中,将位于无用资源库中的所述待加载资源移动到所述资源库中,并返回所述待加载资源的url给电子设备。
139.步骤s1108,服务器2返回所述待加载资源的url给电子设备。
140.步骤s1110,服务器2返回空url给电子设备。
141.实施例三
142.本实施例提供了用于电子设备6中的资源加载方法,具体细节和效果可以参考上文。
143.图12示意性示出了根据本技术实施例三的资源加载方法的流程图。
144.如图12所示,该资源加载方法可以包括步骤s1200~s1204,其中:
145.步骤s1200,判断所述电子设备是否已存储待加载资源。
146.步骤s1202,若所述电子设备未存储所述待加载资源,则向服务器请求返回所述待加载资源的下载地址;其中,所述待加载资源的下载地址从资源更新列表中查找得到,或从所述资源更新列表中查找失败的情形下,从无用资源列表中查找得到。
147.步骤s1204,接收所述服务器返回的下载地址,并根据所述下载地址下载和加载所述待加载资源。
148.可选的,步骤s1206:若所述下载地址为空地址,则显示弹框,所述弹框用于提示所述待加载资源丢失。
149.为便于理解,如图13所示,以下提供一个应用示例:
150.步骤s1300,电子设备6检测本地是否存在待加载资源。
151.若是,则进入步骤s1302;否则进入步骤s1304。
152.步骤s1302,电子设备6直接加载所述待加载资源,并结束所述待加载资源的加载流程。
153.步骤s1304,电子设备6暂停游戏线程,显示资源加载动画,启动资源下载线程,资源下载线程向服务器2请求url。
154.步骤s1306,电子设备6接收服务器2会返回的url,并判断该url是否为空。
155.若是,则进入步骤s1308;否则进入步骤s1310。
156.步骤s1308,电子设备6显示弹框,所述弹框用于提示“资源丢失,正在处理,请耐心等待”。
157.步骤s1310,电子设备6使用url下载所述待加载资源,下载结束后销毁下载线程,
唤醒游戏线程继续加载所述待加载资源。
158.实施例四
159.图14示意性示出了根据本技术实施例四的资源清理系统的框图。该资源清理系统可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本技术实施例。本技术实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例中各程序模块的功能。
160.如图14所示,该资源清理系统1400可以包括获取模块1410、生成模块1420和清理模块1430,其中:
161.获取模块1410,用于获取多个游戏引擎的资源使用信息表,所述资源使用信息表用于记录已使用的多个资源;
162.生成模块1420,用于根据所述资源使用信息表和资源库,生成无用资源列表,所述无用资源列表用于记录一个或多个无用资源;及
163.清理模块1430,用于根据指示信息对资源进行清理。
164.作为可选的实施例,各个游戏引擎被注入资源使用监测代码;
165.所述获取模块1410,还用于:
166.获取所述各个游戏引擎在全用例模式下的资源使用信息,所述资源使用信息通过资源使用监测代码监测得到;及
167.整合所述各个游戏引擎在全用例模式下的资源使用信息,以得到所述资源使用信息表。
168.作为可选的实施例,所述资源使用信息表包括所述多个资源中的各个资源的标识;
169.所述生成模块1420,还用于:
170.判断所述资源库中的各个资源的标识是否在所述资源使用信息表中被查找到;及
171.若所述资源库中的一个或多个资源的标识在所述资源使用信息表未被查找到,则判定所述一个或多个资源为所述一个或多个无用资源,并生成所述无用资源列表。
172.作为可选的实施例,所述指示信息包括删除指令或预设规则;所述清理模块1430,还用于:
173.若接收删除指令或触发预设规则,则确定清理所述一个或多个无用资源。
174.作为可选的实施例,所述清理模块1430,还用于:
175.将所述一个或多个无用资源移动到无用资源库中,以完成所述资源清理操作。
176.实施例五
177.图15示意性示出了根据本技术实施例五的资源加载系统的框图。该资源清理系统可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本技术实施例。本技术实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例中各程序模块的功能。
178.如图15所示,该资源加载系统1500可以包括获取模块1510、第一确定模块1520、第二确定模块1530和返回模块1540,其中:
179.获取模块1510,用于获取电子设备发送的下载请求,所述下载请求用于下载待加载资源;
180.第一确定模块1520,用于根据所述下载请求,确定所述待加载资源是否记录在资源更新列表中;
181.第二确定模块1530,用于若所述待加载资源未记录在所述资源更新列表中,则确定所述待加载资源是否记录在无用资源列表中,所述无用资源列表用于记录无用资源库中的一个或多个无用资源;及
182.返回模块1540,用于若所述待加载资源记录在所述无用资源列表中,则返回相应的下载地址给所述电子设备,以使所述电子设备根据所述相应的下载地址下载并加载所述待加载资源。
183.作为可选的实施例,所述返回模块1540还用于:
184.若所述待加载资源记录在所述资源更新列表中,则返回相应的下载地址返回给所述电子设备。
185.作为可选的实施例,所述系统还可以包括更新模块(未标识),用于:
186.将所述待加载资源的资源信息更新到所述资源更新列表中;及
187.将位于所述无用资源库中的所述待加载资源移动到所述资源库中;
188.其中,所述资源库用于存储所述资源更新列表记录中的各个资源。
189.作为可选的实施例,所述返回模块1540还用于:
190.若所述待加载资源未记录在所述无用资源列表中,则返回空地址给所述电子设备。
191.实施例六
192.图16示意性示出了根据本技术实施例六的资源加载系统的框图。该资源清理系统可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本技术实施例。本技术实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例中各程序模块的功能。
193.如图16所示,该资源加载系统1600可以包括判断模块1610、请求模块1620和加载模块1630,其中:
194.判断模块1610,用于判断所述电子设备是否已存储待加载资源;
195.请求模块1620,用于若所述电子设备未存储所述待加载资源,则向服务器请求返回所述待加载资源的下载地址;其中,所述待加载资源的下载地址从资源更新列表中查找得到,或从所述资源更新列表中查找失败的情形下,从无用资源列表中查找得到;及
196.加载模块1630,用于接收所述服务器返回的下载地址,并根据所述下载地址下载和加载所述待加载资源。
197.作为可选的实施例,所述系统还可以包括弹框显示模块(未标识),用于:
198.若所述下载地址为空地址,则显示弹框,所述弹框用于提示所述待加载资源丢失。
199.实施例七
200.图17示意性示出了根据本技术实施例七的适于实现资源清理方法的计算机设备10000的硬件架构示意图。在实施例中,计算机设备10000可以是服务器2或电子设备6。本实
施例中,计算机设备10000是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是如:智能手机,平板设备,膝上型计算机,智能设备(例如,智能手表,智能眼镜),虚拟现实,游戏设备,机顶盒,数字流设备,车载终端,智能电视,电视盒,mp4(运动图像专家组音频层iv)播放器等,或者机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图17所示,计算机设备10000至少包括但不限于:可通过系统总线相互通信链接存储器10010、处理器10020、网络接口10030。其中:
201.存储器10010至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器10010可以是计算机设备10000的内部存储模块,例如该计算机设备10000的硬盘或内存。在另一些实施例中,存储器10010也可以是计算机设备10000的外部存储设备,例如该计算机设备10000上配备的插接式硬盘,智能存储卡(smart media card,简称为smc),安全数字(secure digital,简称为sd)卡,闪存卡(flash card)等。当然,存储器10010还可以既包括计算机设备10000的内部存储模块也包括其外部存储设备。本实施例中,存储器10010通常用于存储安装于计算机设备10000的操作系统和各类应用软件,例如资源清理方法或者资源加载方法的程序代码等。此外,存储器10010还可以用于暂时地存储已经输出或者将要输出的各类数据。
202.处理器10020在一些实施例中可以是中央处理器(central processing unit,简称为cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器10020通常用于控制计算机设备10000的总体操作,例如执行与计算机设备10000进行数据交互或者通信相关的控制和处理等。本实施例中,处理器10020用于运行存储器10010中存储的程序代码或者处理数据。
203.网络接口10030可包括无线网络接口或有线网络接口,该网络接口10030通常用于在计算机设备10000与其他计算机设备之间建立通信链接。例如,网络接口10030用于通过网络将计算机设备10000与外部终端相连,在计算机设备10000与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(intranet)、互联网(internet)、全球移动通讯系统(global system of mobile communication,简称为gsm)、宽带码分多址(wideband code division multiple access,简称为wcdma)、4g网络、5g网络、蓝牙(bluetooth)、wi-fi等无线或有线网络。
204.需要指出的是,图17仅示出了具有部件10010-10030的计算机设备,但是应该理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
205.在本实施例中,存储于存储器10010中的资源清理方法或资源加载方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器10020)所执行,以完成本技术实施例。
206.实施例八
207.本技术还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的资源清理方法的步骤。
208.本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,
sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,简称为smc),安全数字(secure digital,简称为sd)卡,闪存卡(flash card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中资源清理方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
209.显然,本领域的技术人员应该明白,上述的本技术实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本技术实施例不限制于任何特定的硬件和软件结合。
210.需要说明的是,以上仅为本技术的优选实施例,并非因此限制本技术的专利保护范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。