Android 多环境(生产、测试、开发)多域名网络配置
Product Flavors
在 build.gradle
配置多个 Flavor
在 app/build.gradle
文件中配置:
android {
flavorDimensions "default"
productFlavors {
dev {
dimension "default"
applicationIdSuffix ".dev"
versionNameSuffix "-dev"
buildConfigField "String", "BASE_URL", "\"https://api-dev.example.com/\""
buildConfigField "String", "AUTH_URL", "\"https://auth-dev.example.com/\""
}
staging {
dimension "default"
applicationIdSuffix ".staging"
versionNameSuffix "-staging"
buildConfigField "String", "BASE_URL", "\"https://api-staging.example.com/\""
buildConfigField "String", "AUTH_URL", "\"https://auth-staging.example.com/\""
}
prod {
dimension "default"
buildConfigField "String", "BASE_URL", "\"https://api.example.com/\""
buildConfigField "String", "AUTH_URL", "\"https://auth.example.com/\""
}
}
}
在 Java 代码中使用 BuildConfig
public class ApiConfig {
public static final String BASE_URL = BuildConfig.BASE_URL;
public static final String AUTH_URL = BuildConfig.AUTH_URL;
}
在 Android Studio 选择不同环境
在 Build Variants 选择:
devDebug
stagingDebug
prodRelease
这样就可以使用不同的 API 地址了。