利索能及
我要发布
收藏
专利号: 2021109759173
申请人: 平安科技(深圳)有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2026-06-16
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种安卓安装包压缩方法,其特征在于,包括:

监听安卓安装包打包流程的每个任务节点,得到每个任务节点对应的任务类型,并将得到的任务类型与指定类型进行匹配检测,得到检测结果;

若所述检测结果为检测到指定类型的任务,则将所述指定类型的任务作为目标任务,并获取所述目标任务对应的资源文件,作为第一文件;

基于预设的文件与二进制抽取文件对应的命名方式,对执行所述目标任务的输入文件夹中的每个文件名称进行遍历匹配,得到文件名称与所述第一文件名称对应的二进制抽取文件,作为第二文件,其中,所述输入文件夹为安装包文件中的文件夹;

所述基于预设的文件与二进制抽取文件对应的命名方式,对执行所述目标任务的输入文件夹中的文件名称进行遍历,得到名称与所述第一文件对应的二进制抽取文件,作为第二文件的具体步骤包括:获取预设的文件与所述预设的文件对应的二进制抽取文件对应的命名方式,其中,所述预设的文件的文件名称与所述二进制抽取文件的文件名称是根据预先设置的所述命名方式进行命名的;

读取执行所述目标任务的第一个输入文件;

判断读取到的输入文件是否为二进制抽取文件;若所述读取到的输入文件为二进制抽取文件,则基于所述命名方式,确定所述读取到的输入文件对应的原始文件的文件名,作为原始文件名称;

将所述原始文件名称与所述第一文件的文件名称进行对比,得到比较结果;

若比较结果为文件名称不同,则读取下一个输入文件,并返回所述判断读取到的输入文件是否为二进制抽取文件的步骤继续执行;

若比较结果为文件名称相同,则将所述读取到的输入文件作为所述第一文件对应的二进制抽取文件;

对所述第二文件进行二次压缩,得到压缩资源文件,并采用所述压缩资源文件替换所述第二文件,得到更新后的输入文件夹;

对包含所述更新后的输入文件夹的安装包文件进行压缩打包,得到压缩后的安卓安装包文件;

在所述对包含所有所述输入文件的文件夹进行压缩打包,得到压缩后的安卓安装包文件之前,所述安卓安装包压缩方法的具体步骤还包括:在构建过程中,对res文件夹和drawable文件夹中未引用资源文件进行清理,并对res文件夹和drawable文件夹中的图片资源进行无损压缩,得到更新后的res文件夹和更新后的drawable文件夹。

2.如权利要求1所述的安卓安装包压缩方法,其特征在于,采用项目自动化构建工具gradle对所述安卓安装包进行监听。

3.如权利要求2所述的安卓安装包压缩方法,其特征在于,所述获取所述目标任务对应的资源文件,作为第一文件,包括:在构建的执行阶段,通过添加doFirst方法增加资源文件读取任务;

在资源文件读取任务被执行后,生成包含资源文件名称的调试日志;

从所述调试日志中获取资源文件名称,并从所有所述输入文件中,读取与所述资源文件名称对应的文件,作为第一文件。

4.如权利要求1所述的安卓安装包压缩方法,其特征在于,所述采用所述压缩资源文件替换所述第二文件,得到更新后的输入文件夹,包括:将所述压缩资源文件写入到与所述第二文件同路径的临时文件夹中;

删除所述第二文件,并将所述压缩资源文件的文件名更新为所述第二文件的文件名,得到更新后的输入文件夹。

5.如权利要求1至4任一项所述的安卓安装包压缩方法,其特征在于,所述将所述原始文件名称与所述第一文件的文件名称进行对比,得到比较结果,包括:读取所述原始文件名称的字符长度,作为第一长度,读取所述第一文件的文件名称的字符长度,作为第二长度;

若所述第一长度与第二长度不同,则确定所述比较结果为文件名称不同;

若所述第一长度与第二长度相同,则按从前往后的顺序,对每个位置的字符进行比较;

若存在任一位置的字符不同,则终止比较,并确定所述比较结果为名称不同,若每个位置的字符均相同,则确认所述比较结果为文件名称相同。

6.一种安卓安装包压缩装置,其特征在于,包括:

任务节点监听模块,用于监听安卓安装包打包流程的每个任务节点,得到每个任务节点对应的任务类型,并将得到的任务类型与指定类型进行匹配检测,得到检测结果;

第一文件获取模块,用于若所述检测结果为检测到指定类型的任务,则将所述指定类型的任务作为目标任务,并获取所述目标任务对应的资源文件,作为第一文件;

第二文件获取模块,用于基于预设的文件与二进制抽取文件对应的命名方式,对执行所述目标任务的输入文件夹中的每个文件名称进行遍历匹配,得到名称与所述第一文件对应的二进制抽取文件,作为第二文件,其中,所述输入文件夹为安装包文件中的文件夹;

第二文件更新模块,用于对所述第二文件进行二次压缩,得到压缩资源文件,并采用所述压缩资源文件替换所述第二文件,得到更新后的输入文件夹;

安装包生成模块,用于对包含所述更新后的输入文件夹的安装包文件进行压缩打包,得到压缩后的安卓安装包文件;

所述第二文件获取模块包括:

命名方式获取单元,用于获取预设的文件与所述预设的文件对应的二进制抽取文件对应的命名方式,其中,所述预设的文件的文件名称与所述二进制抽取文件的文件名称是根据预先设置的所述命名方式进行命名的;

输入文件读取单元,用于读取执行所述目标任务的第一个输入文件;

文件类型判断单元,用于判断读取到的输入文件是否为二进制抽取文件;若所述读取到的输入文件为二进制抽取文件,则基于所述命名方式,确定所述读取到的输入文件对应的原始文件的文件名,作为原始文件名称;

名称对比单元,用于将所述原始文件名称与所述第一文件的文件名称进行对比,得到比较结果;

循环迭代单元,用于若比较结果为文件名称不同,则读取下一个输入文件,并返回所述判断读取到的输入文件是否为二进制抽取文件的步骤继续执行;

结果确定单元,用于若比较结果为文件名称相同,则将所述读取到的输入文件作为所述第一文件对应的二进制抽取文件;

所述安卓安装包压缩装置包括:

文件清理压缩模块,用于在构建过程中,对res文件夹和drawable文件夹中未引用资源文件进行清理,并对res文件夹和drawable文件夹中的图片资源进行无损压缩,得到更新后的res文件夹和更新后的drawable文件夹。

7.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至

5任一项所述的安卓安装包压缩方法。

8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的安卓安装包压缩方法。