1.混淆的目的:不想开源应用,为了加大反编译的成本,但是并不能彻底防止反编译
2.开启混淆:
-
通常我们需要找到项目路径下app目录下的build.gradle文件
-
找到minifyEnabled这个配置,然后设置为true.
-
release{ minifyEnabled true//是否启动混淆 ture:打开 false:关闭 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' }
-
proguard-rules.pro文件中配置混淆信息(Proguard是一个集文件压缩,优化,混淆和校验等功能的工具,它检测并删除无用的类,变量,方法和属性,它优化字节码并删除无用的指令,它通过将类名,变量名和方法名重命名为无意义的名称实现混淆效果,最后它还校验处理后的代码)
3.混淆文件分析
//不混淆某个类
-keep public class 类名 { *; }
//不混淆某个类的子类
-keep public class * extends 类名 { *; }
//不混淆所有类名中包含了“model”的类及其成员
-keep public class **.*model*.** {*;}
//不混淆某个接口的实现
-keep class * implements 类名 { *; }
//不混淆某个类的构造方法
-keepclassmembers class 类名 {
public <