ProGuard 工具简介
ProGuard是Java字节码最受欢迎的优化程序。它能够让Java代码变小90%变快20%。ProGuard通过混淆类名、属性、方法来提供对代码的保护,一次对抗反编译工程。
ProGuard是一个对Java类文件进行压缩,优化,混淆和校验的工具。
压缩过程查找并删除没有使用到的类,字段,方法和属性。优化过程对方法的字节码进行分析和优化。
混淆过程把剩余的元素名字该写成简短且无意义的名字。这些过程会使程序体积更小,运行更高效,更难被反编译。
最后的校验过程为类增加校验信息,但这个过程依赖J2ME和JDK6或以上的编译环境
再次之前我查阅了很多博客 都只说将 LOCAL_PROGUARD_E NABLED:= full LOCAL_PROGUARD_FLAG_FILES := proguard.flags
自己实际测试过是不行的 写这些的人肯定自己没有测试过很坑容易误导别人直接就复制别人的博客内容就进行发表 我写的博客都会经过我自己实际测试的才会发表
Android.mk文件中,用LOCAL_PROGUARD_ENABLED来配置混淆的模式:
LOCAL_PROGUARD_FLAG_FILES用来指定配置文件 如想用自己的配置文件就有这个属性来引用自己编写的配置文件
LOCAL_PROGUARD_ENABLED的取值比较多如下:
full:使用编译系统默认的配置:压缩但不混淆和优化,默认的混淆配置文件是build/core/proguard.flags 内部引用的是 proguard_basic_keeps.flags 可以将这个文件里面的内容拷贝出来在此基础上加上自己的东西
custom:和full一样,但不包括aapt生成的resource相关的混淆配置。
nosystem:不使用系统的默认配置