一般公司開發(fā)有許多種環(huán)境超升,至少接口請求前綴會不同牵舱,存在測試環(huán)境和線上環(huán)境仰税,另外可能還有許多不同的配置,如下配置可使app使用不同配置打包。
android{
...
buildTypes {
mytest {//測試環(huán)境
? ? ? ? ? ? manifestPlaceholders = [appname:"app測試版"]
? ? ? ? ? ??signingConfig signingConfigs.debug
? ? ? ? ? ? applicationIdSuffix '.mytest'//為applicationId添加后綴齐帚,這樣可以多個版本一起安裝在同一部手機
? ? ? ? ? ? buildConfigField" String","API_HOST","\"${props['mytest_host']}\""
? ? ? ? ? ? ...
? ? ? ????? }
debug {//開發(fā)環(huán)境
? ? ? ? ? ? manifestPlaceholders = [appname:"app開發(fā)版"]
????????????signingConfig signingConfigs.debug
? ? ? ? ? ? applicationIdSuffix '.debug'
? ? ? ? ? ? buildConfigField "String","API_HOST","\"${props['debug_host']}\""
? ? ? ? ? ? ...
? ? ? ? }
release {
????????????manifestPlaceholders = [appnamee:"營銷助手",JPUSH_PKGNAME:"com.ezr.assistant.sellerassistant"]
? ? ? ? ? ??signingConfig signingConfigs.release
? ? ? ? ? ? buildConfigField "String","API_HOST","\"${props['release_host']}\""
? ? ? ? ? ? ...
????????????minifyEnabled true//混淆
????????????zipAlignEnabled true?//Zipalign優(yōu)化
? ? ? ? ? ? shrinkResources true// 移除無用的resource文件
? ? ? ? }
????}
}
以上例子中的API_HOST使用的話BuildConfig.API_HOST即可在代碼中取到其值妒牙,另外如果原來有使用BuildConfig.DEBUG的,如果多配了一個其它環(huán)境最好給用一個自己定義的量对妄,因為BuildConfig.DEBUG在除debug環(huán)境以外是默認為false的