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标签,添加特定的环境变量值,并在代码中读取。

<meta-data android:name="key" android:value="value" />

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

AndroidManifest.xml:
<meta-data android:name="key" android:value="${MY_VALUE}" />

build.gradle 的 buildTypes / productFlavors:
manifestPlaceholders = [MY_VALUE: "GooglePlay"]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容