聊一下 Gradle 相关,BuildConfig 这个类是如何生成的?

原始网页直通车


每个项目中, Gradle 都会帮助我们生成一个 BuildConfig ,那么:

  1. 这个类有何用处?
  2. 是在项目的编译期间,哪个环节、如何生成的?

BuildConfig 的用处

项目编译成功后,会在每一个 module 下的 build/generated/source/buildConfig/debug(release)/包名 下生成一个 BuildConfig 文件。内容如下:

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

从内容可以很明显的看出来, BuildConfig 是根据 module 下的 build.gradle 生成的。

其中最常用的是 BuildConfig.DEBUG ,判断当前包环境是否是 debug 环境,用来控制日志的输出等。这个值会根据开发者的 Build 类型自动设定,不需要手动设置。


除此之外,我们还可以自定义添加 BuildConfig 里的常量,比如设置开发环境和正式环境下的网络请求地址等。

modulebuild.gradle 文件中的 defaultConfigbuildTypes 节点中使用 buildConfigField 关键字即可。区别在于 buildTypes 会根据 Build 类型引用不同的值, defaultConfig 是通用的值。

buildConfigField "String", "BASE_STRING", "\"string content\"" 这句代码中三个参数分别是 数据类型,常量名,常量值。
注意的是 BuildConfig 是通过 String 读取数据的,所以当常量值数据类型为 String 时,需要在双引号里面在添加一个双引号并转义。

defaultConfig {
   
        applicationId "com.example.myapplication"
        minSdkVersion 21
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

        buildConfigField "String", "BASE_STRING", "\"string content\""
        buildConfigField "boolean", "BASE_BOOLEAN"
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值