一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种资源管理方法、装置、设备及存储介质与流程

2022-02-25 20:04:10 来源:中国专利 TAG:


1.本发明涉及互联网技术领域,特别是涉及一种资源管理方法、装置、设备及存储介质。


背景技术:

2.目前,与其他的软件系统不同,几乎所有的游戏软件都需要用到大量图片、视频、音频资源。不管是出于游戏性能的考虑,还是平台官方的要求,游戏开发者往往需要对这些资源进行一些处理。
3.游戏中使用到最多的资源是图片资源,对这类型的资源,一般需要根据不同的目标平台转换成不同的格式,如windows平台上的dxt格式,android平台上的etc格式,ios平台上的pvrtc格式。但是,这种格式进行转换后会降低图片的画质,所以在一些要求高画质的场合仍然会保持原始资源格式rgba32。
4.控制这些差异化的方式,最简单的方式是在工具提供黑白名单工具,将需要保留rgba32格式的资源路径存放在一个列表中;稍加改进的方案是工具自动识别某些特定目录,比如对用户界面目录中的资源保留原始格式,对特效目录下的资源则进行转换。
5.而以上这些方法都与文件名或文件所在的路径耦合,一旦资源文件更换位置、资源文件改名或更换一种工具后,这些信息都需要被更新。
6.但是由于开发者无法精确获取资源之间的依赖关系,仅为修改一个资源也需要迁出整个资源目录,在迭代大型资料片时,面临资源的整体迭代,也会因为无法确定旧资源是否还在使用而采取保守地删除方式,这种做法使游戏包体快速膨胀。


技术实现要素:

