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"]