proguard代码混淆面试问题讲解

一、混淆(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左右,对当前费用较贵的无线网络传输是有一定意义的.

你可能感兴趣的:(proguard代码混淆面试问题讲解)