应用程序安装包文件编译构建方法、装置及电子设备制造方法及图纸

技术编号:29788652 阅读:10 留言:0更新日期:2021-08-24 18:07
本申请实施例公开了应用程序安装包文件编译构建方法、装置及电子设备,所述方法包括:从与安装目标应用程序相关的文件中确定目标文件;利用第一压缩算法对所述目标文件进行压缩,得到压缩后的目标文件;设置所述目标应用程序的代码文件中对所述目标文件进行加载的相关代码为自定义加载类;利用第二压缩算法,对所述压缩后的目标文件、所述代码文件以及与安装所述目标应用程序相关的其他文件进行压缩,生成所述应用程序的安装包文件;所述自定义加载类用于在所述目标应用程序被安装后的运行阶段,对加载所述目标文件的请求进行拦截,并对处于压缩状态的目标文件进行解压处理。通过本申请实施例,能够优化安装包的体积。

【技术实现步骤摘要】
应用程序安装包文件编译构建方法、装置及电子设备
本申请涉及应用程序安装包编译构建
,特别是涉及应用程序安装包文件编译构建方法、装置及电子设备。
技术介绍
随着应用程序中功能的增加,会导致应用程序安装文件的体积增大。而如果一个应用的安装文件体积比较大,则至少可能带来以下几点影响:第一,下载转化率低,通常而言,用户比较倾向于选择体积比较小的安装包进行下载,因此,安装包的体积越小,对应的下载率越高。另外,应用程序在进行大版本更新时通常会丢失用户,安装包越大,则丢失比例越大。第二,在需要对应用程序进行推广等场景中,具体的推广平台一般按照流量进行计费,因此,安装包体积越大,则推广成本越高。因此,如何优化安装包体积是一个很重要的问题。现有技术中优化安装包体积的方式通常是对资源文件或者第三方开源库的代码进行优化。例如,对于资源文件的优化主要包括在图片文件的格式的选择(对于没有透明度需求的图片,则选择jpg和jpeg,相对png的文件体积更小)、图片的压缩、重复图片的删除等。第三方开源库方法的优化主要包括裁剪掉第三方开源库的一些代码等。但是,在以上各种优化方式的基础上,如何进一步优化安装包的体积,现有技术中并没有给出相应的解决方案。
技术实现思路
本申请提供了应用程序安装包文件编译构建方法、装置及电子设备,能够优化安装包的体积。本申请提供了如下方案:一种应用程序安装包文件编译构建方法,包括:从与安装目标应用程序相关的文件中确定目标文件;利用第一压缩算法对所述目标文件进行压缩,得到压缩后的目标文件;设置所述目标应用程序的代码文件中对所述目标文件进行加载的相关代码为自定义加载类;利用第二压缩算法,对所述压缩后的目标文件、所述代码文件以及与安装所述目标应用程序相关的其他文件进行压缩,生成所述应用程序的安装包文件;其中,所述自定义加载类用于在所述目标应用程序被安装后的运行阶段,对加载所述目标文件的请求进行拦截,并对处于压缩状态的目标文件进行解压处理。一种应用程序安装包文件处理方法,包括:在通过编译构建工具对应用程序进行安装包文件的编译及构建的过程中,从与安装目标应用程序相关的文件中确定目标文件;利用第一压缩算法,对所述目标文件进行压缩,得到压缩后的目标文件;设置所述目标应用程序的代码文件中对所述目标文件进行加载的相关代码为自定义加载类;将所述压缩后的目标文件以及所述代码文件提供给所述编译构建工具,所述编译构建工具用于利用第二压缩算法,对所述压缩后的目标文件、所述代码文件以及与安装所述应用程序相关的其他文件进行压缩,生成所述应用程序的安装包文件;其中,所述自定义加载类用于在所述应用程序被安装后的运行阶段,对加载所述目标文件的请求进行拦截,并对处于压缩状态的目标文件进行解压处理。一种文件加载方法,包括:在应用程序运行过程中,对加载目标文件的请求进行拦截,所述目标文件在所述应用程序安装完成后处于压缩状态;对处于压缩状态的所述目标文件进行解压处理;将所述加载目标文件的请求放行,以进行对解压后的目标文件的加载。一种应用程序安装包文件编译构建装置,包括:目标文件确定单元,用于从与安装目标应用程序相关的文件中确定目标文件;第一压缩单元,用于利用第一压缩算法对所述目标文件进行压缩,得到压缩后的目标文件;代码文件设置单元,用于设置所述目标应用程序的代码文件中对所述目标文件进行加载的相关代码为自定义加载类;第二压缩单元,用于利用第二压缩算法,对所述压缩后的目标文件、所述代码文件以及与安装所述目标应用程序相关的其他文件进行压缩,生成所述应用程序的安装包文件;其中,所述自定义加载类用于在所述目标应用程序被安装后的运行阶段,对加载所述目标文件的请求进行拦截,并对处于压缩状态的目标文件进行解压处理。一种应用程序安装包文件处理装置,包括:目标文件确定单元,用于在通过编译构建工具对应用程序进行安装包文件的编译及构建的过程中,从与安装目标应用程序相关的文件中确定目标文件;压缩单元,用于利用第一压缩算法,对所述目标文件进行压缩,得到压缩后的目标文件;代码设置单元,用于设置所述目标应用程序的代码文件中对所述目标文件进行加载的相关代码为自定义加载类;文件提供单元,用于将所述压缩后的目标文件以及所述代码文件提供给所述编译构建工具,所述编译构建工具用于利用第二压缩算法,对所述压缩后的目标文件、所述代码文件以及与安装所述应用程序相关的其他文件进行压缩,生成所述应用程序的安装包文件;其中,所述自定义加载类用于在所述应用程序被安装后的运行阶段,对加载所述目标文件的请求进行拦截,并对处于压缩状态的目标文件进行解压处理。一种文件加载装置,包括:请求拦截单元,用于在应用程序运行过程中,对加载目标文件的请求进行拦截,所述目标文件在所述应用程序安装完成后处于压缩状态;解压处理单元,用于对处于压缩状态的所述目标文件进行解压处理;请求放行单元,用于将所述加载目标文件的请求放行,以进行对解压后的目标文件的加载。根据本申请提供的具体实施例,本申请公开了以下技术效果:通过本申请实施例,在对应用程序进行安装包文件的编译及构建的过程中,可以确定出与安装所述应用程序相关的文件,利用第一压缩算法,对其中的目标文件进行压缩,得到压缩后的目标文件,并将其中的代码文件中对所述目标文件进行加载的相关代码设置为自定义加载类。之后,编译构建工具用于可以利用第二压缩算法,对压缩后的目标文件、代码文件以及与安装应用程序相关的其他文件进行压缩,生成应用程序的安装包文件。在利用这种安装包文件完成对应用程序的安装之后,之前通过第一压缩算法进行了压缩的目标文件仍然处于压缩状态,因此,后续在具体应用程序被安装后的运行阶段,可以通过自定义加载类对加载目标文件的请求进行拦截,并对处于压缩状态的目标文件进行解压处理。通过该方案,由于在对所有文件统一构建成一个压缩包之前,还对其中的部分文件进行了压缩处理,因此,可以减小安装包的体积。同时,通过自定义加载类,可以在应用程序运行阶段对加载目标文件的请求进行拦截,并将处于压缩状态的目标文件进行解压处理,以确保具体动态链接库文件的正常加载。当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本申请实施例提供的系统架构的示意图;图2是本申请实施例提供的第一方法的流程图;图3是本申请实施例提供的第二方法的流程图;图4是本申请实施例提供的第三方法的流程图;图5是本申请实施例提供的第一装置的示意图本文档来自技高网...