7.本发明实施例所要解决的技术问题是:提供一种资源管理方法、装置、设备及存储介质,明确资源的依赖关系,便于资源管理。
8.为了解决上述技术问题,第一方面,本发明实施例提供一种资源管理方法,应用于服务端,所述方法包括:
9.步骤s1:获取项目的环境信息,其中,所述环境信息包括资源所在路径,所述资源所在路径用于存放所述项目用到的第一资源以及所述第一资源的资源描述文件,所述第一资源为所述项目中的任意一个资源,所述第一资源具有唯一id;
10.步骤s2:根据所述描述文件对所述第一资源进行加载;
11.步骤s3:根据加载后的所述第一资源的唯一id以及第二资源的唯一id建立所述第一资源的依赖关系树,其中,所述第二资源为所述第一资源引用的资源。
12.作为一个优选方案,所述资源描述文件包括:
13.第一字段,用于标记所述资源描述文件的版本号;
14.第二字段,用于标记所述第一资源的唯一id;
15.第三字段,用于标记所述第一资源的类型枚举;
16.第四字段,用于标记所述第二资源的唯一id;
17.第五字段,用于标记所述第一资源的输出设置。
18.作为一个优选方案,所述资源描述文件随着所述第一资源的重命名而重命名;所述资源描述文件随着所述第一资源的移动而移动。
19.作为一个优选方案,所述环境信息还包括:
20.缓存路径,用于存放所述服务器已经计算的所述第一资源的结果;
21.设置路径,用于存放用户设置;
22.输出路径,用于存放所述第一资源的输出位置。
23.作为一个优选方案,所述方法还包括:
24.步骤s4:对所述第一资源进行缓存检查,当所述第一资源缓存未过期时,更新所述第一资源的缓存时间,当所述第一资源缓存过期时,对所述第一资源重新执行步骤s2、步骤s3。
25.作为一个优选方案,所述步骤s4具体包括:
26.s41:将所述第一资源的缓存修改时间与所述第一资源的实际修改时间进行对比;
27.s42:当所述缓存修改时间与所述实际修改时间相同时,将所述第一资源的缓存摘要与所述第一资源的实际摘要进行对比;当所述缓存摘要与所述实际摘要相同时,判定所述第一资源缓存未过期,更新所述第一资源的缓存时间;
28.s43:否则,判定所述第一资源缓存过期,对所述第一资源重新执行步骤s2、步骤s3。
29.为了解决上述技术问题,第二方面,本发明实施例提供一种资源管理方法,所述方法包括:
30.服务端获取项目的环境信息,其中,所述环境信息包括资源所在路径,所述资源所在路径用于存放所述项目用到的第一资源以及所述第一资源的资源描述文件,所述第一资源为所述项目中的任意一个资源,所述第一资源具有唯一id;
31.所述服务端根据所述描述文件对所述第一资源进行加载;
32.所述服务端根据加载后的所述第一资源的唯一id以及第二资源的唯一id建立所述第一资源的依赖关系树,其中,所述第二资源为所述第一资源引用的资源;
33.客户端选择本次构建的目标平台;
34.所述客户端选择本次构建的目标项目;
35.所述客户端向所述服务端发送构建指令;
36.所述服务端根据所述构建指令将所述目标项目的第一资源的依赖关系树发送至所述客户端。
37.为了解决上述技术问题,第三方面,本发明实施例提供一种资源管理装置,所述装置包括:
38.信息获取模块,用于获取项目的环境信息,其中,所述项目的环境信息包括资源所在路径,所述资源所在路径用于存放所述项目用到的第一资源以及所述第一资源的资源描述文件,所述第一资源为所述项目中的任意一个资源,所述第一资源具有唯一id;
39.资源加载模块,用于将所述描述文件对所述第一资源进行加载;
40.关系建立模块,用于根据加载后的所述第一资源的唯一id以及第二资源的唯一id
建立所述第一资源的依赖关系树,其中,所述第二资源为所述第一资源引用的资源。
41.为了解决上述技术问题,第四方面,本发明实施例提供一种资源管理设备,所述设备包括存储器、处理器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述计算机程序被执行时实现如第一方面任一项所述的资源管理方法。
42.为了解决上述技术问题,第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时实现如第一方面任一项所述的资源管理方法。
43.与现有技术相比,本发明实施例提供的一种资源管理方法、装置、设备及存储介质,其有益效果在于:每一个资源都具有一个全局唯一id,不论资源以何种形式存放于何处,都能使用同一个的id标记同一份资源;计算出了所有资源的依赖关系树之后,能够使用递归算法计算出任意资源的依赖链;文本格式的描述文件更容易进行追溯,方便了资源的管理,降低了资源管理的门槛。
附图说明
44.为了更清楚地说明本发明实施例的技术特征,下面将对本发明实施例中所需要使用的附图做简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
45.图1是本发明提供的一种资源管理方法的一个优选实施例的流程示意图;
46.图2是本发明提供的资源描述文件的一个优选实施例的示意图;
47.图3是本发明提供的一种资源管理装置的一个优选实施例的结构示意图;
48.图4是本发明提供的一种资源管理设备的一个优选实施例的结构示意图。
具体实施方式
49.为了对本发明的技术特征、目的、效果有更加清楚的理解,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例仅用于说明本发明,但是不用来限制本发明的保护范围。基于本发明的实施例,本领域技术人员在没有付出创造性劳动的前提下所获得的其他实施例,都应属于本发明的保护范围。
50.在本发明的描述中,应当理解的是,本文中的编号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有顺序或者技术含义,不能理解为规定或者暗示所描述的对象的重要性。
51.图1所示为本发明提供的一种资源管理方法的一个优选实施例的流程示意图,所述方法应用于服务端。
52.如图1所示,所述方法包括:
53.步骤s1:获取项目的环境信息,其中,所述环境信息包括资源所在路径,所述资源所在路径用于存放所述项目用到的第一资源以及所述第一资源的资源描述文件,所述第一资源为所述项目中的任意一个资源,所述第一资源具有唯一id;
54.步骤s2:根据所述描述文件对所述第一资源进行加载;
55.步骤s3:根据加载后的所述第一资源的唯一id以及第二资源的唯一id建立所述第
一资源的依赖关系树,其中,所述第二资源为所述第一资源引用的资源。
56.其中,服务端主要负责管理资源和资源描述文件的创建、删除、解析、加载、修改以及执行,服务进程是一个长期存活的进程,该进程的存在可以为开发者避免每次修改或执行资源操作前需要加载整个资源环境的消耗,也可以缓存资源的目录结构、后台任务、或是其他中间计算结果。
57.所述资源描述文件的文件名与所述第一资源的文件名相同、扩展名与所述第一资源的文件类型挂钩。
58.所述方法中的每一个所述第一资源都具有全局唯一id,不论资源以何种形式存放于何处,都能使用同一个的id标记同一份资源。作为一个举例,在美术设计工具中,需要编辑图片a后将它保存成png格式文件,再将图片a交付到游戏开发环境存放成图片a',之后经过持续交付平台纹理压缩后打包进入游戏安装包成为纹理a”,最终在玩家运行时加载成为a”'。在整个数据流中,同一张图片a在不同阶段存放的位置,使用的格式都不同,而通过唯一id,可以令用户在开发、调试的过程不受目录结构、文件类型变化的影响。
59.具体实施上述方法时,服务端首先获取项目的环境信息,并从所述环境信息中进一步获取所述项目所用到的第一资源以及所述第一资源的描述文件,其次根据所述描述文件对所述第一资源进行加载,将所述第一资源的资源描述文件反序列化至内存中,以唯一id为键,其中,反序列化后的数据结构为值简历映射表,最后根据所述加载后的所述第一资源的唯一id和所述第一资源所引用的第二资源的唯一id建立依赖关系树。
60.本实施例提供的一种资源管理方法,为每一个资源确定了一个全局唯一id,不论资源以何种形式存放于何处、都能使用同一个的id标记同一份资源;计算出了所有资源的依赖关系树之后,能够使用递归算法计算出任意资源的依赖链;计算出了资源的依赖关系之后,修改某一个资源不再需要迁出整个资源目录,方便了资源的管理。
61.在一个优选实施例中,如图2所示,所述资源描述文件包括:
62.第一字段,用于标记所述资源描述文件的版本号;
63.第二字段,用于标记所述第一资源的唯一id;
64.第三字段,用于标记所述第一资源的类型枚举;
65.第四字段,用于标记所述第二资源的唯一id;
66.第五字段,用于标记所述第一资源的输出设置。
67.具体而言,所述资源描述文件可以描述视频、图片、音频、复合资源、压缩文档等各种类型的资源,所述资源描述的正文内容如图2所示,为了便于理解,以图集资源作为举例,则在该图集的资源描述文件中有但不仅有以下内容:
68.第一字段,用于标记所述资源描述文件的版本号的字段,该字段遵循语义版本号规定,如图2中第2行;
69.第二字段,用于标记资源唯一id的字段,该字段通常为通用唯一识别码uuid,如图2中第3行;
70.第三字段,用于标记资源类型枚举的字段,在本实施例中为图集格式,即枚举值为atlas代表图集,如图2中第4行;
71.第四字段,用于标记资源所引用的其他资源的字段,该字段通常是存有其他资源uuid的一个数组,如图2中第5-10行;
72.第五字段,用来标记资源输出设置的字段,该字段通常是一个嵌套的数据结构,其中可以根据不同的输出目标平台,设置独立的输出参数,目标平台包括但不限于windows、ios和android,输出参数可以但不仅限于是否使用alpha预乘和纹理压缩格式,如图2中第11行至末尾。
73.在明确了上述资源描述文件之后,服务端才启动并执行后续操作。
74.在上述资源描述文件中包含了用于资源如何处理的部分,与直接获取二进制格式计算结果再提交到版本控制系统的方式相比,既节省了磁盘空间,又使得文本格式的资源描述文件在版本控制系统中更容易追溯。
75.通过资源描述的方式管理资源,可以替代当前需要就地处理资源的工作方式。如,在win32平台上,使用dxt格式的纹理将大大提高游戏的运行效率,在以往,开发者需要手动将png图片转换成dxt格式的纹理后上传至版本控制系统,如果要支持多平台如ios、android,则需要执行三次重复的操作。但是采用了资源描述的方式之后,开发者仅需更改资源描述文件即可控制图片的最终格式,不必每次直接修改资源本体,大大减少了提交的数据量。
76.在一个优选实施例中,所述环境信息还包括:
77.缓存路径,用于存放所述服务器已经计算的所述第一资源的结果;
78.设置路径,用于存放用户设置;
79.输出路径,用于存放所述第一资源的输出位置。
80.具体而言,在所述缓存路径下,一般会存放一个索引表,索引表中为每一个存在缓存的资源建立起“资源

