Android Gradle BuildConfig 的妙用

2,265 阅读1分钟

版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 首先我们看看buildconfig在哪个目录下,一个是debug环境,另一个是当你打包apk才会生成
    的release正式环境的buildconfig,我这里是为了比对,都生成出来了。
    buildconfig路径

debug环境下的buildconfig

/**
 * Automatically generated file. DO NOT MODIFY
 * 已经说明了这个文件是自动生成的,不要去改变它
 */
package com.simple.buildconfidemo;

public final class BuildConfig {
  
  public static final boolean DEBUG = Boolean.parseBoolean("true");
  
  public static final String APPLICATION_ID = "com.simple.buildconfidemo";
  
  public static final String BUILD_TYPE = "debug";
  
  public static final String FLAVOR = "";
  
  public static final int VERSION_CODE = 1;
  
  public static final String VERSION_NAME = "1.0";
}

release环境下的buildconfig

/**
 * Automatically generated file. DO NOT MODIFY
 */
package com.simple.buildconfidemo;

public final class BuildConfig {
  public static final boolean DEBUG = false;
  public static final String APPLICATION_ID = "com.simple.buildconfidemo";
  public static final String BUILD_TYPE = "release";
  public static final String FLAVOR = "";
  public static final int VERSION_CODE = 1;
  public static final String VERSION_NAME = "1.0";
}
  • 我们分别运行不同环境下的apk,在程序入口处打上log
Log.d("simple",BuildConfig.BUILD_TYPE)

release正式环境

这里写图片描述

debug测试环境

这里写图片描述

  • 可以看到不同环境打出的builde_type是不一样,用BuildConfig.DEBUG当然也是一样的道理,这里只是为了打出的log便于理解,所以就可以在程序中需要判断是测试环境还是正式环境的地方做判断啦,是不是瞬间 又get了一项新技能,这样就不用自己在代码中做修改了,如果每次打正式环境的包就要去修改很多东西, 很容易有疏漏的地方,别问我为什么知道!!!现在你只需要安心的打包就好了!

其实buildconfig的节点都是来自gradle中的节点,之后还会讲到buildconfig自定义节点的延伸类容,
简直好用得不要不要的。

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.simple.buildconfidemo"
        minSdkVersion 9
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}