GRADLE自定义你的BUILDCONFIG

在前发布了这篇博客Android BuildConfig.DEBUG的妙用, 提到了Eclipse中通过BuildConfig.DEBUG字段用来调试Log非常好用,但是殊不知在Android Studio中通过Gradle这种用法更加强大。

BuildConfig.DEBUG

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

public final class BuildConfig {
  public static final boolean DEBUG = false;
  public static final String APPLICATION_ID = "com.storm.9gag";
  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"

上述语法就定义了一个boolean类型的API_ENV字段,值为true,之后我们就可以在程序中使用BuildConfig.API_ENV字段来判断我们所处的api环境。例如:

public class BooheeClient {
    public static final boolean DEBUG = BuildConfig.API_ENV;

    public static String getHost {
        if (DEBUG) {
            return "your qa host";
        }
        return "your production host";
    }
}

不仅如此,如果遇到复杂的环境,你也可能自定义一个String类型的字段,这种方式免去了发布之前手动更改环境的麻烦,减少出错的可能性,只需要在Gradle配置好debug、release等模式下的环境就好了,打包的之后毫无顾虑。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Gradle `defaultConfig` 是 Android 应用程序构建脚本中的一个配置块,它包含了一些基本的应用程序信息和默认的构建配置。`defaultConfig` 可以包含以下参数: - `applicationId`: 应用程序的包名 - `minSdkVersion`: 最低支持的 Android 版本 - `targetSdkVersion`: 应用程序所针对的 Android 平台版本 - `versionCode`: 应用程序的版本号,用于区分不同版本 - `versionName`: 应用程序的版本名,用于给用户展示 - `testInstrumentationRunner`: 测试运行器的类名 - `testApplicationId`: 测试应用程序的包名 - `testHandleProfiling`: 是否允许性能分析 - `testFunctionalTest`: 是否包含功能测试 如果你想自定义这些参数,只需要在 `defaultConfig` 块中添加相应的配置即可,例如: ``` defaultConfig { applicationId "com.myapp.myapplication" minSdkVersion 21 targetSdkVersion 29 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } ``` 你也可以添加自定义参数,例如: ``` defaultConfig { buildConfigField "boolean", "DEBUG_MODE", "true" resValue "string", "app_name", "My Application" } ``` 这里我们添加了一个名为 `DEBUG_MODE` 的布尔类型的构建配置字段和一个名为 `app_name` 的字符串资源。这些自定义参数可以在代码中使用,例如: ``` if (BuildConfig.DEBUG_MODE) { Log.d("MyApp", "Debug mode enabled"); } ``` 或者 ``` String appName = getString(R.string.app_name); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值