【技术实现步骤摘要】
应用程序安装包的构建方法、装置、计算机设备和介质
本公开涉及计算机
,具体而言,涉及一种应用程序安装包的构建方法、装置、计算机设备和介质。
技术介绍
当前,主要采用D8工具构建应用程序包(Androidapplicationpackage,APK),但是采用D8工具构建APK时,在方法数较多的情况下,会导致构成APK的主dex(文件扩展名)文件的方法数会接近上限,没有多余的空间去存储外部的字节码。
技术实现思路
有鉴于此,本公开实施例至少提供一种应用程序安装包的构建方法、装置、计算机设备和介质,通过编译工具在构建APK文件的过程中,在主dex文件中预留一部分空间。第一方面,本公开实施例提供了一种应用程序安装包的构建方法,包括:生成包含预设空间大小的占桩代码的预留文件,基于所述预留文件生成对应的主dex文件;对所述主dex文件进行反编译得到对应的第一反编译文件;用预先生成的不包含任何方法的预设文件替换所述第一反编译文件中所述预留文件对应的反编译子文件,得到第二反编译文件;基于所述第二反编译文件生成应用程序安装包APK。在一种可能的实施方式中,所述生成包含预设空间大小的占桩代码的预留文件,包括:获取所述预设空间大小;基于所述预设空间大小,通过脚本生成包含所述预设空间大小的所述占桩代码的Java类文件;以及基于所述Java类文件生成包含所述预设空间大小的所述占桩代码的class类文件;确定所述class类文件为所述预留文件。在一种可能的实施方式中,所述基于所述第二反编译文件 ...
【技术保护点】
1.一种应用程序安装包的构建方法,其特征在于,包括:/n生成包含预设空间大小的占桩代码的预留文件,基于所述预留文件生成对应的主dex文件;/n对所述主dex文件进行反编译得到对应的第一反编译文件;/n用预先生成的不包含任何方法的预设文件替换所述第一反编译文件中所述预留文件对应的反编译子文件,得到第二反编译文件;/n基于所述第二反编译文件生成应用程序安装包APK。/n
【技术特征摘要】
1.一种应用程序安装包的构建方法,其特征在于,包括:
生成包含预设空间大小的占桩代码的预留文件,基于所述预留文件生成对应的主dex文件;
对所述主dex文件进行反编译得到对应的第一反编译文件;
用预先生成的不包含任何方法的预设文件替换所述第一反编译文件中所述预留文件对应的反编译子文件,得到第二反编译文件;
基于所述第二反编译文件生成应用程序安装包APK。
2.基于权利要求1所述的构建方法,其特征在于,所述生成包含预设空间大小的占桩代码的预留文件,包括:
获取所述预设空间大小;
基于所述预设空间大小,通过脚本生成包含所述预设空间大小的所述占桩代码的Java类文件;以及
基于所述Java类文件生成包含所述预设空间大小的所述占桩代码的class类文件;
确定所述class类文件为所述预留文件。
3.基于权利要求1所述的构建方法,其特征在于,所述基于所述第二反编译文件生成应用程序安装包APK,包括:
调用编译工具编译所述第二反编译文件生成目标主dex文件;
基于所述目标主dex文件生成所述APK。
4.基于权利要求1或3所述的构建方法,其特征在于,按照以下流程生成所述预设文件:
通过脚本生成不包含任何方法的Java类文件;以及
基于所述不包含任何方法的Java类文件生成不包含任何方法的class类文件;
基于所述反编译子文件的类型,将所述不包含任何方法的class类文件转换为与所述反编译子文件的类型相同的所述预设文件。
5.根据权利要求3所述的构建方法,其特征在于,所述基于所述预留文件生成对应的主dex文件,包括:
基于所述预留文件调用构建工具生成对应的主dex文件,所述编译工具包括D8工具;
所述对所述主dex文件进行反编译得到对应的第一反编译文件,包括:
调用编译工具对所述主dex文件进行反编译得到对应的第一反编译文件,所述编译工具包括basksmali工具,所述反编译子文件的类型包括smali文件。
6.根据权利要求1所述的构建方法,其特征在于,所述占桩代码包括空方法。
7.一种应用程序安装包的构建装置,其特征在于,包括:
第一生成模块,用于生成包含预设空间大小的占桩代码的预留文件,基于所述预留文件生成对应的主dex文件;
反编译模块,用于对所述主dex文件进行反编译得到对应的第一反编译文件;
替换模块,用于用预先生成的不包含任何方法的预设文件替换...
【专利技术属性】
技术研发人员:答奇,孙克静,魏君成,薛章斌,
申请(专利权)人:北京字节跳动网络技术有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。