默认状态下,Android Studio 会自动生成一个 BuildConfig 类,其内部定义了一些静态常量:

  1. public final class BuildConfig {
  2. public static final boolean DEBUG = Boolean.parseBoolean("true");
  3. public static final String APPLICATION_ID = "xxx.xxx.xxx";
  4. public static final String BUILD_TYPE = "debug";
  5. public static final String FLAVOR = "";
  6. public static final int VERSION_CODE = 36;
  7. public static final String VERSION_NAME = "2.2.36.beta";
  8. }

这个类由编译器动态生成,不允许开发者修改,但也并非完全不能改。

比如想知道APP的编译时间,此时,在这里增加一个字段,借助自动生成机制,写入编译时间,再合适不过了。

使用方法

1、语法:

  1. buildConfigField("TYPE", "NAME", "VALUE")
  • TYPE - 常量类型(常见:String、boolean、int、long等);
  • NAME - 新增的常量名;
  • VALUE - 新增的常量值;
    这3个参数,都必须是“String类型”(编译过程中,会自动将上面参数前后的引号去除,往下看栗子)。

2、举个栗子
定义字段:

  1. buildConfigField("String", "BUILD_STRING", "\"2019.12.28 12:06\"")
  2. buildConfigField("char", "BUILD_CHAR", "'c'")
  3. buildConfigField("long", "BUILD_LONG", "1231231231231231231L")
  4. buildConfigField("int", "BUILD_INT", "1231")
  5. buildConfigField("float", "BUILD_FLOAT", "3.14f")
  6. buildConfigField("double", "BUILD_DOUBLE", "3.14")
  7. buildConfigField("boolean", "BUILD_BOOLEAN", "true")
  8. buildConfigField("short", "BUILD_SHORT", "1")
  9. buildConfigField("int[]", "BUILD_INT_ARRAY", "{1,2,3}")

生成字段:

  1. // Fields from default config.
  2. public static final String BUILD_STRING = "2019.12.28 12:06";
  3. public static final char BUILD_CHAR = 'c';
  4. public static final long BUILD_LONG = 1231231231231231231L;
  5. public static final int BUILD_INT = 1231;
  6. public static final float BUILD_FLOAT = 3.14f;
  7. public static final double BUILD_DOUBLE = 3.14;
  8. public static final boolean BUILD_BOOLEAN = true;
  9. public static final short BUILD_SHORT = 1;
  10. public static final int[] BUILD_INT_ARRAY = {1,2,3};

注意:
第三个参数定义的时候,一定要用引号包起来,而且数据格式一定要符合Java定义(long后加L,float加F,char加单引号,数组有花括号等等)


[app][AS]自定义BuildConfig字段 - 图1
本文经「原本」原创认证,作者Shawn.XiaFei,访问yuanben.io查询【O9OBWJN7】获取授权信息。