我的Android应用程序调用Rest服务,我想选择我的应用程序连接到哪个环境(比如本地开发,登台或制作)。理想情况下,我想拥有一个属性(比如SERVICE_HOST),每个环境都有不同的值。
在服务器端Java,我可以传入一个JVM变量(-DENVIRONEMNT = production),属性加载器会根据它读取正确的属性文件。
Android中是否有任何等效方法? (或另一种解决我问题的方法)
答案 0 :(得分:2)
我想选择我的应用连接到哪个环境(比如本地开发,分段或制作)
如果您使用的是Android Studio,则会映射到build types。预先建立了两种构建类型:debug
和release
。您可以在app
模块的build.gradle
文件中定义更多内容。并且,您可以定义每个构建类型常量。
例如:
buildTypes {
debug {
applicationIdSuffix ".d"
buildConfigField "String", "SERVER_URL", '"http://test.this-is-so-fake.com"'
}
release {
buildConfigField "String", "SERVER_URL", '"http://prod.this-is-so-fake.com"'
}
staging.initWith(buildTypes.release)
staging {
applicationIdSuffix ".stage"
debuggable true
buildConfigField "String", "SERVER_URL", '"http://stage.this-is-so-fake.com"'
}
}
这定义了一个新的构建类型(staging
)并创建了一个BuildConfig.SERVER_URL
字段,您可以将其用作在运行时构建完整URL的基础。
你的"构建变体" Android Studio中的视图(默认情况下停靠在左下方)将允许您选择"运行"和"调试"工具栏按钮实际使用。