【技术保护点】
1.一种应用程序安装包文件编译构建方法,其特征在于,包括:/n从与安装目标应用程序相关的文件中确定目标文件;/n利用第一压缩算法对所述目标文件进行压缩,得到压缩后的目标文件;/n设置所述目标应用程序的代码文件中对所述目标文件进行加载的相关代码为自定义加载类;/n利用第二压缩算法,对所述压缩后的目标文件、所述代码文件以及与安装所述目标应用程序相关的其他文件进行压缩,生成所述应用程序的安装包文件;/n其中,所述自定义加载类用于在所述目标应用程序被安装后的运行阶段,对加载所述目标文件的请求进行拦截,并对处于压缩状态的目标文件进行解压处理。/n

【技术特征摘要】
1.一种应用程序安装包文件编译构建方法,其特征在于,包括:
从与安装目标应用程序相关的文件中确定目标文件;
利用第一压缩算法对所述目标文件进行压缩,得到压缩后的目标文件;
设置所述目标应用程序的代码文件中对所述目标文件进行加载的相关代码为自定义加载类;
利用第二压缩算法,对所述压缩后的目标文件、所述代码文件以及与安装所述目标应用程序相关的其他文件进行压缩,生成所述应用程序的安装包文件;
其中,所述自定义加载类用于在所述目标应用程序被安装后的运行阶段,对加载所述目标文件的请求进行拦截,并对处于压缩状态的目标文件进行解压处理。


