Android开发经验谈Android 开发技术分享Gradle

Android BuildConfig:Gradle自定义你的B

2020-06-10  本文已影响0人  waiwaaa

BuildConfig.DEBUG

首先在Gradle脚本中默认的debug和release两种模式BuildCondig.DEBUG字段分别为true和false,而且不可更改。该字段编译后自动生成,在Studio中生成的目录在app/build/source/BuildConfig/Build Varients/package name/BuildConfig 文件下。我们来看下release模式下该文件的内容:

public final class BuildConfig {
  public static final boolean DEBUG = false;
  public static final String APPLICATION_ID = "com.yy.test";
  public static final String BUILD_TYPE = "release";
  public static final String FLAVOR = "wandoujia";
  public static final int VERSION_CODE = 1;
  public static final String VERSION_NAME = "1.0";
  // Fields from build type: release
  public static final boolean LOG_DEBUG = false;
}

自定义BuildConfig字段

大家看到上述内容的时候发现莫名的有个LOG_DEBUG字段,这个完全是我自定义的一个字段,我来用它控制Log的输出,而没有选择用默认的DEBUG字段。举例一个场景,我们在App开发用到的api环境假设可能会有测试、正式环境,我们不可能所有的控制都通过DEBUG字段来控制,而且有时候环境复杂可能还会有两个以上的环境,这个时候就用到了Gradle提供了自定义BuildConfig字段,我们在程序中通过这个字段就可以配置我们不同的开发环境。

语法很简单:
buildConfigField "boolean", "API_ENV", "true"

比如我们可以在不同的包下来设置不同的访问地址,在通过BuildConfig.baseUrl来引用

defaultConfig {
  ...
    buildConfigField("String","baseUrl","http://api.xx.com")
}

buildTypes {
...
    debug {
        buildConfigField("String","baseUrl","http://10.10.10.1")
    }
}
productFlavors{
    Flavortest{
        buildConfigField("String","baseUrl","http://special.xx.com")//或者设置不同渠道地址不同
    }
}
上一篇下一篇

猜你喜欢

热点阅读