Android 混淆

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 <

你可能感兴趣的:(面试问题系列,混淆)