由于Java字节码的特殊性,使得它非常容易被反编译。
因此,为了能够对编译好的JavaClass文件进行一些保护,通常会使用ProGuard,用无意义的字母来重命名类、字段、方法和属性,来对Apk进行混海处理。
ProGuard不仅仅可以用来混渔代码,还可以删除无用的类、字段、方法和属性,以及删除没用的注释,最大限度地优化字节码文件。
在AndroidStudio中,可以非常方便地使用ProGuard,在GradleScripts文件夹下,打开build.gradle(Module:app)文件,是示如下所示。
这里的minifyEnabled属性就是控制是否启用ProGuard的开关,
这个属性以前叫做ranProguard,在AS1.1中将其改为minifyEnabled,
将这个属性设置为true,即可打开ProGuard功能。
proguardFiles属性用于配署混淆文件,
它分为两个部分,一个是系统默认的混淆文件,它位于<SDK目录>/tools/jproguard/proguard-android.txt目录下,大部分情况下,使用这个默认的混海文件就可以了;
后面一部分是项目中自定义的混混文件,可以在项目的App文件夹下找到这个文件,在这个文件里可以定义引入的第三方依赖包的混渐规则。
配置好ProGuard之后,只要在使用AS导出Apk时,即可生成混淆