CN112084747B - 一种资源管理方法、装置、电子设备及存储介质 - Google Patents
一种资源管理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112084747B CN112084747B CN202010982892.5A CN202010982892A CN112084747B CN 112084747 B CN112084747 B CN 112084747B CN 202010982892 A CN202010982892 A CN 202010982892A CN 112084747 B CN112084747 B CN 112084747B
- Authority
- CN
- China
- Prior art keywords
- resource
- file
- path information
- resource file
- full path
- 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.)
- Active
Links
- 238000007726 management method Methods 0.000 title claims abstract description 29
- 238000000034 method Methods 0.000 claims abstract description 64
- 230000008569 process Effects 0.000 claims abstract description 30
- 230000004044 response Effects 0.000 claims abstract description 6
- 238000013507 mapping Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 8
- 238000010276 construction Methods 0.000 claims description 3
- 238000006243 chemical reaction Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 14
- 238000012545 processing Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000000712 assembly Effects 0.000 description 3
- 238000000429 assembly Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 241001474495 Agrotis bigramma Species 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013144 data compression Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/116—Details of conversion of file system types or formats
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/164—File meta data generation
- G06F16/166—File name conversion
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种资源管理方法、装置、电子设备及存储介质。所述方法,包括:在目标工程的编码阶段,扫描目标工程对应的资源文件目录下的每个资源文件,获取每个资源文件的资源类型;针对每个资源文件,响应于资源文件的资源类型为第一目标格式,将资源文件转化为第二目标格式,并获取转化后的第二目标格式的资源文件的全路径信息,根据全路径信息在总配置文件中添加针对第二目标格式的资源文件的声明;响应于资源文件的资源类型不是第一目标格式,获取资源文件的全路径信息,并根据全路径信息在总配置文件中添加针对资源文件的声明。从而在避免手动操作繁琐的同时还可以提高声明过程的准确性,并且缩减目标项目的总体积。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种资源管理方法、装置、电子设备及存储介质。
背景技术
Flutter使用配置文件pubspec.yaml来管理第三方依赖包。Flutter应用程序可以包含代码和assets(可以称为资源)。常见类型的assets包括静态数据(例如JSON文件)、配置文件、图标和图片(JPEG,WebP,GIF,动画WebP/GIF,PNG,BMP和WBMP)等。和包管理一样,Flutter也可以使用pubspec.yaml文件来管理应用程序所需的资源。
但是,现有的Flutter工程中的图片、字体等资源的添加方式需要一个个手动的添加到项目总配置文件pubspec.yaml中,当需要添加的资源很多时就非常繁琐且容易出错。此外添加PNG、JEPG等图片资源的同时没有对图片进行压缩转化,导致目标项目占用较多存储空间。
发明内容
本发明实施例提供一种资源管理方法、装置、电子设备及存储介质,以解决现有手动添加资源过程繁琐且容易出错,同时没有对图片进行压缩转化,导致资源占用较多存储空间的问题。
为了解决上述技术问题,本发明是这样实现的:
第一方面,本发明实施例提供了一种资源管理方法,包括:
在目标工程的编码阶段,扫描所述目标工程对应的资源文件目录下的每个资源文件,获取每个所述资源文件的资源类型;
针对每个所述资源文件,响应于所述资源文件的资源类型为第一目标格式,将所述资源文件转化为第二目标格式,并获取转化后的所述第二目标格式的资源文件的全路径信息,根据所述全路径信息在所述总配置文件中添加针对所述第二目标格式的资源文件的声明;
响应于所述资源文件的资源类型不是所述第一目标格式,获取所述资源文件的全路径信息,并根据所述全路径信息在所述总配置文件中添加针对所述资源文件的声明;
其中,所述声明中包括所述全路径信息,所述第二目标格式的资源文件小于所述第一目标格式的资源文件。
可选地,所述扫描所述目标工程对应的资源文件目录下的每个资源文件,获取每个所述资源文件的资源类型的步骤,包括:
扫描所述目标工程对应的资源文件目录下的每个资源文件的路径,得到每个所述资源文件的全路径信息,所述全路径信息中包括所述资源文件的访问路径、所述资源文件的文件名称、所述资源文件的文件后缀名;
根据所述资源文件的文件后缀名,获取每个所述资源文件的资源类型。
可选地,所述获取所述第二目标格式的资源文件的全路径信息的步骤,包括:
获取所述第一目标格式的资源文件的全路径信息,以及与所述第二目标格式匹配的文件后缀名;
通过与所述第二目标格式匹配的文件后缀名,替换所述第一目标格式的图片资源的全路径信息中的文件后缀名,并以替换后的全路径信息作为所述第二目标格式的资源文件的全路径信息。
可选地,根据所述全路径信息在所述总配置文件中添加针对所述资源文件的声明的步骤,包括:
根据资源文件初始的全路径信息中各个路径字段的层级,通过文件通配符替换所述全路径信息中指定层级的路径字段,得到所述资源文件最终的全路径信息;
根据所述资源文件最终的全路径信息,在所述总配置文件中添加针对所述资源文件的声明。
可选地,所述第一目标格式包括PNG图片格式、JPEG图片格式、GIF图片格式中的至少一种,所述第二目标格式包括WebP图片格式。
可选地,所述方法还包括:
针对任意至少一个所述资源文件,根据所述资源文件的全路径信息,生成所述资源文件的资源标识,所述资源标识的数据长度小于所述全路径信息的数据长度;
将所述资源标识写入所述目标项目的资源引用文件,并在所述资源引用文件中建立所述全路径信息与所述资源标识之间的映射关系。
可选地,所述方法还包括:
根据所述资源引用文件中包含的资源标识,以及所述全路径信息与所述资源标识之间的映射关系,在所述目标项目的代码文件中通过所述资源标识替换所述全路径信息;
在所述目标项目的编译执行过程中,根据所述代码文件中的资源标识,通过所述资源引用文件查找与所述资源标识对应的全路径信息,并根据所述全路径信息调用资源文件。
可选地,所述目标工程为Flutter工程,所述总配置文件为pubspec.yaml文件。
第二方面,本发明实施例提供了一种资源管理装置,包括:
资源类型获取模块,用于在目标工程的编码阶段,扫描所述目标工程对应的资源文件目录下的每个资源文件,获取每个所述资源文件的资源类型;
第一资源声明模块,用于针对每个所述资源文件,响应于所述资源文件的资源类型为第一目标格式,将所述资源文件转化为第二目标格式,并获取转化后的所述第二目标格式的资源文件的全路径信息,根据所述全路径信息在所述总配置文件中添加针对所述第二目标格式的资源文件的声明;
第二资源声明模块,用于响应于所述资源文件的资源类型不是所述第一目标格式,获取所述资源文件的全路径信息,并根据所述全路径信息在所述总配置文件中添加针对所述资源文件的声明;
其中,所述声明中包括所述全路径信息,所述第二目标格式的资源文件小于所述第一目标格式的资源文件。
可选地,所述资源类型获取模块,包括:
路径扫描子模块,用于扫描所述目标工程对应的资源文件目录下的每个资源文件的路径,得到每个所述资源文件的全路径信息,所述全路径信息中包括所述资源文件的访问路径、所述资源文件的文件名称、所述资源文件的文件后缀名;
资源类型获取子模块,用于根据所述资源文件的文件后缀名,获取每个所述资源文件的资源类型。
可选地,所述第一资源声明模块,包括:
路径构建信息获取子模块,用于获取所述第一目标格式的资源文件的全路径信息,以及与所述第二目标格式匹配的文件后缀名;
全路径信息获取子模块,用于通过与所述第二目标格式匹配的文件后缀名,替换所述第一目标格式的图片资源的全路径信息中的文件后缀名,并以替换后的全路径信息作为所述第二目标格式的资源文件的全路径信息。
可选地,所述第二资源声明模块,包括:
全路径信息处理子模块,用于根据资源文件初始的全路径信息中各个路径字段的层级,通过文件通配符替换所述全路径信息中指定层级的路径字段,得到所述资源文件最终的全路径信息;
资源声明子模块,用于根据所述资源文件最终的全路径信息,在所述总配置文件中添加针对所述资源文件的声明。
可选地,所述第一目标格式包括PNG图片格式、JPEG图片格式、GIF图片格式中的至少一种,所述第二目标格式包括WebP图片格式。
可选地,所述装置还包括:
资源标识生成模块,用于针对任意至少一个所述资源文件,根据所述资源文件的全路径信息,生成所述资源文件的资源标识,所述资源标识的数据长度小于所述全路径信息的数据长度;
资源引用文件生成模块,用于将所述资源标识写入所述目标项目的资源引用文件,并在所述资源引用文件中建立所述全路径信息与所述资源标识之间的映射关系。
可选地,所述装置还包括:
全路径替换模块,用于根据所述资源引用文件中包含的资源标识,以及所述全路径信息与所述资源标识之间的映射关系,在所述目标项目的代码文件中通过所述资源标识替换所述全路径信息;
资源文件调用模块,用于在所述目标项目的编译执行过程中,根据所述代码文件中的资源标识,通过所述资源引用文件查找与所述资源标识对应的全路径信息,并根据所述全路径信息调用资源文件。
可选地,所述目标工程为Flutter工程,所述总配置文件为pubspec.yaml文件。
第三方面,本发明实施例另外提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如第一方面所述的资源管理方法的步骤。
第四方面,本发明实施例另外提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的资源管理方法的步骤。
在本发明实施例中,通过自动化的把资源文件声明到总配置文件中,并且在声明过程中可以针对PNG、JPEG等体积较大的资源文件自动处理成体积较大的格式,使目标项目的总体积减少。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中的一种资源管理方法的步骤流程图;
图2是本发明实施例中的另一种资源管理方法的步骤流程图;
图3是本发明实施例中的一种资源管理过程的流程示意图;
图4是本发明实施例中的一种资源管理装置的结构示意图;
图5是本发明实施例中的另一种资源管理装置的结构示意图;
图6是本发明实施例中的一种电子设备的硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照图1,示出了本发明实施例中一种资源管理方法的步骤流程图。
步骤110,在目标工程的编码阶段,扫描所述目标工程对应的资源文件目录下的每个资源文件,获取每个所述资源文件的资源类型;
步骤120,针对每个所述资源文件,响应于所述资源文件的资源类型为第一目标格式,将所述资源文件转化为第二目标格式,并获取转化后的所述第二目标格式的资源文件的全路径信息,根据所述全路径信息在所述总配置文件中添加针对所述第二目标格式的资源文件的声明;
步骤130,响应于所述资源文件的资源类型不是所述第一目标格式,获取所述资源文件的全路径信息,并根据所述全路径信息在所述总配置文件中添加针对所述资源文件的声明;其中,所述声明中包括所述全路径信息,所述第二目标格式的资源文件小于所述第一目标格式的资源文件。
在本发明实施例中,为了避免代码工程构建过程中,手动添加资源操作繁琐且容易出错、以及资源体积较大,使得项目占用空间较大的技术问题,可以在目标工程的编码阶段自动地依次扫描目标工程所需的各个资源文件的路径,以往目标工程的总配置文件中自动的逐个添加各个资源文件的全路径声明,也即包括资源文件的全路径信息的声明。而且,在总配置文件中添加资源文件的全路径声明的过程中,可以动态的根据资源文件的资源类型,对其中指定资源类型的资源文件进行转化处理,将其转换成体积更小的格式,然后才基于转化后的资源文件在总配置文件中添加声明。
具体地,针对任一目标工程,在目标工程的编码阶段,扫描所述目标工程对应的资源文件目录下的每个资源文件,获取每个所述资源文件的资源类型,针对每个所述资源文件,如果所述资源文件的资源类型为第一目标格式,将所述资源文件转化为第二目标格式,并获取转化后的所述第二目标格式的资源文件的全路径信息,根据所述全路径信息在所述总配置文件中添加针对所述第二目标格式的资源文件的声明;如果所述资源文件的资源类型不是所述第一目标格式,获取所述资源文件的全路径信息,并根据所述全路径信息在所述总配置文件中添加针对所述资源文件的声明;其中,所述声明中包括所述全路径信息,所述第二目标格式的资源文件小于所述第一目标格式的资源文件。
其中的目标工程可以为任意一种可用的代码开发平台、代码开发工具中创建的代码工程或者代码项目等,例如目标工程可以为一种Flutter工程/Flutter项目、Android工程/Android项目、iOS工程/iOS项目,等等。其中,Flutter是Google推出的跨平台的解决方案。
而且需要进行格式转化以进行数据压缩的第一目标格式,以及作为数据压缩处理的目标的第二目标格式均可以根据需求进行自定义设置,对此本发明实施例不加以限定。而且,为了保证转化处理后的目标工程的资源文件的体积有所下降,可以设置转化后的第二目标格式的资源文件小于转化前的第一目标格式的资源文件,而且可以设置第一目标格式为本身体积较大的资源文件的资源类型,具体可以根据需求进行自定义设置,对此本发明实施例不加以限定。而且在实际应用中,不同目标工程对应的资源文件目录可以根据需求进行自定义设置,对此本发明实施例也不加以限定。
目标工程对应的资源文件的类型也可以根据具体的应用场景进行自定义设置,对此本发明实施例也不加以限定。例如资源文件可以包括静态数据(例如JSON文件)、配置文件、图标资源和图片资源(JPEG,WebP,GIF,动画WebP/GIF,PNG,BMP和WBMP)、字体资源,等等。
以Flutter为例,其针对图片资源推荐的存放目录为:assets/images。而且图片资源中的PNG、JEPG等图片资源的体积一般较大,因此可以设置第一目标格式包括PNG、JEPG等图片格式。
那么针对上述图片资源的存放目录:assets/images下依次包含三个图片资源而言,如果第一个图片资源picture1的文件全称为ajh_fbbd_icon_jg.png,即为PNG格式,那么则可以将其转化为第二目标格式,得到第二目标格式的资源文件picture1’,此时相应目录下的第一个图片资源即被替换为第二目标格式的资源文件picture1’,而且在资源文件转化过程中,由于其格式发生变化,那么其全路径信息也会相应地产生变化,因此在总配置文件中添加声明时,则需要添加第二目标格式的资源文件picture1’的声明,而不是图片资源picture1的声明,那么则需要获取转化后的所述第二目标格式的图片资源picture1’的全路径信息。例如,可以在图片资源picture1转化为图片资源后,通过扫描目录:assets/images下图片资源picture1’的路径,得到其全路径信息;或者,也可以在图片资源picture1转化之前,通过扫描目录:assets/images下图片资源picture1的路径,得到图片资源picture1的全路径信息,进而根据转化过程中,文件路径的变化情况,针对picture1的全路径信息进行自适应调整,以得到图片资源picture1’的全路径信息,等等。
而如果上述图片资源的存放目录的第二个图片资源picture2的资源类型不是上述的第一目标格式,那么则无需对其进行转化,可以直接获取第二个图片资源picture2的全路径信息,以在所述总配置文件中添加针对图片资源picture2的声明。
在本发明实施例中,可以通过任何可用方法获取资源文件目录下的每个资源文件的资源类型,对此本发明实施例不加以限定。例如,可以通过文件识别模型识别各个资源文件的资源类型,或者可以通过读取各个资源文件的后缀名确认其资源类型,等等。
另外,在本发明实施例中,可以通过任何可用方式获取资源文件(包括转化后的资源文件和未转化的资源文件)的全路径信息,对此本发明实施例也不加以限定。例如,可以利用Dart注解技术,在编码阶段自动依次扫描获取各个资源文件的全路径信息等。其中,全路径信息指从根目录开始的路径信息,使用全路径信息可以唯一定位一个文件或者文件夹。
而且,在资源文件转化过程中,可以根据不同的第一目标格式和第二目标格式采用任何可用方式完成资源转化,对此本发明实施例也不加以限定。例如,在第一目标格式为PNG、JPEG、GIF等图片格式,第二目标格式为WebP格式的情况下,可以通过Google推出的cwebp工具完成资源文件的转化,等等。其中,WebP是Google新推出的影像技术,它可让网页图片有效进行压缩,同时又不影响图片格式兼容与实际清晰度,进而让整体网页下载速度加快,这个技术也可以使用到移动端。
例如,在总配置文件为pubspec.yaml的情况下,根据文件路径和名称拼接生成全路径信息的代码可以如下所示:
对于上述的图片资源picture1,自动添加到pubspec.yaml文件中的声明的格式可以如下所示:
assets:
-assets/images/ajh_fbbd_icon_jg.webp
添加到此总配置文件的资源,如果为指定的需要转化为第二目标格式(例如WebP格式的图片资源类型),都会以webp的新格式添加声明到总配置文件中,而对于其他的非指定图片或者文字等类型则不会转化。
而如果不使用自动化的方式生成,仍然采用现有技术中手动添加声明的方式,那么每新增一个资源文件都需要按照上面的格式手动写一行,当资源文件的总量巨大时,就会变得复杂而且容易出错。
参照图2,在本发明实施例中,所述步骤110进一步可以包括:
步骤111,扫描所述目标工程对应的资源文件目录下的每个资源文件的路径,得到每个所述资源文件的全路径信息,所述全路径信息中包括所述资源文件的访问路径、所述资源文件的文件名称、所述资源文件的文件后缀名;
步骤112,根据所述资源文件的文件后缀名,获取每个所述资源文件的资源类型。
如上述,全路径信息指从根目录开始的路径信息,使用全路径信息可以唯一定位一个文件或者文件夹。假设某一资源文件的全路径信息为:assets/images/ajh_fbbd_icon_jg.png,其中“assets/images/”可以理解为该资源文件的访问路径,“ajh_fbbd_icon_jg”为该资源文件的文件名称,“.png”为该资源文件的文件后缀名。其中,文件后缀名也称为文件扩展名(filename extension),是操作系统用来标志文件类型的一种机制。因此在本发明实施例中,为了快速且准确获取各个资源文件的资源类型,可以通过资源文件的文件后缀名,确认相应资源文件的资源类型。
相应地,获取所述第二目标格式的资源文件的全路径信息的过程,具体可以包括:
步骤121,获取所述第一目标格式的资源文件的全路径信息,以及与所述第二目标格式匹配的文件后缀名;
步骤122,通过与所述第二目标格式匹配的文件后缀名,替换所述第一目标格式的图片资源的全路径信息中的文件后缀名,并以替换后的全路径信息作为所述第二目标格式的资源文件的全路径信息。
如上述,如果在获取资源类型时已获取相应资源文件的全路径信息,而且转化前后的资源文件的存储位置一般不会发生变化,而且文件名称也一般不会变化,仅仅是文件后缀名产生变化,那么针对文件目录下需要进行格式转化的资源文件而言,可以不在文件转化完成后再次获取转化后的资源文件的全路径信息,而直接基于已经获取得到的转化前的第一目标格式的资源文件的全路径信息,以及与所述第二目标格式匹配的文件后缀名,通过与所述第二目标格式匹配的文件后缀名,替换所述第一目标格式的图片资源的全路径信息中的文件后缀名,并以替换后的全路径信息作为所述第二目标格式的资源文件的全路径信息。
例如,假设某一PNG格式的资源文件的全路径信息为assets/images/ajh_fbbd_icon_jg.png,且第二目标格式为webp格式,那么经转化后则可以将该资源文件转化为webp格式,其后缀名为.webp,此时为了得到转化后的资源文件的全路径信息,可以直接通过.webp替换assets/images/ajh_fbbd_icon_jg.png中的文件后缀名,得到assets/images/ajh_fbbd_icon_jg.webp即为转化后的第二目标格式的资源文件的全路径信息。
可选地,在本发明实施例中,根据所述全路径信息在所述总配置文件中添加针对所述资源文件的声明的过程,具体可以包括:
步骤S1,根据资源文件初始的全路径信息中各个路径字段的层级,通过文件通配符替换所述全路径信息中指定层级的路径字段,得到所述资源文件最终的全路径信息;
步骤S2,根据所述资源文件最终的全路径信息,在所述总配置文件中添加针对所述资源文件的声明。
在实际应用中,可能存在同时访问某一文件夹下任意多个文件,或者直接访问某一文件夹的情况,以同时对多个文件进行统一操作(例如统一修改、统一删除、统一读取等),或者当查找文件夹或者文件时,可以使用它来代替一个或多个真正字符,当不知道真正字符或者懒得输入完整名字时,常常使用通配符代替一个或多个真正的字符。而在实际应用中,资源文件的全路径信息可以准确性定位至相应资源文件,那么如果直接基于各个资源文件的全路径信息在总配置文件中进行声明,如果需要同时访问某一文件夹下任意多个文件,或者直接访问某一文件夹,则需要分别针对每个资源文件重复编写执行同样操作的代码,增加代码的长度且耗时。
因此,在本发明实施例中,为了满足上述需求,在总配置文件中针对各个资源文件进行配置时,可以根据资源文件初始的全路径信息中各个路径字段的层级,通过文件通配符替换所述全路径信息中指定层级的路径字段,得到所述资源文件最终的全路径信息,进而所述资源文件最终的全路径信息,在所述总配置文件中添加针对所述资源文件的声明。其中的指定层级可以根据需求进行自定义设置,对此本发明实施例不加以限定。例如可以设置指定层级为资源文件的文件名称所在的层级,等等。
当然,在本发明实施例中,也可以通过文件通配符替换全路径信息中指定层级的路径字段中的部分字符(例如指定字符或者是指定位置的字符等),或者是通过文件通配符替换全路径信息中指定位置的字符等,而且指定位置、指定字符等可以根据具体的应用场景和需求等进行自定义设置,对此本发明实施例不加以限定。而且文件通配符也可以根据需求进行自定义设置,对此本发明实施例也不加以限定。
例如,如果文件通配符为“*”,某一资源文件初始的全路径信息为assets/images/ajh_fbbd_icon_jg.webp,如果将其文件名称中后三位字符替换为文件通配符,则可以得到用于写入总配置文件中的最终的全路径信息为assets/images/ajh_fbbd_icon***.webp。此时通过该路径可以访问assets/images/路径下的文件名称中前部分为“ajh_fbbd_icon”,且后三位为任意字符的webp格式的文件。
可选地,在本发明实施例中,所述第一目标格式包括PNG图片格式、JPEG图片格式、GIF图片格式中的至少一种,所述第二目标格式包括WebP图片格式。
如上述,在本发明实施例中,可以通过cwebp工具,动态的把指定的第一目标格式的资源文件转换成体积更小的WebP格式,然后才添加声明至pubspec.yaml文件中。那么为了完成格式转化,需要在编译电脑里安装cwebp转换工具环境。在本发明实施例中,可以通过任何可用方式在编译电脑里安装cwebp转换工具环境,对此本发明实施例不加以限定。
例如,可以通过以下代码在编译电脑里安装cwebp转换工具环境:
await shell.run('cwebp -q 100 ajh_fbbd_icon_jg.png -o ajh_fbbd_icon_jg.webp');
在Dart代码中,启动进程统一处理,ajh_fbbd_icon_jg.png是读取的资源文件中的一个实例,在本发明实施例中,可以通过调用系统Shell命令等完成本地环境的交互调用。
参照图2,在本发明实施例中,所述方法进一步还可以包括:
步骤140,针对任意至少一个所述资源文件,根据所述资源文件的全路径信息,生成所述资源文件的资源标识,所述资源标识的数据长度小于所述全路径信息的数据长度。
步骤150,将所述资源标识写入所述目标项目的资源引用文件,并在所述资源引用文件中建立所述全路径信息与所述资源标识之间的映射关系。
如上述,在实际应用中,全路径信息中包含访问路径、文件名、后缀名等信息,由此可见资源文件的全路径信息的数据长度一般较大,由于是某一资源文件的根路径的层级较多,那么其全路径信息则更加复杂,编码阶段的代码拼写错误可能性较高,而且代码也较复杂。
因此在本发明实施例中,为了减少全路径拼写的错误可能,使得代码更简洁,还可以生成统一的资源引用文件,其中包含至少一个所述资源文件的资源标识,而且资源标识相对而言可以比全路径信息更简洁,也即资源标识的数据长度小于所述全路径信息的数据长度,在后续引用相应资源文件时,则可以通过相应资源文件的资源标识引用该资源文件。
具体地,可以针对任意至少一个所述资源文件,根据所述资源文件的全路径信息,生成所述资源文件的资源标识,所述资源标识的数据长度小于所述全路径信息的数据长度。进而将所述资源标识写入所述目标项目的资源引用文件,并在所述资源引用文件中建立所述全路径信息与所述资源标识之间的映射关系。
其中,可以针对目标工程对应的资源文件目录下的每个资源文件都生成其资源标识,也可以仅针对其中部分资源文件生成其资源标识,具体的可以根据需求进行自定义设置,对此本发明实施例不加以限定。而且,资源标识的命名策略也可以根据需求进行自定义设置,对此本发明实施例也不加以限定。
例如,资源标识可以是通过资源文件的文件名称经大写转化而成。例如对于上述的全路径信息as-sets/images/ajh_fbbd_icon_jg.webp,可以得到相应资源文件的资源标识为AJH_FBBD_ICON_JG。那么在目标项目中的代码文件中,可以在使用资源文件的位置直接使用其资源标识。在资源引用文件为*R.g.dart的情况下,可以通过以下代码段生成目标项目的资源引用文件,并生成资源文件的资源标识。
以上是全局的资源引用文件,资源标识是通过资源文件名大写转化而成。可以在使用的位置直接使用资源标识,如下为显示一张图片时的代码写法变化,
原始代码为:Image.asset(‘assets/images/ajh_fbbd_icon_jg.webp’);
变成:Image.asset(AJKR.AJH_FBBD_ICON_JG);
资源标识可以为相应资源文件全局的唯一别名,用自动生成的资源标识,例如AJKR.AJH_FBBD_ICON_JG代替全路径信息的拼写,例如assets/images/ajh_fbbd_icon_jg.webp,可以有效防止拼写错误。
那么在后续执行目标项目时,则可以通过资源引用文件中包含的资源标识与全路径信息之间的映射关系,查找与其目标项目中每个资源标识对应的全路径信息,进而可以根据相应的全路径信息从资源文件目录下调用相应的资源文件。
另外,在本发明实施例中,根据需求也可以将资源文件(包括无需进行格式转化的资源文件、需要进行格式转化且转化后的资源文件等)转存至资源引用文件中,并且设置直接从资源引用文件中读取相应资源文件并应用,对此本发明实施例不加以限定。
参照图2,在本发明实施例中,所述方法进一步还可以包括:
步骤160,根据所述资源引用文件中包含的资源标识,以及所述全路径信息与所述资源标识之间的映射关系,在所述目标项目的代码文件中通过所述资源标识替换所述全路径信息;
步骤170,在所述目标项目的编译执行过程中,根据所述代码文件中的资源标识,通过所述资源引用文件查找与所述资源标识对应的全路径信息,并根据所述全路径信息调用资源文件。
在获取得到资源引用文件之后,为了提高目标项目的代码简洁度,可以根据所述资源引用文件中包含的资源标识,以及所述全路径信息与所述资源标识之间的映射关系,在所述目标项目的代码文件中通过所述资源标识替换与之对应的全路径信息。而且目标项目的编码过程中,也可以直接根据资源引用文件中包含的资源标识替换与之对应的全路径信息。
例如,可以通过上述的资源标识AJKR.AJH_FBBD_ICON_JG,代替目标项目的代码文件中的全路径信息的拼写assets/images/ajh_fbbd_icon_jg.webp,等等。
那么在所述目标项目的编译执行过程中,则可以根据根据所述代码文件中的资源标识,通过所述资源引用文件查找与所述资源标识对应的全路径信息,并根据所述全路径信息调用资源文件。
可选地,在本发明实施例中,所述目标工程为Flutter工程,所述总配置文件为pubspec.yaml文件。
在本发明实施例中,通过自动化的把资源声明到pubspec.yaml文件中,可以提高资源管理的便利性。而且,在声明过程中可以针对PNG、JPEG等图片文件自动处理成WebP,使项目总体积减少。此外,还可以生成一个资源引用文件,并且在项目中同引用资源引用文件中资源标识的方式,代替了各处的全路径信息的拼写,减少全路径拼写的错误可能,使得代码更简洁。
而且在本发明实施例中,可以依次读取资源文件目录下的每个资源文件,进而依次针对每个资源文件执行上述步骤,以将其中第一目标格式的资源文件转化为第二目标格式的资源文件,并将转化后的第二目标格式的资源文件声明至总配置文件中,同时可以将转化后的第二目标格式的资源文件的资源标识写入资源引用文件中,而将除第一目标格式之外的其他资源类型的资源文件直接声明至总配置文件中,同时将除第一目标格式之外的其他资源类型的资源文件的资源标识写入资源引用文件中,直至遍历至资源文件目录下的最后一个资源文件并处理完毕。如图3所示为一种资源管理过程的流程示意图。其中,pubspec.yaml是总配置文件,*R.g.dart是资源引用文件。
参照图4,示出了本发明实施例中一种资源管理装置的结构示意图。
本发明实施例的资源管理装置包括:资源类型获取模块210、第一资源声明模块220和第二资源声明模块230。
下面分别详细介绍各模块的功能以及各模块之间的交互关系。
资源类型获取模块210,用于在目标工程的编码阶段,扫描所述目标工程对应的资源文件目录下的每个资源文件,获取每个所述资源文件的资源类型;
第一资源声明模块220,用于针对每个所述资源文件,响应于所述资源文件的资源类型为第一目标格式,将所述资源文件转化为第二目标格式,并获取转化后的所述第二目标格式的资源文件的全路径信息,根据所述全路径信息在所述总配置文件中添加针对所述第二目标格式的资源文件的声明;
第二资源声明模块230,用于响应于所述资源文件的资源类型不是所述第一目标格式,获取所述资源文件的全路径信息,并根据所述全路径信息在所述总配置文件中添加针对所述资源文件的声明;
其中,所述声明中包括所述全路径信息,所述第二目标格式的资源文件小于所述第一目标格式的资源文件。
参照图5,在本发明实施例中,所述资源类型获取模块210,进一步可以包括:
路径扫描子模块211,用于扫描所述目标工程对应的资源文件目录下的每个资源文件的路径,得到每个所述资源文件的全路径信息,所述全路径信息中包括所述资源文件的访问路径、所述资源文件的文件名称、所述资源文件的文件后缀名;
资源类型获取子模块212,用于根据所述资源文件的文件后缀名,获取每个所述资源文件的资源类型。
可选地,在本发明实施例中,所述第一资源声明模块220,进一步可以包括:
路径构建信息获取子模块,用于获取所述第一目标格式的资源文件的全路径信息,以及与所述第二目标格式匹配的文件后缀名;
全路径信息获取子模块,用于通过与所述第二目标格式匹配的文件后缀名,替换所述第一目标格式的图片资源的全路径信息中的文件后缀名,并以替换后的全路径信息作为所述第二目标格式的资源文件的全路径信息。
可选地,在本发明实施例中,所述第二资源声明模块230,进一步可以包括:
全路径信息处理子模块,用于根据资源文件初始的全路径信息中各个路径字段的层级,通过文件通配符替换所述全路径信息中指定层级的路径字段,得到所述资源文件最终的全路径信息;
资源声明子模块,用于根据所述资源文件最终的全路径信息,在所述总配置文件中添加针对所述资源文件的声明。
可选地,所述第一目标格式包括PNG图片格式、JPEG图片格式、GIF图片格式中的至少一种,所述第二目标格式包括WebP图片格式。
参照图5,在本发明实施例中,所述装置还可以包括:
资源标识生成模块240,用于针对任意至少一个所述资源文件,根据所述资源文件的全路径信息,生成所述资源文件的资源标识,所述资源标识的数据长度小于所述全路径信息的数据长度;
资源引用文件生成模块250,用于将所述资源标识写入所述目标项目的资源引用文件,并在所述资源引用文件中建立所述全路径信息与所述资源标识之间的映射关系。
参照图5,在本发明实施例中,所述装置还可以包括:
全路径替换模块260,用于根据所述资源引用文件中包含的资源标识,以及所述全路径信息与所述资源标识之间的映射关系,在所述目标项目的代码文件中通过所述资源标识替换所述全路径信息;
资源文件调用模块270,用于在所述目标项目的编译执行过程中,根据所述代码文件中的资源标识,通过所述资源引用文件查找与所述资源标识对应的全路径信息,并根据所述全路径信息调用资源文件。
可选地,所述目标工程为Flutter工程,所述总配置文件为pubspec.yaml文件。
本发明实施例提供的资源管理装置能够实现图1至图2的方法实施例中实现的各个过程,为避免重复,这里不再赘述。
优选的,本发明实施例还提供了一种电子设备,包括:处理器,存储器,存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述资源管理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述资源管理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
图6为实现本发明各个实施例的一种电子设备的硬件结构示意图。
该电子设备500包括但不限于:射频单元501、网络模块502、音频输出单元503、输入单元504、传感器505、显示单元506、用户输入单元507、接口单元508、存储器509、处理器510、以及电源511等部件。本领域技术人员可以理解,图6中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本发明实施例中,电子设备包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。
应理解的是,本发明实施例中,射频单元501可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器510处理;另外,将上行的数据发送给基站。通常,射频单元501包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元501还可以通过无线通信系统与网络和其他设备通信。
电子设备通过网络模块502为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。
音频输出单元503可以将射频单元501或网络模块502接收的或者在存储器509中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元503还可以提供与电子设备500执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元503包括扬声器、蜂鸣器以及受话器等。
输入单元504用于接收音频或视频信号。输入单元504可以包括图形处理器(Graphics Processing Unit,GPU)5041和麦克风5042,图形处理器5041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元506上。经图形处理器5041处理后的图像帧可以存储在存储器509(或其它存储介质)中或者经由射频单元501或网络模块502进行发送。麦克风5042可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元501发送到移动通信基站的格式输出。
电子设备500还包括至少一种传感器505,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板5061的亮度,接近传感器可在电子设备500移动到耳边时,关闭显示面板5061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别电子设备姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器505还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。
显示单元506用于显示由用户输入的信息或提供给用户的信息。显示单元506可包括显示面板5061,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板5061。
用户输入单元507可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元507包括触控面板5071以及其他输入设备5072。触控面板5071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板5071上或在触控面板5071附近的操作)。触控面板5071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器510,接收处理器510发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板5071。除了触控面板5071,用户输入单元507还可以包括其他输入设备5072。具体地,其他输入设备5072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
进一步的,触控面板5071可覆盖在显示面板5061上,当触控面板5071检测到在其上或附近的触摸操作后,传送给处理器510以确定触摸事件的类型,随后处理器510根据触摸事件的类型在显示面板5061上提供相应的视觉输出。虽然在图6中,触控面板5071与显示面板5061是作为两个独立的部件来实现电子设备的输入和输出功能,但是在某些实施例中,可以将触控面板5071与显示面板5061集成而实现电子设备的输入和输出功能,具体此处不做限定。
接口单元508为外部装置与电子设备500连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元508可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到电子设备500内的一个或多个元件或者可以用于在电子设备500和外部装置之间传输数据。
存储器509可用于存储软件程序以及各种数据。存储器509可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器509可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器510是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器509内的软件程序和/或模块,以及调用存储在存储器509内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。处理器510可包括一个或多个处理单元;优选的,处理器510可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器510中。
电子设备500还可以包括给各个部件供电的电源511(比如电池),优选的,电源511可以通过电源管理系统与处理器510逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
另外,电子设备500包括一些未示出的功能模块,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
本领域普通技术人员可以意识到,结合本发明实施例中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种资源管理方法,其特征在于,包括:
在目标工程的编码阶段,扫描所述目标工程对应的资源文件目录下的每个资源文件,获取每个所述资源文件的资源类型;
针对每个所述资源文件,响应于所述资源文件的资源类型为第一目标格式,将所述资源文件转化为第二目标格式,并获取转化后的所述第二目标格式的资源文件的全路径信息,根据所述全路径信息在总配置文件中添加针对所述第二目标格式的资源文件的声明;
响应于所述资源文件的资源类型不是所述第一目标格式,获取所述资源文件的全路径信息,并根据所述全路径信息在所述总配置文件中添加针对所述资源文件的声明;
其中,所述声明中包括所述全路径信息,所述第二目标格式的资源文件小于所述第一目标格式的资源文件;
所述获取转化后的所述第二目标格式的资源文件的全路径信息,包括:
获取所述第一目标格式的资源文件的全路径信息,以及与所述第二目标格式匹配的文件后缀名;所述第一目标格式的资源文件的全路径信息通过扫描所述目标工程对应的资源文件目录下的每个资源文件的路径得到;所述全路径信息中包括所述资源文件的文件后缀名;
通过与所述第二目标格式匹配的文件后缀名,替换所述第一目标格式的图片资源的全路径信息中的文件后缀名,并以替换后的全路径信息作为所述第二目标格式的资源文件的全路径信息。
2.根据权利要求1所述的方法,其特征在于,所述扫描所述目标工程对应的资源文件目录下的每个资源文件,获取每个所述资源文件的资源类型的步骤,包括:
扫描所述目标工程对应的资源文件目录下的每个资源文件的路径,得到每个所述资源文件的全路径信息,所述全路径信息中还包括所述资源文件的访问路径、所述资源文件的文件名称;
根据所述资源文件的文件后缀名,获取每个所述资源文件的资源类型。
3.根据权利要求1-2中任一项所述的方法,其特征在于,根据所述全路径信息在所述总配置文件中添加针对所述资源文件的声明的步骤,包括:
根据资源文件初始的全路径信息中各个路径字段的层级,通过文件通配符替换所述全路径信息中指定层级的路径字段,得到所述资源文件最终的全路径信息;
根据所述资源文件最终的全路径信息,在所述总配置文件中添加针对所述资源文件的声明。
4.根据权利要求1-2中任一项所述的方法,其特征在于,所述第一目标格式包括PNG图片格式、JPEG图片格式、GIF图片格式中的至少一种,所述第二目标格式包括WebP图片格式。
5.根据权利要求1-2中任一项所述的方法,其特征在于,所述方法还包括:
针对任意至少一个所述资源文件,根据所述资源文件的全路径信息,生成所述资源文件的资源标识,所述资源标识的数据长度小于所述全路径信息的数据长度;
将所述资源标识写入所述目标项目的资源引用文件,并在所述资源引用文件中建立所述全路径信息与所述资源标识之间的映射关系。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
根据所述资源引用文件中包含的资源标识,以及所述全路径信息与所述资源标识之间的映射关系,在所述目标项目的代码文件中通过所述资源标识替换所述全路径信息;
在所述目标项目的编译执行过程中,根据所述代码文件中的资源标识,通过所述资源引用文件查找与所述资源标识对应的全路径信息,并根据所述全路径信息调用资源文件。
7.根据权利要求1-2中任一项所述的方法,其特征在于,所述目标工程为Flutter工程,所述总配置文件为pubspec.yaml文件。
8.一种资源管理装置,其特征在于,包括:
资源类型获取模块,用于在目标工程的编码阶段,扫描所述目标工程对应的资源文件目录下的每个资源文件,获取每个所述资源文件的资源类型;
第一资源声明模块,用于针对每个所述资源文件,响应于所述资源文件的资源类型为第一目标格式,将所述资源文件转化为第二目标格式,并获取转化后的所述第二目标格式的资源文件的全路径信息,根据所述全路径信息在总配置文件中添加针对所述第二目标格式的资源文件的声明;
第二资源声明模块,用于响应于所述资源文件的资源类型不是所述第一目标格式,获取所述资源文件的全路径信息,并根据所述全路径信息在所述总配置文件中添加针对所述资源文件的声明;
其中,所述声明中包括所述全路径信息,所述第二目标格式的资源文件小于所述第一目标格式的资源文件;
所述第一资源声明模块包括:
路径构建信息获取子模块,用于获取所述第一目标格式的资源文件的全路径信息,以及与所述第二目标格式匹配的文件后缀名;所述第一目标格式的资源文件的全路径信息通过扫描所述目标工程对应的资源文件目录下的每个资源文件的路径得到;所述全路径信息中包括所述资源文件的文件后缀名;
全路径信息获取子模块,用于通过与所述第二目标格式匹配的文件后缀名,替换所述第一目标格式的图片资源的全路径信息中的文件后缀名,并以替换后的全路径信息作为所述第二目标格式的资源文件的全路径信息。
9.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的资源管理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的资源管理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010982892.5A CN112084747B (zh) | 2020-09-17 | 2020-09-17 | 一种资源管理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010982892.5A CN112084747B (zh) | 2020-09-17 | 2020-09-17 | 一种资源管理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112084747A CN112084747A (zh) | 2020-12-15 |
CN112084747B true CN112084747B (zh) | 2024-02-02 |
Family
ID=73737310
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010982892.5A Active CN112084747B (zh) | 2020-09-17 | 2020-09-17 | 一种资源管理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112084747B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112817913B (zh) * | 2021-04-19 | 2021-07-09 | 浙江华创视讯科技有限公司 | 数据传输方法、装置、电子设备及存储介质 |
CN113986376A (zh) * | 2021-10-25 | 2022-01-28 | 土巴兔集团股份有限公司 | 一种基于Flutter平台的资源文件更新方法及其相关设备 |
CN114489639A (zh) * | 2021-12-22 | 2022-05-13 | 北京达佳互联信息技术有限公司 | 文件生成方法、装置、设备及存储介质 |
CN116800877A (zh) * | 2022-03-17 | 2023-09-22 | 华为技术有限公司 | 一种图片的处理方法及相关设备 |
CN117112500B (zh) * | 2023-10-17 | 2024-01-26 | 天津市天河计算机技术有限公司 | 一种资源管理方法、装置、设备和存储介质 |
CN118113313B (zh) * | 2024-03-22 | 2024-08-06 | 广州三七极梦网络技术有限公司 | 一种用于Flutter的资源文件路径获取方法、装置、设备及介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017219526A1 (zh) * | 2016-06-23 | 2017-12-28 | 乐视控股(北京)有限公司 | 一种图形文件格式的使用方法及存储设备 |
CN108829378A (zh) * | 2018-05-24 | 2018-11-16 | 北京顺丰同城科技有限公司 | 一种应用软件的开发方法、装置及电子设备 |
CN108846118A (zh) * | 2018-06-27 | 2018-11-20 | 成都优易数据有限公司 | 一种智能适配多数据源的实现方法 |
CN109621406A (zh) * | 2018-12-06 | 2019-04-16 | 网易(杭州)网络有限公司 | 一种配置文件的生成方法和装置 |
CN109739600A (zh) * | 2018-12-26 | 2019-05-10 | 网易传媒科技(北京)有限公司 | 数据处理方法、介质、装置和计算设备 |
CN110990023A (zh) * | 2019-12-16 | 2020-04-10 | 上海钧正网络科技有限公司 | aar文件的依赖关系上传方法、装置、存储介质及电子设备 |
CN111459465A (zh) * | 2020-03-27 | 2020-07-28 | 北京五八信息技术有限公司 | 一种Flutter工程文件的生成方法和装置 |
CN111538502A (zh) * | 2020-03-27 | 2020-08-14 | 北京达佳互联信息技术有限公司 | 安装包的处理方法、装置、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106980504B (zh) * | 2017-03-28 | 2022-07-01 | 腾讯科技(深圳)有限公司 | 一种应用程序开发方法及其工具、设备 |
-
2020
- 2020-09-17 CN CN202010982892.5A patent/CN112084747B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017219526A1 (zh) * | 2016-06-23 | 2017-12-28 | 乐视控股(北京)有限公司 | 一种图形文件格式的使用方法及存储设备 |
CN108829378A (zh) * | 2018-05-24 | 2018-11-16 | 北京顺丰同城科技有限公司 | 一种应用软件的开发方法、装置及电子设备 |
CN108846118A (zh) * | 2018-06-27 | 2018-11-20 | 成都优易数据有限公司 | 一种智能适配多数据源的实现方法 |
CN109621406A (zh) * | 2018-12-06 | 2019-04-16 | 网易(杭州)网络有限公司 | 一种配置文件的生成方法和装置 |
CN109739600A (zh) * | 2018-12-26 | 2019-05-10 | 网易传媒科技(北京)有限公司 | 数据处理方法、介质、装置和计算设备 |
CN110990023A (zh) * | 2019-12-16 | 2020-04-10 | 上海钧正网络科技有限公司 | aar文件的依赖关系上传方法、装置、存储介质及电子设备 |
CN111459465A (zh) * | 2020-03-27 | 2020-07-28 | 北京五八信息技术有限公司 | 一种Flutter工程文件的生成方法和装置 |
CN111538502A (zh) * | 2020-03-27 | 2020-08-14 | 北京达佳互联信息技术有限公司 | 安装包的处理方法、装置、电子设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
【Flutter学习】Flutter工程目录介绍、资源管理、不同分辨率图片、添加依赖 - gregpeng - 博客园 (cnblogs.com);gregpeng;《https://www.cnblogs.com/gregpeng/p/10934330.html》;1-8 * |
Flutter系列之图片的声明和使用;Mr_tigerchou;《https://blog.csdn.net/shving/article/details/107732994》;1-6 * |
机构知识库开源软件Dspace的开发策略研究;俞小怡;金玉玲;常艳;;现代情报(06);140-142 * |
Also Published As
Publication number | Publication date |
---|---|
CN112084747A (zh) | 2020-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112084747B (zh) | 一种资源管理方法、装置、电子设备及存储介质 | |
CN108966004B (zh) | 一种视频处理方法及终端 | |
US11658932B2 (en) | Message sending method and terminal device | |
CN109857297B (zh) | 信息处理方法及终端设备 | |
US11481357B2 (en) | Album display method, electronic device, and storage medium | |
EP3843356B1 (en) | Management method for model files, terminal device and computer-readable storage medium | |
CN111222063A (zh) | 富文本渲染方法、装置、电子设备及存储介质 | |
CN106203228A (zh) | 二维码信息传输方法、装置以及设备 | |
CN111399819B (zh) | 数据生成方法、装置、电子设备及存储介质 | |
CN109902092B (zh) | 一种数据存储系统的操作方法、装置和移动终端 | |
CN109063079B (zh) | 网页标注方法及电子设备 | |
CN112433721B (zh) | 一种应用组件化处理方法、装置、电子设备及存储介质 | |
CN111752688B (zh) | 一种数据获取方法、装置、电子设备及存储介质 | |
CN111130995B (zh) | 图像控制方法、电子设备及存储介质 | |
CN106230919B (zh) | 一种文件上传的方法和装置 | |
CN110245017B (zh) | 资源标识的分配方法和设备 | |
CN108491225B (zh) | 一种更新包生成方法及移动终端 | |
CN111026454A (zh) | 功能启动方法及终端设备 | |
CN115632942A (zh) | 联机接口配置方法、系统、计算机设备及可读存储介质 | |
CN108803987B (zh) | 一种应用程序的删除方法及终端 | |
CN115145437B (zh) | 桌面图标的修改方法、装置及终端设备 | |
CN111405003B (zh) | 一种资源加载方法及电子设备 | |
EP4261701A1 (en) | Distributed file access method, and related device | |
CN111930686B (zh) | 存储日志的方法、装置和计算机设备 | |
CN116820677A (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 |