Android 代码混淆
Android Studio 工程中,默认就创建了 proguard-rules.pro
文件,可以在其中编写 Proguard 的混淆规则。
但是,默认是不打开混淆的,需要在 build.gradle
文件中,找到这一段:
|
|
把 minifyEnabled
从 false 改为 true,即可开启在 release 打包时进行混淆。
为什么混淆开关的名字是 minify enabled ?所谓的”混淆“,其实也就是用无意义的符号(如 a,b,c)去代替代码中有意义的符号(如 title, imagePath, url 等),那么代码即使被反编译后,依然很难直接看懂其含义。从另一个角度看,其实也是让代码精简化的过程。(另外,混淆代码的英文是 Shrink Code)
打开混淆后,在 proguard-rules.pro 文件中编辑混淆规则即可。这个文件其实就是之前用 Eclipse 时的 proguard.cfg,混淆规则的写法是一样的,需要在其中写明哪些类不要进行混淆。
具体可参考 Android 文档 Shrink Your Code and Resources。
需要注意的是,不要对第三方库进行混淆,否则调用第三方库的地方,将找不到对应方法,应该不难理解。LeanCloud 给出了一个混淆规则,可以参考:
|
|