2.根据权利要求1所述的方法,其特征在于,还包括:
将所述压缩后的目标文件的文件名修改为与压缩前的文件名相同。


3.根据权利要求1所述的方法,其特征在于,
所述目标文件包括动态链接库文件。


4.根据权利要求3所述的方法,其特征在于,
所述设置所述目标应用程序的代码文件中对所述目标文件进行加载的相关代码为自定义加载类,包括:
设置所述目标应用程序的代码文件中通过调用目标系统接口对所述动态链接库文件进行加载的相关代码为自定义加载类;
所述自定义加载类用于在所述目标应用程序被安装后的运行阶段,对通过加载所述目标文件的请求进行拦截,并对处于压缩状态的动态链接库文件进行解压处理。


5.根据权利要求1所述的方法,其特征在于,
所述目标文件包括资源文件。


6.根据权利要求1所述的方法,其特征在于,还包括:
获取不同的目标文件之间的依赖关系信息,并保存到所述代码文件所在的目录中;
所述自定义加载类具体用于,在拦截到加载所述目标文件的请求后,根据所述依赖关系信息,确定与所述目标文件具有依赖关系的文件,并对处于压缩状态的所述目标文件以及与其具有依赖关系的文件进行解压。


7.根据权利要求1所述的方法,其特征在于,还包括:
获取原始的目标文件的散列函数值,并保存到所述代码文件所在的目录中;
所述自定义加载类还用于,在对处于压缩状态的目标文件进行解压后,通过获取解压后的文件的散列函数值,并通过与所述原始的目标文件的散列函数值进行一致性对比,确定解压后的文件与原始的目标文件是否一致。


8.根据权利要求1至7任一项所述的方法,其特征在于,
所述目标文件为多个;
所述利用第一压缩算法对所述目标文件进行压缩,得到压缩后的目标文件,包括:
利用第一压缩算法,分别对所述目标文件进行压缩,得到多个压缩后的目标文件。


9.根据权利要求1至7任一项所述的方法,其特征在于,还包括:
提供用于对安装包生成方式进行选择的操作选项,以用于对利用所述第二压缩算法进行压缩之前,是否采用所述第一压缩算法对所述目标文件进行压缩进行选择。


10.根据权利要求1至7任一项所述的方法,其特征在于,
所述第一压缩算法与所述第二压缩算法不同。


11.一种应用程序安装包文件处理方法,其特征在于,包括:
在通过编译构建工具对应用程序进行安装包文件的编译及构建的过程中,从与安装目标应用程序相关的文件中确定目标文件;
利用第一压缩算法,对所述目标文件进行压缩,得到压缩后的目标文件;
设置所述目标应用程序的代码文件中对所述目标文件进行加载的相关代码为自定义加载类;
将所述压缩后的目标文件以及所述代码文件提供给所述编译构建工具,所述编译构建工具用于利用第二压缩算法,对所述压缩后的目标文件、所述代码文件以及与安装所述应用程序相关的其他文件进行压缩,生成所述应用程序的安装包文件;
其中,所述自定义加载类用于在所述应用程序被安装后的运行...

【专利技术属性】
技术研发人员:刘志龙
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1