参考文章:bash
ProGuard简介
ProGuard 是一个压缩(shrink)、优化(optimize)和混淆(obfuscate) Java 字节码文件的免费的工具。它能够删除无用的类、字段、方法和属性,能够删除没用的注释,最大限度地优化字节码文件。它还能够使用简短的无心义的名称来重命名已经存在的类、字段、方法和属性。经常用于Android 开发用于混淆最终的项目,增长项目被反编译的难度。工具
主要流程以下:优化
ProGuard 会对输入的 JAR 文件按照压缩、优化、混淆、预验证的顺序依次进行处理,最后获得输出 JAR 文件;
ProGuard 使用依赖类库(Library jars)来辅助对 Input jars 类之间的依赖关系进行解析,可是依赖类库自己不会被处理,也不会被包含到 Output jars 中。
下载ProGuard工具
下载最新版的 ProGuard,而后解压,进入到 bin 目录,Windows 下直接双击 proguardgui.bat 便可,而 Mac Os 下控制台运行 proguardgui.sh 便可。ui
下载地址:spa
https://sourceforge.net/projects/proguard/files/latest/download
本次演示是在 Mac Os 下,控制台输入 sh proguardgui.sh。ProGuard 运行启动成功的界面以下。
.net
使用流程
在 Input/Output 中,Add input 选择要混淆的 JAR 包,注意必定要添加待混淆的 JAR 包依赖的全部类库,Add output 指定输出文件名(例如 a.jar);压缩(Shrinking)和优化(Optimization)不是本次的重点,略过;Obfuscation 中有不少混淆规则,能够自行依据官网进行配置调整;最后选择 Process,点击右下角的 Process! 便可。code
成功操做界面会提示:Processing completed successfully!
开发
效果展现
采用 JD-GUI 打开根据混淆输出的 JAR:input