前言:现在的项目还是使用的EclipseIDE,导致方法数最终还是来到了65535的65K问题,关于分包,还是换AS都有一大堆教程,为了应付这次的项目上线,使用了proguardgui.bat 把jar进行混淆,对jar里没有调用到的方法,删除掉,来避免65k问题。
此处用到的混淆,是为了删除没有调用到的方法数。把APP中调用jar的类找出来,在配置文件中配置上。
1、sdk\tools\proguard\bin\proguardgui.bat来混淆
2、依次点击Input/Output选项->add input->导入刚刚生成的x.jar文件,再点击add Output 选个路径和设置个文件名称(就是混淆后要得到的jar包)
3、在下面有个Library jars编辑区, 这里一定要注意,把程序中引用的第三方jar包通过add 加入,然后把Android-support-v4.jar(每个工程的libs下都应该有)和android.jar(sdk\platforms\android-20\android.jar)文件加入
4、下一步到Shrinking,这个步骤里面是设置哪些不需要混淆的,如果会用可以在这里直接设置,如果更愿意用代码写出来可以先不设置,在后面的配置文件中直接写规则
5、一直下一步到Process,如果第五步中已经设置过混淆规则,则直接运行右下角的Process!,如果顺利通过了,说明你的配置成功了,在output路径下找到混淆的jar包。如果第五步没有设置混淆规则,则选择右下角的saved configuration,保存配置文件,然后用text文本打开,通过代码来设置规则,之后回到ProGuard窗口并回到第一步的ProGuard ,通过load configuration导入刚刚修改过的配置文件,再运行Process!,这样jar包就生成了,如果规则有问题可以重复修改配置文件,直到运行正常。
关于混淆:
缺省情况下,proguard 会混淆所有代码,但是下面几种情况是不能改变java 元素的名称,否则就会这样就会导致程序出错。
一, 我们用到反射的地方。
二, 我们代码依赖于系统

本文介绍了如何使用Eclipse IDE和Android SDK自带的proguardgui.bat工具对jar包进行混淆,以减少方法数,应对65K方法限制。详细步骤包括设置输入输出路径、添加库jar、配置混淆规则等。同时,文章提到了混淆的风险,如混淆错误、运行错误和调试困难,并列举了Android开发中不能混淆的代码类型,如系统组件、资源引用、序列化等。

8563

被折叠的 条评论
为什么被折叠?



