一、混淆(proguard)到底是什么?
ProGuard工具是用于压缩,优化,混淆我们的代码.主作用是可以移除代码中的无用类,字段,方法和属性同时可以混淆
二、ProGuard技术的功能
1.压缩(在打包的时候来检查并移除代码中没有用到的字段、方法、属性和类)
2.优化(它可以对字节码进行优化,对.class文件里无用的操作移除)
3.混淆(把有意的名词变成无意的名词)
4.预检测(第二次进行处理和检测)
三、ProGuard工作原理
引入一个 EntryPoint 它是在Proguard过程中不会被处理的类或者方法
四、为什么要进行代码混淆?
因为java是一种跨平台、解释性与语言。Java源代码编写成中间的字节码存储与class文件中。由于跨平台的需要,Java字节码中包含许多源代码信息,如变量名、方法名。并且通过这次名称来访问变量和方法。这些符号有很多信息,很容易被反编译成Java源代码.为了防止这种现象,我们可以使用Java混淆器对Java字节码进行混淆。
五、代码混淆的作用及好处
作用
1.起到了保护代码的作用
2.精简了程序的内存大小
好处
1.混淆后的代码很难被反编译,即使被反编译了也很难看懂真正语义。
2.被混淆的代码仍照原来的档案格式和指令集 执行结果与混淆前一样。
3.混淆的不可逆性,在混淆过程中有一些影响正常运行的信息永远丢失,是程序更难理解
总
由于缩短变量和函数名以及丢失部分信息的原因,编译后jar文件体积可减少%25左右,对当前费用较贵的无线网络传输是有一定意义的.