资源显示方法、资源打包方法、装置及设备与流程

文档序号:30089360发布日期:2022-05-18 08:09阅读:71来源:国知局
资源显示方法、资源打包方法、装置及设备与流程

1.本技术涉及计算机技术领域,尤其涉及一种资源显示方法、资源打包方法、装置及设备。


背景技术:

2.目前,通过应用软件向用户提供服务时,通常会在应用软件的相应页面(界面)将服务结果展示给用户,例如通过地图导航应用软件的导航页面向用户提供导航服务。
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.图1为本技术实施例的应用场景示意图;
29.图2为本技术一实施例提供的资源显示方法的流程示意图;
30.图3为本技术一实施例提供的合并文件的结构示意图;
31.图4为本技术另一实施例提供的合并文件的结构示意图;
32.图5为本技术另一实施例提供的资源显示方法的流程示意图;
33.图6为本技术一实施例提供的资源打包方法的流程示意图;
34.图7为本技术一实施例提供的资源根目录下包括资源文件的文件夹的示意图;
35.图8a为本技术一实施例提供的资源根目录下合并文件的示意图;
36.图8b为本技术另一实施例提供的资源根目录下合并文件的示意图;
37.图9为本技术一实施例提供的资源显示装置的结构示意图;
38.图10为本技术一实施例提供的终端设备的结构示意图;
39.图11为本技术一实施例提供的资源打包装置的结构示意图;
40.图12为本技术一实施例提供的打包服务器的结构示意图。
具体实施方式
41.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
42.在本技术实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
43.应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
44.取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
45.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
46.另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
47.为了方便本领域技术人员理解本技术实施例提供的技术方案,下面先对技术方案实现的技术环境进行说明。
48.相关技术中,在显示过程中通常需要显示较多的资源,且针对同一资源可能需要多次加载显示,完成这些资源的加载显示需要进行较多次资源文件的打开关闭。因此相关技术中亟需一种能够减少显示过程中,文件的打开关闭次数,提升显示效率的资源显示方式。
49.基于类似于上文所述的实际技术需求,本技术提供的方法可以利用技术化的手段减少显示过程中文件的打开关闭次数,提升显示效率。
50.下面通过一个示例性的应用场景具体说明本技术各个实施例提供的方法。
51.如图1所示,本技术实施例的应用场景中可以包括打包服务器11、下载服务器12和终端设备13,打包服务器11可以与下载服务器12通信连接,下载服务器12可以与终端设备13通信连接。
52.其中,打包服务器11可以对开发人员开发得到的一个应用软件的软件项目进行打包,以获得所述应用软件的软件安装包。其中,所述应用软件中可以实现页面(界面)显示的功能,在页面显示的过程中需要使用较多的资源,该资源例如可以是图片资源、视频资源等,并可以以资源文件的形式保存在所述应用软件的软件项目的资源路径下。例如,假设所述应用软件中使用3张图片资源,分别为图片1、图片2和图片3,则图片1的资源文件、图片2的资源文件和图片3的资源文件可以存储在所述应用软件的软件项目的资源路径下。
53.本技术实施例中,所述应用软件的软件项目中包括了多个资源文件。打包服务器1可以采用本技术实施例提供的资源打包方法,打包获得所述应用软件的至少一个合并文件,其中,一个所述合并文件是所述应用软件的两个以上的资源文件打包获得,所述合并文件中一个资源标识对应一个所述资源文件的资源数据,所述资源标识与对应资源文件的文件名相关。可以理解的是,打包获得的所述合并文件是包括在所述应用软件的软件安装包中。
54.在打包服务器11打包获得所述应用软件的所述软件安装包之后,下载服务器12可以提供所述应用软件的所述软件安装包的下载链接。在下载服务器12提供所述应用软件的所述软件安装包的下载链接之后,终端设备13可以获得所述应用软件的所述软件安装包。其中,终端设备13例如可以为智能手机、平板电脑、车载设备、可穿戴设备等能够部署所述应用软件的设备。
55.终端设备13在获取到所述应用软件的软件安装包之后,可以运行所述应用软件。终端设备13在运行所述应用软件时,可以采用本技术实施例提供的资源显示方法进行资源显示。
56.需要说明的是,图1中以打包服务器11和下载服务器12是不同服务器为例。可以理解的是,在其他实施例中打包服务器和下载服务器也可以为同一服务器。
57.需要说明的是,图1中以终端设备13通过下载服务器12提供的下载链接获得软件安装包为例。可以理解的是,在其他实施例中,终端设备13还可以通过其他方式获得软件安装包,例如终端设备13之外的其他设备可以通过下载服务器12提供的下载链接获得软件安装包,并将软件安装包发送至终端设备13。
58.下面结合附图,对本技术的一些实施方式作详细说明。在不冲突的情况下,下述的
实施例及实施例中的特征可以相互组合。
59.图2为本技术一实施例提供的资源显示方法的流程示意图,本实施例的执行主体可以为图1中的终端设备13。如图2所示,本实施例的方法可以包括:
60.步骤21,打开至少一个合并文件;其中,一个所述合并文件是一个应用软件的两个以上的资源文件打包获得,所述合并文件中一个资源标识对应一个所述资源文件的资源数据,所述资源标识与对应资源文件的文件名相关;
61.步骤22,在所述应用软件的应用界面请求显示目标文件名的资源文件中资源数据时,基于所述目标文件名确定第一资源标识,从所述合并文件中确定所述第一资源标识对应的资源数据,并对所述资源数据进行加载显示;
62.步骤23,保持所述合并文件处于打开的状态,直至满足预设关闭条件时对关闭所述合并文件。
63.一个实施例中,所述打开至少一个合并文件,具体可以包括:响应于所述应用软件的资源目录注册完成,打开至少一个合并文件。
64.本技术实施例中,所述应用软件的合并文件可以位于所述应用软件的资源根目录下,所述应用软件的一个合并文件可以是所述应用软件的软件项目中同一资源根目录下的两个以上的资源文件打包获得。
65.所述应用软件的资源根目录的数量可以为一个或多个。在所述应用软件的资源根目录的数量为多个,且所述至少一个合并文件具体为多个合并文件时,所述多个合并文件可以位于所述应用软件的不同资源根目录下。
66.本技术实施例中,所述应用软件的合并文件的数量可以为多个;所述应用软件的多个合并文件可以与所述应用软件的多个功能一一对应,所述合并文件用于为对应功能提供资源。其中,所述应用软件的功能例如可以为天气功能、导航功能、设置功能等,当然,在其他实施例中,所述应用软件的功能还可以为其他类型功能,本技术对此不做限定。通过所述应用软件的多个合并文件与所述应用软件的多个功能一一对应,能够避免不同功能之间合并文件的耦合。
67.基于此,另一个实施例中,所述打开至少一个合并文件,具体可以包括:在进入所述应用软件的一功能时,打开所述应用软件的所述功能对应的至少一个合并文件。由于进入所述应用软件的一功能,可以表示需要使用所述功能相关的资源显示所述功能对应的应用界面,因此通过在进入所述应用软件的一功能时,打开所述应用软件的所述功能对应的至少一个合并文件,能够实现在需要使用一合并文件时及时打开该合并文件,有利于避免过早打开合并文件所带来的问题。
68.本技术实施例中,在所述应用软件的应用界面请求显示目标文件名的资源文件中资源数据时,可以基于所述目标文件名确定资源标识(以下记为第一资源标识),以便于能够从所述合并文件中确定出对应的资源数据。需要说明的是,所述应用软件的应用界面的布局信息中可以指示出布局位置与资源文件的文件名之间的对应关系,因此在显示应用界面的过程中可以基于应用界面的布局信息确定出请求显示的资源数据所在资源文件的文件名(即目标文件名)。
69.一个实施例中,所述基于目标文件名确定第一资源标识具体可以包括:将所述目标文件名与所述目标文件名的资源文件在所述应用软件的软件项目中的资源路径进行拼
接,得到所述资源文件的第一资源标识。在此情况下,所得到的所述目标文件名的资源文件的完整路径,可以作为所述第一资源标识。
70.另一个实施例中,所述基于目标文件名确定第一资源标识具体可以包括:将所述目标文件名与所述目标文件名的资源文件在所述应用软件的软件项目中的资源路径进行拼接,得到所述资源文件的完整路径;以及,对所述目标文件名的资源文件的完整路径进行预设变换,得到所述第一资源标识。其中,所述预设变换例如可以为哈希变换。
71.又一个实施例中,在将所述应用软件的软件项目中不同资源文件的文件名各不相同的情况下,所述基于目标文件名确定第一资源标识具体可以包括:将所述目标文件名作为所述目标文件名的资源文件的第一资源标识。
72.又一个实施例中,在将所述应用软件的软件项目中不同资源文件的文件名各不相同的情况下,所述基于目标文件名确定第一资源标识具体可以包括:对所述目标文件名进行预设变换,得到所述第一资源标识。其中,所述预设变换例如可以为哈希变换。
73.需要说明的是,步骤22中基于目标文件名确定第一资源标识的具体方式,与打包获得所述应用软件的合并文件的过程中,基于目标文件名确定第一资源标识的具体方式相同。
74.本技术实施例中,在基于所述目标文件名确定第一资源标识之后,可以根据所述第一资源标识从所述合并文件中确定出对应的资源数据。
75.一个实施例中,在所述至少一个合并文件具体为多个合并文件,且该多个合并文件位于所述应用软件的不同资源根目录下的情况下,所述从所述合并文件中确定所述第一资源标识对应的资源数据,具体可以包括:基于所述第一资源标识,按照资源根目录的优先级由高至低的顺序,依次在对应的所述合并文件中进行查找处理,直至查找到所述第一资源标识对应的资源数据。从而能够实现优先级高的资源根目录下的资源能够被优先显示,有利于提高资源显示的灵活性。
76.例如,假设所述应用软件的资源根目录的个数为3个,分别为资源根目录1、资源根目录2和资源根目录3,所述应用软件的软件项目中资源根目录1下的资源文件打包获得合并文件1,资源根目录2下的资源文件打包获得合并文件2,资源根目录3下的资源文件打包获得合并文件3,且资源根目录1的优先级高于资源根目录2,资源根目录2的优先级高于资源根目录3,则可以先基于第一资源标识对资源根目录1对应的合并文件1进行查找处理。如果在合并文件1中查找到第一资源标识对应的资源数据则结束,如果未在合并文件1中查找到则基于第一资源标识对资源根目录2对应的合并文件2进行查找处理。如果在合并文件2中查找到第一资源标识对应的资源数据则结束,如果未在合并文件2中查找到则基于第一资源标识对资源根目录3对应的合并文件3进行查找处理。
77.一个实施例中,如果打包获得合并文件时未考虑资源文件的冗余,所标识资源数据相同的至少两个资源标识在合并文件中均存在对应的资源数据,则基于第一资源标识对合并文件进行查找处理,具体可以包括:直接使用第一资源标识对合并文件进行查找处理。
78.另一个实施例中,如果打包获得合并文件时考虑到资源文件的冗余,并对应生成了预设映射关系,所述预设映射关系用于表示所标识资源数据相同的至少两个资源标识中一个目标资源标识映射到其他资源标识的关系,所述目标资源标识为所述至少两个资源标识中在合并文件中存在对应资源数据的资源标识,则基于第一资源标识对合并文件进行查
找处理,具体可以包括:在所述预设映射关系中查找是否存在映射到所述第一资源标识的第二资源标识;如果所述预设映射关系中存在映射到所述第一资源标识的第二资源标识,则使用所述第二资源标识,对合并文件进行查找处理;如果所述预设映射关系中不存在映射到所述第一资源标识的第二资源标识,则使用所述第一资源标识,对合并文件进行查找处理。
79.可以理解的是,如果所述预设映射关系中存在映射到所述第一资源标识的第二资源标识,则可以表示所述第一资源标识所标识的资源数据与所述第二资源标识所标识的资源数据相同,合并文件中包括了第二资源标识对应的资源数据,因此在确定第一资源标识对应的资源数据时,需要使用第二资源标识进行确定。
80.可选的,本技术实施例中,所述合并文件中一个资源标识对应一个所述资源文件的资源数据的具体实现方式可以为:所述合并文件包括索引段和数据段;所述数据段用于存储资源数据,所述索引段用于存储资源标识与所述数据段占据的存储地址的对应关系。基于此,所述从所述合并文件中确定所述第一资源标识对应的资源数据,具体可以包括:基于所述第一资源标识,对所述合并文件的索引段中进行查找处理,得到所述第一资源标识对应的存储地址,所述合并文件中所述第一资源标识对应存储地址的数据即为所述第一资源标识对应的资源数据。通过所述合并文件包括索引段和数据段,并通过对合并文件的索引段进行查找处理确定第一资源标识对应的资源数据,有利于实现资源数据的快速访问。
81.进一步可选的,在所述应用软件存在所述预设映射关系的情况下,所述基于所述第一资源标识,对所述合并文件的索引段中进行查找处理,具体可以包括:在所述预设映射关系中查找是否存在映射到所述第一资源标识的第二资源标识;如果所述预设映射关系中存在映射到所述第一资源标识的第二资源标识,则使用所述第二资源标识,对所述合并文件的索引段中进行查找处理,以得到所述第一资源标识对应的存储地址;如果所述预设映射关系中不存在映射到所述第一资源标识的第二资源标识,则使用所述第一资源标识,对所述合并文件的索引段中进行查找处理,以得到所述第一资源标识对应的存储地址。
82.进一步可选的,本技术实施例提供的方法还可以包括:响应于打开所述合并文件,将所述合并文件的索引段加载至内存中。通过响应于打开所述合并文件,将所述合并文件的索引段加载至内存中,使得可以基于内存中保存的索引段进行查找处理以确定第一资源标识对应的资源数据,有利于减少确定第一资源标识对应的资源数据的耗时。
83.示例性的,所述合并文件的结构例如可以如图3所示。参考图3,索引段可以包括长度字段和多个索引信息字段。其中,长度字段可以用于存储索引段的总长度,其类型例如可以为4字节整型。多个索引信息字段可以与多个资源文件一一对应,索引信息字段可以包括标识子字段、起始地址子字段、长度子字段。标识子字段可以用于存储资源标识,其类型例如可以为4字节整型。起始地址子字段可以用于资源数据在数据段的起始地址,其类型例如可以为4字节整型。长度子字段可以用于资源数据的数据长度,其类型例如可以为4字节整型。可以理解的是,起始地址子字段所存储的起始地址+长度子字段所存储的数据长度,可以表示数据段占据的存储地址。
84.继续参考图3,数据段可以包括长度字段和多个数据信息字段。其中,长度字段可以用于存储数据段的总长度,其类型例如可以为4字节整型。多个数据信息字段可以与多个资源文件一一对应,数据信息字段用于存储对应资源文件的资源数据。
85.可选的,所述合并文件还可以包括文件头段,所述文件头段可以用于存储合并文件的头部信息。示例性的,所述头部信息包括下述中的一种或多种:合并文件的总长度、合并文件对应资源文件所在文件夹的数量、合并文件的文件名长度、合并文件的文件名、合并文件的版本号长度或合并文件的版本号。假设一合并文件是通过对软件项目的某一文件夹下的资源文件打包得到,则该合并文件对应资源文件所在文件夹的数量可以为1。假设一合并文件是通过对软件项目的某两个文件夹下的资源文件打包得到,则该合并文件对应资源文件所在文件夹的数量可以为2。
86.和/或,可选的,所述合并文件还可以包括文件夹段,所述文件夹段用于存储合并文件对应资源文件所在文件夹的文件夹信息。示例性的,所述文件夹信息可以包括文件夹名称的长度和文件夹名称。
87.以合并文件包括文件头段、文件夹段、索引段和数据段为例,合并文件的结构例如可以如图4所示。参考图4,文件头段可以包括长度字段和文件头信息字段。其中,长度字段可以用于存储文件头段的总长度,其类型例如可以为4字节整型。文件头信息字段可以包括文件长度子字段、文件夹数量子字段、文件名长度子字段、文件名子字段、版本号长度子字段或版本号子字段。文件长度子字段用于存储合并文件的总长度,其类型例如可以为4字节整型。文件夹数量子字段可以用于存储合并文件对应资源文件所在文件夹的数量,其类型例如可以为4字节整型。文件名长度子字段可以用于存储合并文件的文件名长度,其类型例如可以为4字节整型。文件名子字段可以用于存储合并文件的文件名,其类型例如可以为变长字符串。版本号长度子字段可以用于存储合并文件的版本号长度,其类型例如可以为4字节整型。版本号子字段可以用于存储合并文件的版本号,其类型例如可以为变长字符串。
88.继续参考图4,文件夹段可以包括长度字段和至少一个文件夹信息字段。其中,长度字段可以用于存储文件夹段的总长度,其类型例如可以为4字节整型。至少一个文件夹信息字段与至少一个文件夹一一对应,文件夹信息字段可以包括名称长度子字段和文件名称子字段。名称长度子字段可以用于文件名称的长度,其类型例如可以为4字节整型。文件名称子字段可以用于存储文件名称,其类型例如可以为变长字符串。
89.需要说明的是,关于图4中索引段和数据段的说明可以参见前述关于图3的具体描述,在此不再赘述。
90.需要说明的是,图3和图4中所示合并文件的结构仅为举例。
91.本技术实施例中,在从所述合并文件中确定出所述第一资源标识对应的资源数据之后,可以对所述资源数据进行加载显示。其中,所述对所述资源数据进行加载显示具体可以包括:将所述资源数据加载至内存,并对所述资源数据进行显示。通过对所述资源数据进行加载显示,可以将所述目标文件名对应的资源显示在所述应用界面中。
92.本技术实施例中,在从合并文件中确定第一资源标识对应的资源数据并对所述资源数据进行加载显示之后,可以保持所述合并文件处于打开的状态,直至满足预设关闭条件时关闭所述合并文件。
93.一个实施例中,可以在确定无需进行资源显示时,关闭所述合并文件。基于此,所述满足预设关闭条件时关闭所述合并文件具体可以包括:在确定无需进行资源显示时,关闭所述合并文件。
94.另一个实施例中,在所述应用软件同一资源根目录下的多个合并文件可以与所述
应用软件的多个功能一一对应,所述合并文件用于为对应功能提供资源的情况下,可以在退出所述应用软件的一功能时,关闭该功能对应的合并文件。基于此,所述满足预设关闭条件时关闭所述合并文件具体可以包括:在退出所述应用软件的一功能时,关闭所述功能对应的所述合并文件。由于退出所述应用软件的一功能,可以表示无需使用所述功能相关的资源显示所述功能对应的应用界面,因此通过在退出所述应用软件的一功能时关闭所述应用软件的所述功能对应的合并文件,能够实现在不需要使用一合并文件时及时关闭该合并文件,有利于避免过晚关闭合并文件所带来的问题。
95.可选的,本技术实施例提供的方法还可以包括:保持所述合并文件的索引段加载至内存中的状态,直至满足所述预设关闭条件时将所述合并文件的索引段从内存中删除。保持合并文件的索引段加载至内存中的状态直至需要关闭合并文件时,使得能够在无需对合并文件的索引段进行查找处理时,及时将索引段从内存中删除。
96.示例性的,打开和关闭合并文件的时机例如可以如图5所示。参考图5,在应用软件开始运行时,先在步骤51中对应用软件进行初始化,然后在步骤52中注册资源目录。在注册完成资源目录之后,在步骤53中打开合并文件并将合并文件的索引段加载至内存。之后,步骤54中,在应用软件的应用界面请求显示目标文件名的资源文件中资源数据时,根据目标文件名生成第一资源标识,并基于第一资源标识从所注册资源目录下的合并文件中确定第一资源标识的资源数据进行加载显示。之后,在步骤55中判断是否还需要进行资源显示,如果是则返回步骤54,如果否则执行步骤56。在步骤56中,关闭合并文件并将合并文件的索引段从内存中删除。之后,在步骤57中注销资源目录。最后,在步骤58中进行应用软件的反初始化,以结束应用软件的运行。
97.本技术实施例提供的资源显示方法,通过打开至少一个合并文件,在应用软件的应用界面请求显示目标文件名的资源文件中资源数据时,基于目标文件名确定第一资源标识,从合并文件中确定第一资源标识对应的资源数据并对资源数据进行加载显示,保持合并文件处于打开的状态,直至满足预设关闭条件时关闭合并文件,实现了单次打开关闭合并文件,能够从合并文件中读取多个资源的资源数据,与单次打开关闭资源文件只能读取一个资源的资源数据相比,减少了显示过程中文件的打开关闭次数,提升了显示效率。
98.图6为本技术一实施例提供的资源打包方法的流程示意图,本实施例的执行主体可以为图1中的打包服务器11。如图6所示,本实施例的方法可以包括:
99.步骤61,获取一个应用软件的软件项目,所述软件项目中包括所述应用软件的多个资源文件;
100.步骤62,在对所述软件项目进行打包的过程中,打包获得所述应用软件的至少一个合并文件;一个所述合并文件是所述应用软件的两个以上的资源文件打包获得,所述合并文件中一个资源标识对应一个所述资源文件的资源数据,所述资源标识与对应资源文件的文件名相关。
101.本技术实施例中,所述应用软件的合并文件可以位于所述应用软件的资源根目录下,所述应用软件的一个合并文件可以是所述应用软件的软件项目中同一资源根目录下的两个以上的资源文件打包获得。
102.本技术实施例中,所述应用软件的资源根目录的数量可以为一个或多个。在所述应用软件的资源根目录的数量为多个,且所述至少一个合并文件具体为多个合并文件时,
该多个合并文件可以位于所述应用软件的不同资源根目录下。
103.可选的,在对所述软件项目进行打包的过程中,可以将所述应用软件的软件项目中同一资源根目录下的用于为同一功能提供资源的资源文件打包为一个合并文件。基于此,所述应用软件的多个合并文件可以与所述应用软件的多个功能一一对应,所述合并文件用于为对应功能提供资源。其中,所述应用软件的功能例如可以为天气功能、导航功能、设置功能等,当然,在其他实施例中,所述应用软件的功能还可以为其他类型功能,本技术对此不做限定。通过所述应用软件的多个合并文件与所述应用软件的多个功能一一对应,能够避免不同功能之间合并文件的耦合。
104.例如,假设所述应用软件的软件项目中一资源根目录如图7所示,图7所示的资源根目录下包括文件夹名称为aaa、bbb、ccc、ddd、eee、fff、ggg共7个文件夹,每一个文件夹中包括多个资源文件,7个文件夹与所述应用软件的7个功能一一对应,则将所述应用软件的软件项目中同一资源根目录下的用于为同一功能提供资源的资源文件打包为一个合并文件之后,所述应用软件的该资源根目录可以如图8a所示。参考图8a,可以将aaa文件夹中的资源文件打包为一个合并文件(aaa.cmb),可以将bbb文件夹中的资源文件打包为一个合并文件(bbb.cmb),可以将ccc文件夹中的资源文件打包为一个合并文件(ccc.cmb),可以将ddd文件夹中的资源文件打包为一个合并文件(ddd.cmb),可以将eee文件夹中的资源文件打包为一个合并文件(eee.cmb),可以将fff文件夹中的资源文件打包为一个合并文件(fff.cmb),可以将ggg文件夹中的资源文件打包为一个合并文件(ggg.cmb)。
105.需要说明的是,图8a中以合并文件的文件名与文件夹名字相同为例,可以理解的是,在其他实施例中两者也可以不相同。
106.需要说明的是,图8a中合并文件的扩展名为cmb仅为举例,可以理解的是,在其他实施例中,合并文件的扩展名还可以为其他形式,本技术对此不做限定。
107.可选的,本技术实施例中,所述合并文件中一个资源标识对应一个所述资源文件的资源数据的具体实现方式可以为:所述合并文件包括索引段和数据段;所述数据段用于存储资源数据,所述索引段用于存储资源标识与所述数据段占据的存储地址的对应关系。通过所述合并文件包括索引段和数据段,使得能够通过对合并文件的索引段进行查找处理确定第一资源标识对应的资源数据,有利于实现资源数据的快速访问。所述合并文件的结构例如可以如图3或图4所示,在此不再赘述。
108.类似于前述第一资源标识的确定,可选的,步骤62中基于两个以上的资源文件,打包获得一合并文件时,该合并文件中的资源标识可以采用如下方式确定:将所述资源文件的文件名与所述资源文件在所述应用软件的软件项目中的资源路径进行拼接,得到所述资源文件的完整路径,对所述完整路径进行预设变换得到所述资源文件的资源标识;或者,对所述资源文件的文件名进行预设变换,得到所述资源文件的资源标识。
109.一个实施例中,在打包获得合并文件的过程中可以不考虑资源文件的冗余,即所标识资源数据相同的至少两个资源标识均可以在合并文件中存在对应的资源数据。
110.另一个实施例中,在打包获得合并文件的过程中可以考虑资源文件的冗余。基于此,本技术实施例提供的方法还可以包括:在打包获得所述合并文件的过程中,生成预设映射关系,所述预设映射关系用于表示所标识资源数据相同的至少两个资源标识中一个目标资源标识映射到其他资源标识的关系,所述目标资源标识为所述至少两个资源标识中在合
并文件中存在对应资源数据的资源标识。
111.例如,假设图7中ddd文件夹中资源文件的资源数据与aaa文件夹中的资源文件相同,则如图8b所示,可以将aaa文件夹中的资源文件打包为一个合并文件(aaa.cmb),可以将bbb文件夹中的资源文件打包为一个合并文件(bbb.cmb),可以将ccc文件夹中的资源文件打包为一个合并文件(ccc.cmb),可以将eee文件夹中的资源文件打包为一个合并文件(eee.cmb),可以将fff件夹中的资源文件打包为一个合并文件(fff.cmb),可以将ggg文件夹中的资源文件打包为一个合并文件(ggg.cmb)。由于ddd文件夹中资源文件在aaa文件夹中已存在,即ddd文件夹中的资源文件冗余,因此可以生成对应的预设映射关系并将预设映射关系存储在xxx.dat文件中。
112.需要说明的是,图8b中用于存储预设映射关系的文件的扩展名为dat仅为举例,可以理解的是,在其他实施例中,用于存储预设映射关系的文件的扩展名还可以为其他形式,本技术对此不做限定。
113.可选的,为了提高所获得的合并文件的灵活性,所述打包获得所述应用软件的至少一个合并文件,具体可以包括:基于获取到的打包配置信息,打包获得所述应用软件的至少一个合并文件,所述打包配置信息用于配置打包资源文件以获得合并文件的处理方式。其中,所述目标配置信息可以包括在打包脚本所基于的配置文件中。
114.所述目标配置信息可以根据需求灵活实现。例如,目标配置文件可以配置打包获得合并文件所基于的资源文件在软件项目中的资源根目录。再例如,目标配置文件可以配置打包获得的合并文件的文件名。又例如,目标配置文件可以配置用于保存预设映射关系的文件的文件名。又例如,目标配置文件可以配置合并文件中资源标识的确定方式。
115.本技术实施例提供的资源打包方法,通过在对应用软件的软件项目进行打包的过程中,打包获得应用软件的至少一个合并文件,一个合并文件是应用软件的两个以上的资源文件打包获得,合并文件中一个资源标识对应一个资源文件的资源数据,使得终端设备可以从一个合并文件读取多个资源的资源数据,从而能够减少终端设备侧文件的打开关闭次数。
116.图9为本技术一实施例提供的资源显示装置的结构示意图;参考附图9所示,本实施例提供了一种资源显示装置,该装置可以执行上述的资源显示方法,具体的,该资源显示装置可以包括:
117.打开模块91,用于打开至少一个合并文件;所述合并文件是一个应用软件的两个以上的资源文件打包获得,所述合并文件中一个资源标识对应一个所述资源文件的资源数据,所述资源标识与对应资源文件的文件名相关;
118.加载显示模块92,用于在所述应用软件的应用界面请求显示目标文件名的资源文件中资源数据时,基于所述目标文件名确定第一资源标识,从所述合并文件中确定所述第一资源标识对应的资源数据,并对所述资源数据进行加载显示;
119.关闭模块93,用于保持所述合并文件处于打开的状态,直至满足预设关闭条件时关闭所述合并文件。
120.可选的,所述应用软件的合并文件的数量为多个;所述应用软件的多个合并文件与所述应用软件的多个功能一一对应,所述合并文件用于为对应功能提供资源。
121.可选的,所述打开模块91,具体用于在进入所述应用软件的一功能时,打开所述应
用软件的所述功能对应的至少一个合并文件。
122.可选的,所述关闭模块93,具体用于在退出所述应用软件的一功能时,关闭所述功能对应的所述合并文件。
123.可选的,所述至少一个合并文件为多个合并文件,所述多个所述合并文件位于所述应用软件的不同资源根目录下;
124.所述加载显示模块92,用于从所述合并文件中确定所述第一资源标识对应的资源数据,具体包括:基于所述第一资源标识,按照资源根目录的优先级由高至低的顺序,依次在对应的所述合并文件中进行查找处理,直至查找到所述第一资源标识对应的资源数据。
125.可选的,所述合并文件包括索引段和数据段;所述数据段用于存储资源数据,所述索引段用于存储资源标识与所述数据段占据的存储地址的对应关系;
126.所述加载显示模块92,用于从所述合并文件中确定所述第一资源标识对应的资源数据,具体包括:基于所述第一资源标识,对所述合并文件的索引段进行查找处理,得到所述第一资源标识对应的存储地址,所述合并文件中所述第一资源标识对应存储地址的数据即为所述第一资源标识对应的资源数据。
127.可选的,所述打开模块91,还用于响应于打开所述合并文件,将所述合并文件的索引段加载至内存中。
128.可选的,所述关闭模块93,还用于保持所述合并文件的索引段加载至内存中的状态,直至满足所述预设关闭条件时将所述合并文件的索引段从内存中删除。
129.可选的,所述加载显示模块92用于基于所述第一资源标识,对所述合并文件的索引段中进行查找处理,具体包括:在预设映射关系中查找是否存在映射到所述第一资源标识的第二资源标识,所述预设映射关系用于表示所标识资源数据相同的至少两个资源标识中一个目标资源标识映射到其他资源标识的关系,所述目标资源标识为所述至少两个资源标识中在所述合并文件中存在对应资源数据的资源标识;如果存在,则使用所述第二资源标识,对所述合并文件的索引段中进行查找处理;如果不存在,则使用所述第一资源标识,对所述合并文件的索引段中进行查找处理。
130.可选的,所述加载显示模块92,用于基于所述目标文件名确定第一资源标识,具体包括:将所述目标文件名与所述目标文件名的资源文件在所述应用软件的软件项目中的资源路径进行拼接,得到所述目标文件名的资源文件的完整路径;以及,对所述目标文件名的资源文件的完整路径进行预设变换,得到所述第一资源标识。
131.可选的,所述加载显示模块92,用于基于所述目标文件名确定第一资源标识,具体包括:对所述目标文件名进行预设变换,得到所述第一资源标识。
132.图9所示装置可以执行图2所示实施例的方法,本实施例未详细描述的部分,可参考对图2所示实施例的相关说明。该技术方案的执行过程和技术效果参见图2所示实施例中的描述,在此不再赘述。
133.在一个可能的实现中,图9所示资源显示装置的结构可实现为一终端设备。如图10所示,该终端设备可以包括:处理器101和存储器102。其中,存储器102用于存储支持终端设备执行上述图2所示实施例中提供的资源显示方法的程序,处理器101被配置为用于执行存储器102中存储的程序。
134.程序包括一条或多条计算机指令,其中,一条或多条计算机指令被处理器101执行
时能够实现如下步骤:
135.打开至少一个合并文件;所述合并文件是一个应用软件的两个以上的资源文件打包获得,所述合并文件中一个资源标识对应一个所述资源文件的资源数据,所述资源标识与对应资源文件的文件名相关;
136.在所述应用软件的应用界面请求显示目标文件名的资源文件中资源数据时,基于所述目标文件名确定第一资源标识,从所述合并文件中确定所述第一资源标识对应的资源数据,并对所述资源数据进行加载显示;
137.保持所述合并文件处于打开的状态,直至满足预设关闭条件时关闭所述合并文件。
138.可选的,处理器101还用于执行前述图2所示实施例中的全部或部分步骤。
139.其中,终端设备的结构中还可以包括通信接口103,用于终端设备与其他设备或通信网络通信。
140.图11为本技术一实施例提供的资源打包装置的结构示意图;参考附图11所示,本实施例提供了一种资源打包装置,该装置可以执行上述的资源打包方法,具体的,该资源打包装置可以包括:
141.获取模块111,用于获取一个应用软件的软件项目,所述软件项目中包括所述应用软件的多个资源文件;
142.打包模块112,用于在对所述软件项目进行打包的过程中,打包获得所述应用软件的至少一个合并文件;一个所述合并文件是所述应用软件的两个以上的资源文件打包获得,所述合并文件中一个资源标识对应一个所述资源文件的资源数据,所述资源标识与所述对应资源文件的文件名相关。
143.可选的,所述应用软件的合并文件的数量为多个;所述应用软件的多个合并文件与所述应用软件的多个功能一一对应,所述合并文件用于为对应功能提供资源。
144.可选的,至少一个合并文件为多个合并文件,所述多个所述合并文件位于所述应用软件的不同资源根目录下。
145.可选的,所述合并文件包括索引段和数据段;所述数据段用于存储资源数据,所述索引段用于存储资源标识与所述数据段占据的存储地址的对应关系。
146.可选的,所述打包模块112还用于:在打包获得所述合并文件的过程中,生成预设映射关系,所述预设映射关系用于表示所标识资源数据相同的至少两个资源标识中一个目标资源标识映射到其他资源标识的关系,所述目标资源标识为所述至少两个资源标识中在所述合并文件中存在对应资源数据的资源标识。
147.可选的,所述资源标识是采用如下方式确定:将所述资源文件的文件名与所述资源文件在所述软件项目中的资源路径进行拼接,得到所述资源文件的完整路径;以及,对所述完整路径进行预设变换得到所述资源标识。
148.可选的,所述资源标识是采用如下方式确定:对所述资源文件的文件名进行预设变换,得到所述资源标识。
149.可选的,所述打包模块112具体用于:基于获取到的打包配置信息,打包获得所述应用软件的至少一个合并文件,所述打包配置信息用于配置打包资源文件以获得合并文件的处理方式。
150.图11所示装置可以执行图6所示实施例的方法,本实施例未详细描述的部分,可参考对图6所示实施例的相关说明。该技术方案的执行过程和技术效果参见图6所示实施例中的描述,在此不再赘述。
151.在一个可能的实现中,图11所示资源打包装置的结构可实现为一服务器。如图12所示,该服务器可以包括:处理器121和存储器122。其中,存储器122用于存储支持服务器执行上述图6所示实施例中提供的资源打包方法的程序,处理器121被配置为用于执行存储器122中存储的程序。
152.程序包括一条或多条计算机指令,其中,一条或多条计算机指令被处理器121执行时能够实现如下步骤:
153.获取一个应用软件的软件项目,所述软件项目中包括所述应用软件的多个资源文件;
154.在对所述软件项目进行打包的过程中,打包获得所述应用软件的至少一个合并文件;一个所述合并文件是所述应用软件的两个以上的资源文件打包获得,所述合并文件中一个资源标识对应一个所述资源文件的资源数据,所述资源标识与所述对应资源文件的文件名相关。
155.可选的,处理器121还用于执行前述图6所示实施例中的全部或部分步骤。
156.其中,服务器的结构中还可以包括通信接口123,用于服务器与其他设备或通信网络通信。
157.另外,本技术实施例提供了一种计算机存储介质,用于储存终端设备所用的计算机软件指令,其包含用于执行上述图2所示方法实施例中资源显示方法所涉及的程序。
158.本技术实施例提供了一种计算机存储介质,用于储存打包服务器所用的计算机软件指令,其包含用于执行上述图6所示方法实施例中资源显示方法所涉及的程序。
159.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
160.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
161.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程设备的处理器以产生一个机器,使得通过计算机或其他可编程设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
162.这些计算机程序指令也可存储在能引导计算机或其他可编程设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
163.这些计算机程序指令也可装载到计算机或其他可编程设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
164.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
165.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
166.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
167.最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1