一种安装包管理的方法、装置及电子设备制造方法及图纸

技术编号:22531583 阅读:11 留言:0更新日期:2019-11-13 08:56
本发明专利技术实施例提供了一种安装包管理的方法、装置及电子设备,获取待处理安装包的Java字节码文件;通过字节码操控框架ASM框架获取Java字节码文件的节点数据;对节点数据进行压栈处理,定位目标日志文件;利用空串对目标日志文件中数据进行替换。从而既能实现在安装包的编译流程中,通过ASM框架对安装包中的日志文件进行自动查找,又可以实现对安装包中的日志数据进行删除,达到减小安装包大小的目的。

A method, device and electronic equipment of installation package management

The embodiment of the invention provides a method, device and electronic device for managing the installation package to obtain the Java bytecode file of the installation package to be processed; obtains the node data of the Java bytecode file through the ASM framework of the bytecode control framework; performs stack processing on the node data to locate the target log file; replaces the data in the target log file with empty strings. In this way, the log files in the installation package can be automatically searched through ASM framework in the compilation process of the installation package, and the log data in the installation package can be deleted to reduce the size of the installation package.

【技术实现步骤摘要】
一种安装包管理的方法、装置及电子设备
本专利技术涉及的安装包管理
,特别是涉及一种安装包管理的方法、装置及电子设备。
技术介绍
目前,随着手机性能的提高和功能的增强,随着而来的手机中应用的大小也越来越大,这就导致在安装包对用户手机内存的占比越来越大,影响用户对应用的体验效果。现有技术在对手机应用的安装包进行大小减小时通常采用:对res文件(resources,资源文件)中的内容进行精简,包括其中所存放的字符串、程序图标、其他引用图片等;对代码进行分包优化处理,能重用的尽量重用,并且尽量减少Jar文件(JavaArchive,Java归档文件)的引入,通过减少代发的重用率减少安装包的大小。然而,专利技术人在实现本专利技术的过程中发现,现有技术至少存在如下问题:在对安装包进行大小减小时操作较为复杂,通常采用删除安装包的部分数据的方式,例如在对代码进行优化减少重用率,该方法的操作较为复杂,而对于不同的安装包适用效果也并不相同,而其中的res文件进行精简时,相对安装包的大小所能达到的效果也并不明显。而在运行过程中进行优化的方式仍较少。
技术实现思路
本专利技术实施例的目的在于提供一种安装包管理的方法、装置及电子设备,以实现减小安装包大小的目的。具体技术方案如下:第一方面,本专利技术实施例提供了一种安装包管理的方法,包括:获取待处理安装包的Java字节码文件,其中Java字节码文件为待处理安装包的Java源代码经Java语言编译器Javac编译后所得的Java字节码文件;通过字节码操控框架ASM框架获取Java字节码文件的节点数据;对节点数据进行压栈处理,定位目标日志文件,其中,目标日志文件为压栈过程中已经在栈中保存的日志文件;利用空串对目标日志文件中数据进行替换。可选的,通过字节码操控框架ASM框架获取Java字节码文件的节点数据,包括:通过字节码操控框架ASM框架中的对象模型访问方式,调用字节码;利用字节码调用classnode,通过classnode获取节点数据。可选的,节点数据包括:line类型的节点数据,method类型节点数据,ldc类型节点数据,对节点数据进行压栈处理,得到目标日志文件,包括:获取line类型的节点数据;从line类型的节点数据开始,对节点数据依次进行压栈处理,直到得到method类型节点数据;通过method类型节点数据,定位目标日志文件。可选的,method类型节点数据包括字符串METHOD_INSN,通过method类型节点数据,定位目标日志文件,包括:通过字符串METHOD_INSN,定位得到methodowner;通过methodowner,定位得到字符串PPLog.e(*),进而定位得到目标日志文件。可选的,利用空串对栈中保存的日志文件中数据进行替换,包括:对栈中保存的日志文件进行退栈处理,并利用空串对栈中保存的日志文件中的引用类型变量字符进行替换。第二方面,本专利技术实施例提供了一种安装包管理的装置,包括:字节码获取模板,用于获取待处理安装包的Java字节码文件,其中Java字节码文件为待处理安装包的Java源代码经Java语言编译器Javac编译后所得的Java字节码文件;节点数据模板,用于通过字节码操控框架ASM框架获取Java字节码文件的节点数据;目标日志模块,用于对节点数据进行压栈处理,定位目标日志文件,其中,目标日志文件为压栈过程中已经在栈中保存的日志文件;数据替换模块,用于利用空串对目标日志文件中数据进行替换。可选的,节点数据模板包括:字节码调用子模块,用于通过字节码操控框架ASM框架中的对象模型访问方式,调用字节码;节点获取子模块,用于利用所述字节码调用classnode,通过所述classnode获取节点数据。可选的,节点数据包括:line类型的节点数据,method类型节点数据,ldc类型节点数据,目标日志模块,包括:类型节点子模块,用于获取line类型的节点数据;压栈子模块,用于从line类型的节点数据开始,对节点数据依次进行压栈处理,直到得到method类型节点数据;日志定位子模块,用于通过method类型节点数据,定位目标日志文件。可选的,method类型节点数据包括字符串METHOD_INSN,日志定位子模块,包括:methodowner定位单元,用于通过字符串METHOD_INSN,定位得到methodowner;日志文件定位单元,用于通过methodowner,定位得到字符串PPLog.e(*),进而定位得到目标日志文件。可选的,数据替换模块,包括:字符替换子模块,用于对栈中保存的日志文件进行退栈处理,并利用空串对栈中保存的日志文件中的引用类型变量字符进行替换。在本专利技术实施的又一方面,还提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一的安装包管理的方法。在本专利技术实施的又一方面,本专利技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一的安装包管理的方法。本专利技术实施例提供的安装包管理的方法、装置及电子设备,获取待处理安装包的Java字节码文件;通过字节码操控框架ASM框架获取Java字节码文件的节点数据;对节点数据进行压栈处理,定位目标日志文件;利用空串对目标日志文件中数据进行替换。从而既能实现在安装包的编译流程中,通过ASM框架对安装包中的日志文件进行自动查找,又可以实现对安装包中的日志数据进行删除,达到减小安装包大小的目的。当然,实施本专利技术的任一产品或方法必不一定需要同时达到以上所述的所有优点。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。图1为本专利技术实施例的一种安装包管理的方法的流程示意图;图2为本专利技术实施例的一种安装包管理的方法的一种编译流程图;图3为本专利技术实施例的一种安装包管理的装置的一种自定义插件的功能模块图;图4为图1中步骤120的流程示意图;图5为图1中步骤130的流程示意图;图6为本专利技术实施例的一种安装包管理的装置的结构示意图;图7为图6中模块630的结构示意图;图8为图6中模块640的结构示意图;图9本专利技术实施例的一种电子设备的一种示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行描述。为了对安装包进行有效的优化处理,本专利技术实施例提供了一种安装包管理的方法、装置及电子设备。参见图1,本专利技术实施例首先提供了一种安装包管理的方法,该方法可以包括以下步骤:步骤110,获取待处理安装包的Java字节码文件。本专利技术实施例的安装包管理的方法针对的是智能终端设备中的安装包,因此可以通过智能终端设备执行,具体的,该智能终端设备可以为电脑或服务器等。安装包可以为智能手机的APP(Application,应用程序)的安装包,例如对于系统安卓系统的应用,安装包可以为apk(AndroidPackage,安卓安装包)。可选的,本专利技术实施例的方法应用于安装包的编译流程中,Java字节码文件为待处理安装包的Java源代码经Java语言编译器Javac编译后所得的Java字节码文件。例如,如图2所示,图2为本专利技术实施例的一种安装包管理的方法的一种编译流程图,通过本文档来自技高网...

