Android混淆
基本配置
在工程应用目录的gradle文件中设置minifyEnabled为true即可。然后就可以到proguard-rules.pro文件中加入我们的混淆规则了,代码如下:
android {
...
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
以上示例代码表示对release版本就行混淆处理。
下面先来简介下ProGuard的三大作用,并简要说明下它们常用的命令。
ProGuard作用
压缩(Shrinking):默认开启,用以减小应用体积,移除未被使用的类和成员,并且会在优化动作执行之后再次执行(因为优化后可能会再次暴露一些未被使用的类和成员)。
-dontshrink 关闭压缩
优化(Optimization):默认开启,在字节码级别执行优化,让应用运行的更快。
-dontoptimize 关闭优化 -optimizationpasses n 表示proguard对代码进行迭代优化的次数,Android一般为5
- 混淆(Obfuscation):默认开启,增大反编译难度,类和类成员会被随机命名,除非用keep保护。
-dontobfuscate 关闭混淆
混淆后默认会在工程目录app/build/outputs/mapping/release下生成一个mapping.txt文件,这就是混淆规