缓存标签、缓存位置”的映射关系;所述设置路径存放了系统的一般设置和用户的个性化设置;所述输出路径则配置默认情况下,资源构建完成后需要输出到的位置。
81.在一个优选实施例中,所述资源描述文件随着所述第一资源的重命名而重命名;所述资源描述文件随着所述第一资源的移动而移动。
82.本实施例中,所述资源描述文件设置为随着第一资源的重命名而重命名、随着第一资源的移动而移动,能够不需要用到硬代码或者黑白名单的方式保存对不同资源的设置。
83.在一个优选实施例中,所述方法还包括:
84.步骤s4:对所述第一资源进行缓存检查,当所述第一资源缓存未过期时,更新所述第一资源的缓存时间,当所述第一资源缓存过期时,对所述第一资源重新执行步骤s2、步骤s3。
85.本实施例对所述第一资源增加了一个缓存检查过程,对所述第一资源的文件进行监控,当期缓存过期时,对其进行重新加载,能够保证资源的实时准确性。
86.在一个优选实施例中,所述步骤s4具体包括:
87.s41:将所述第一资源的缓存修改时间与所述第一资源的实际修改时间进行对比;
88.s42:当所述缓存修改时间与所述实际修改时间相同时,将所述第一资源的缓存摘要与所述第一资源的实际摘要进行对比;当所述缓存摘要与所述实际摘要相同时,判定所述第一资源缓存未过期,更新所述第一资源的缓存时间;
89.s43:否则,判定所述第一资源缓存过期,对所述第一资源重新执行步骤s2、步骤
s3。
90.具体而言,本实施例使用一对缓存标签来标示任何资源的缓存状态,每对缓存标签包含一个修改时间戳与一串文件摘要,同时使用时间戳和摘要是为了加快缓存检查的速度。
91.进一步的,对任意一个资源,还可以通过一组资源标签确定其缓存是否过期,其中,一组资源标签中包括了资源本体的缓存标签与其依赖的所有子孙资源的缓存标签。
92.应当理解,本发明实现上述资源管理方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述资源管理方法的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
93.图3所示为本发明提供的一种资源管理装置的一个优选实施例的结构示意图,所述装置应用于,所述装置能够实现上述任一实施例所述的资源管理方法的全部流程。
94.如图3所示,所述装置包括:
95.信息获取模块31,用于获取项目的环境信息,其中,所述项目的环境信息包括资源所在路径,所述资源所在路径用于存放所述项目用到的第一资源以及所述第一资源的资源描述文件,所述第一资源为所述项目中的任意一个资源,所述第一资源具有唯一id;
96.资源加载模块32,用于将所述描述文件对所述第一资源进行加载;
97.关系建立模块33,用于根据加载后的所述第一资源的唯一id以及第二资源的唯一id建立所述第一资源的依赖关系树,其中,所述第二资源为所述第一资源引用的资源。
98.具体而言,所述信息获取模块31首先获取项目的环境信息,并从所述环境信息中进一步获取所述项目所用到的第一资源以及所述第一资源的描述文件,其次所述资源加载模块32根据所述描述文件对所述第一资源进行加载,将所述第一资源的资源描述文件反序列化至内存中,以唯一id为键,其中,反序列化后的数据结构为值简历映射表,最后所述关系建立模块33根据所述加载后的所述第一资源的唯一id和所述第一资源所引用的第二资源的唯一id建立依赖关系树。
99.本实施例提供的一种资源管理方法,为每一个资源确定了一个全局唯一id,不论资源以何种形式存放于何处、都能使用同一个的id标记同一份资源;计算出了所有资源的依赖关系树之后,能够使用递归算法计算出任意资源的依赖链;计算出了资源的依赖关系之后,修改某一个资源不再需要迁出整个资源目录,方便了资源的管理。
100.优选地,所述资源描述文件包括:
101.第一字段,用于标记所述资源描述文件的版本号;
102.第二字段,用于标记所述第一资源的唯一id;
103.第三字段,用于标记所述第一资源的类型枚举;
104.第四字段,用于标记所述第二资源的唯一id;
105.第五字段,用于标记所述第一资源的输出设置。
106.优选地,所述环境信息还包括:
107.缓存路径,用于存放所述服务器已经计算的所述第一资源的结果;
108.设置路径,用于存放用户设置;
109.输出路径,用于存放所述第一资源的输出位置。
110.优选地,所述资源描述文件随着所述第一资源的重命名而重命名;所述资源描述文件随着所述第一资源的移动而移动。
111.优选地,所述装置还包括:
112.缓存检查模块34:用于对所述第一资源进行缓存检查,当所述第一资源缓存未过期时,更新所述第一资源的缓存时间,当所述第一资源缓存过期时,对所述第一资源重新加载。
113.优选地,所述缓存检查模块34具体包括:
114.时间检查单元341,用于将所述第一资源的缓存修改时间与所述第一资源的实际修改时间进行对比;
115.摘要检查单元342,用于当所述缓存修改时间与所述实际修改时间相同时,将所述第一资源的缓存摘要与所述第一资源的实际摘要进行对比;当所述缓存摘要与所述实际摘要相同时,判定所述第一资源缓存未过期,更新所述第一资源的缓存时间;
116.重新加载单元343,用于判定所述第一资源缓存过期,对所述第一资源重新加载。
117.图4所示为本发明提供的一种资源管理设备的一个优选实施例的结构示意图,所述设备能够实现上述任一实施例所述的资源管理方法的全部流程。
118.如图4所示,所述设备包括存储器41、处理器42;其中,所述存储器41中存储有计算机程序,所述计算机程序被配置为由所述处理器42执行,且被所述处理器42执行时实现如上述任一实施例所述的资源管理方法。
119.本发明实施例提供的资源管理设备,能够简便地进行资源管理。
120.示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器41中,并由所述处理器42执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述资源管理设备中的执行过程。
121.所述处理器42可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
122.所述存储器41可用于存储所述计算机程序和/或模块,所述处理器42通过运行或执行存储在所述存储器41内的计算机程序和/或模块,以及调用存储在存储器41内的数据,实现所述资源管理设备的各种功能。所述存储器41可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图
像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
123.需要说明的是,上述资源管理设备包括,但不仅限于,处理器、存储器,本领域技术人员可以理解,图4结构示意图仅仅是上述资源管理设备的示例,并不构成对资源管理设备的限定,可以包括比图示更多部件,或者组合某些部件,或者不同的部件。
124.为了更好地解释本发明的实现过程,现将客户端一方的操作流程也加入进资源管理方法中,则该资源管理方法包括:
125.步骤s1:服务端获取项目的环境信息,其中,所述环境信息包括资源所在路径,所述资源所在路径用于存放所述项目用到的第一资源以及所述第一资源的资源描述文件,所述第一资源为所述项目中的任意一个资源,所述第一资源具有唯一id;
126.步骤s2:所述服务端根据所述描述文件对所述第一资源进行加载;
127.步骤s3:所述服务端根据加载后的所述第一资源的唯一id以及第二资源的唯一id建立所述第一资源的依赖关系树,其中,所述第二资源为所述第一资源引用的资源;
128.步骤x1:客户端选择本次构建的目标平台;
129.步骤x2:所述客户端选择本次构建的目标项目;
130.步骤x3:所述客户端向所述服务端发送构建指令;
131.步骤s4:所述服务端根据所述构建指令将所述目标项目的第一资源的依赖关系树发送至所述客户端。
132.其中,所述客户端通过用户接口与所述服务端连接;所述用户接口包括但不限于下列用户接口:
133.集成在windows资源管理器的上下文菜单中的用户接口,使用windows shell extension方式接入,能够提供简单的更换预设、一键构建等快捷功能;
134.用于开发者日常维护使用的图形用户接口(gui,graphical user interface),能够提供丰富的资源编辑能力;
135.用于持续集成环境中的命令行接口(cli,command line interface),没有图形界面,但提供了批量处理资源的能力。
136.以上所述,仅是本发明的优选实施方式,但本发明的保护范围并不局限于此,应当指出,对于本领域技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干等效的明显变形和/或同等替换,这些明显变形和/或同等替换也应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献