Gradle 的 resValue 與 buildConfigField
在Module的build.gradle
中,buildTypes 或者 productFlavors 下面可使用resValue
字段修改當(dāng)前編譯版本下抡诞,資源文件中特定key-value的確定值胸囱。
resValue "string", "AppName", "AppForTest"
也可通過(guò)buildConfigField
字段指定添加特定環(huán)境變量到當(dāng)前的編譯版本中拣宰,代碼內(nèi)通過(guò)BuildConfig類
的靜態(tài)字段讀取相應(yīng)值帜慢。
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
中瘦真,可通過(guò)meta-data
標(biāo)簽绰播,添加特定的環(huán)境變量值花枫,并在代碼中讀取刻盐。
<meta-data android:name="key" android:value="value" />
也可以設(shè)置為placeholder模式,配合Gradle指定編譯版本特定值劳翰。
AndroidManifest.xml:
<meta-data android:name="key" android:value="${MY_VALUE}" />
build.gradle 的 buildTypes / productFlavors:
manifestPlaceholders = [MY_VALUE: "GooglePlay"]