构建Proguard

Proguard配置是Android的apk混淆文件配置,但它的作用绝对不仅仅是混淆代码。它同样可以精简代码、资源,优化代码结构。也正是因为这个原因,在新版的Android Studio中,Google将runProguard的参数名改为了minifyEnabled,更加直白地显示它的作用。它的配置也非常简单,在构建类型中直接配置参数启用即可,代码如下所示。

  1. buildTypes {
  2. release {
  3. minifyEnabled true
  4. proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
  5. }
  6. xys {
  7. signingConfig signingConfigs.xys
  8. applicationIdSuffix ".xys"
  9. }
  10. }

这样在构建release版本时,系统就会自动进行混淆,而混淆配置文件的地址,则通过getDefaultProguardFile方法来获取。SDK默认的混淆文件配置模板,在SDK的tools/proguard目录下可以找到,如图4.16所示。

构建Proguard - 图1 图4.16 proguard文件

混淆对于一个apk来说是非常关键的,而且混淆也经常会导致一些Debug版本所没有的问题。对于这种情况,通常需要对混淆脚本进行仔细分析,一步步排除问题。