APP开发实战110-ProGuard简介

28 ProGuard混淆介绍

28.1ProGuard简介

Java源代码(.java文件)通常被编译为字节码(.class文件)。通常情况下,编译后的字节码仍然包含了大量的调试信息:源文件名、行号、字段名、方法名、参数名和变量名等,这些信息使得APP很容易被反编译和通过逆向工程获得完整的程序代码。

ProGuard是一个压缩、优化和混淆Java字节码文件的免费的工具:

可以删除无用的类、字段、方法和属性。

可以删除没用的注释,最大限度地优化字节码文件。

还可以使用简短的无意义的名称来重命名已经存在的类、字段、方法和属性。

常常用于Android开发用于混淆最终的项目,增加项目被反编译的难度。

ProGuard对Java类中的代码进行以下四步的处理:

1压缩(Shrink):用于检测和删除没有使用的类,字段,方法和属性。

2优化(Optimize):对字节码进行优化,并且移除无用指令。

3混淆(Obfuscate):使用a,b,c等无意义的名称,对类,字段和方法进行重命名。

4预检(Preveirfy):是在Java平台上对处理后的代码进行预检。

你可能感兴趣的:(APP开发实战110-ProGuard简介)