Gradle 与 Manifest 的编译环境属性配置

Gradle 的 resValue 与 buildConfigField

在Module的build.gradle中,buildTypes 或者 productFlavors 下面可使用resValue字段修改当前编译版本下,资源文件中特定key-value的确定值。

resValue "string", "AppName", "AppForTest"

也可通过buildConfigField字段指定添加特定环境变量到当前的编译版本中,代码内通过BuildConfig类的静态字段读取相应值。

buildConfigField "boolean", "debugFlag", "true"

完整示例

buildTypes {

  def isReleaseEnvironment = false

  debug {
      resValue "string", "AppName", "AppForTest"

      if (isReleaseEnvironment) {
          buildConfigField "boolean", "IS_RELEASE", "true"
          buildConfigField "String", "key", "value"
      } else{
          buildConfigField "boolean", "IS_RELEASE", "false"
          buildConfigField "String", "key", "value"
      }
  }
}

Manifest 的 meta-data

AndroidManifest.xml中,可通过meta-data标签,添加特定的环境变量值,并在代码中读取。


也可以设置为placeholder模式,配合Gradle指定编译版本特定值。

AndroidManifest.xml:


build.gradle 的 buildTypes / productFlavors:
manifestPlaceholders = [MY_VALUE: "GooglePlay"]

你可能感兴趣的:(Gradle 与 Manifest 的编译环境属性配置)