Gradle Cheat Sheet (20): Configuring Proguard

  Proguard可以让Android插件剔除未使用的代码和资源,减小应用的体积,只需配置 minifyEnabled 和 shrinkResources 即可。

  以这里的工程为例,在/app/build.gradle中加入了对Google Play Services的依赖:

而实际上代码中并未使用Google Play Services。Proguard可以找到并剔除未使用的代码。Google Play Services还包含了很多如drawables等的资源文件,打开 shrinkResources 即可剔除未使用的资源文件。在 release 之外,定义两个buildTypes, shrunk 打开了 minifyEnabled 和 shrinkResources , big 则没有:

在app/build/outputs/apk可以找到对应shrunk和big的APK,app-shrunk-unsigned.apk约有1.2M,而app-big-unsigned.apk则约有2.8M。

  Proguard还可以添加混淆防止逆向工程。更多内容可以参考下面的链接。

http://proguard.sourceforge.net/
http://developer.android.com/tools/help/proguard.html
http://tools.android.com/tech-docs/new-build-system/resource-shrinking