作者:郭嘉
邮箱:allenwells@163.com
博客:http://blog.csdn.net/allenwells
github:https://github.com/AllenWells
【ProGuard探索之路系列】章节索引
【ProGuard探索之路系列】之一:ProGuard开篇
【ProGuard探索之路系列】之二:ProGuard配置选项
ProGuard是一款Java类文件压缩、优化和混淆工具。首先给出官方网址,最新的版本是Version 5.2,点击下载proguard5.2.1.zip (2.9 MB)。
一 ProGuard特点
ProGuard的特点如下所示:
- 它探测并删除没有使用过的类、字段、方法和属性。
- 它删除无用的代码使得字节码达到最大优化。
- 它使用无意义的名字来命名类、字段和方法。
二 ProGuard功能
ProGuard实现的功能如下所示:
- 评估常量表达式。
- 删除不必要的字段访问和方法调用。
- 删除不必要的分支。
- 删除不必要的比较和instanceof测试。
- 删除未使用的代码块。
- 合并相同的代码块。
- 降低可变分配。
- 删除只写字段和未使用的方法参数。
- 内联常量字段,方法参数和返回值。
- 内联方法是短期或只调用一次。
- 简化尾递归调用。
- 合并类和接口。
- 当可能实现时,使方法成为private, static, and final。
- 当可能实现时,使类成为private, static, and final。
- 更换具有单接口的实现。
- 执行超过200窥孔优化,如用<<1替换*2。
- 可选择删除日志代码。