【技术保护点】
1.一种安装包管理的方法,其特征在于,用于安装包的编译流程,包括:获取待处理安装包的Java字节码文件,其中所述Java字节码文件为所述待处理安装包的Java源代码经Java语言编译器Javac编译后所得的Java字节码文件;通过字节码操控框架ASM框架获取所述Java字节码文件的节点数据;对所述节点数据进行压栈处理,定位目标日志文件,其中,所述节点数据包括日志文件,所述目标日志文件为所述压栈处理中已经在栈中保存的日志文件;利用空串对所述目标日志文件中数据进行替换。

【技术特征摘要】
1.一种安装包管理的方法,其特征在于,用于安装包的编译流程,包括:获取待处理安装包的Java字节码文件,其中所述Java字节码文件为所述待处理安装包的Java源代码经Java语言编译器Javac编译后所得的Java字节码文件;通过字节码操控框架ASM框架获取所述Java字节码文件的节点数据;对所述节点数据进行压栈处理,定位目标日志文件,其中,所述节点数据包括日志文件,所述目标日志文件为所述压栈处理中已经在栈中保存的日志文件;利用空串对所述目标日志文件中数据进行替换。2.根据权利要求1所述的方法,其特征在于,所述通过字节码操控框架ASM框架获取所述Java字节码文件的节点数据,包括:通过所述字节码操控框架ASM框架中的对象模型访问方式,调用字节码;利用所述字节码调用classnode,通过所述classnode获取节点数据。3.根据权利要求1所述的方法,其特征在于,所述节点数据包括:line类型的节点数据,method类型节点数据,ldc类型节点数据,所述对所述节点数据进行压栈处理,得到目标日志文件,包括:获取line类型的节点数据;从所述line类型的节点数据开始,对所述节点数据依次进行压栈处理,直到得到method类型节点数据;通过所述method类型节点数据,定位目标日志文件。4.根据权利要求3所述的方法,其特征在于,所述method类型节点数据包括字符串METHOD_INSN,所述通过所述method类型节点数据,定位目标日志文件,包括:通过所述字符串METHOD_INSN,定位得到methodowner;通过所述methodowner,定位得到字符串PPLog.e(*),进而定位得到所述目标日志文件。5.根据权利要求1所述的方法,其特征在于,所述利用空串对所述目标日志文件中数据进行替换,包括:对栈中保存的日志文件进行退栈处理,并利用空串对所述栈中保存的日志文件中的引用类型变量字符进行替换。6.一种安装包管理的装置,其特征在于,用于安装包的编译流程,包括:字节码获取模板,用于获取待处理安装包的Java字节码文件,其中所述Java字节码文件为所...

【专利技术属性】
技术研发人员:张韩
申请(专利权)人:北京奇艺世纪科技有限公司
类型:发明
国别省市:北京,11

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

1