在实际开发中,网络请求的根域名通常是不同的版本对应不同的服务器,比如我们现在分为开发、测试、预发布和正式,四个环境,以前是手动注释代码来更换环境,每次要操作很多,万一遗漏一处,可能就会出现问题。最好的方法就是根据不同的版本,自动构建相应的环境,这样就不会出现由于人为因素导致的问题。
module中的build.gradle的buildType一般如下:
buildTypes {
debug {
// 测试环境配置
}
release {
// 正式环境配置
}
}
只有debug和release两个版本,然而我们的环境是四个,于是再增加两个:
buildTypes {
dev {
// 开发环境配置
}
debug {
// 测试环境配置
}
preRelease {
// 预发布环境配置
}
release {
// 正式环境配置
}
}
好,现在我们可以看到在打包的环境,就有4个选项供我们选择了。
现在问题是,如何根据不同的版本获取不同的设定值。buildTypes 中的buildConfigField 可以帮助我们实现:
buildTypes {
dev {
// 开发环境配置
buildConfigField "String", "BASE_URL", '"http://开发.com/"'
}
debug {
// 测试环境配置
buildConfigField "String", "BASE_URL", '"http://测试.com/"'
}
preRelease {
// 预发布环境配置
buildConfigField "String", "BASE_URL", '"http://预发布.com/"'
}
release {
// 正式环境配置
buildConfigField "String", "BASE_URL", '"http://正式.com/"'
}
}
buildConfigField参数分别为参数类型、参数名字、参数值。每个module都会根据buildTypes 在build目录下自动生成一个BuildConfig.java的文件:
public final class BuildConfig {
// ...
public static final String BASE_URL = "http://api.t1.ctsax.com/";
}
然后我们就可以在java代码中使用了:
/**
* 描述:网络请求配置类
*/
public final class Config {
// ...
public static final String BASE_URL = BuildConfig.BASE_URL;
}
转载:https://blog.csdn.net/yu75567218/article/details/101543169
查看评论