如何在Android Apps上设置环境属性?

时间:2015-06-20 21:49:57

标签: java android

我的Android应用程序调用Rest服务,我想选择我的应用程序连接到哪个环境(比如本地开发,登台或制作)。理想情况下,我想拥有一个属性(比如SERVICE_HOST),每个环境都有不同的值。

在服务器端Java,我可以传入一个JVM变量(-DENVIRONEMNT = production),属性加载器会根据它读取正确的属性文件。

Android中是否有任何等效方法? (或另一种解决我问题的方法)

1 个答案:

答案 0 :(得分:2)

  

我想选择我的应用连接到哪个环境(比如本地开发,分段或制作)

如果您使用的是Android Studio,则会映射到build types。预先建立了两种构建类型:debugrelease。您可以在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中的视图(默认情况下停靠在左下方)将允许您选择"运行"和"调试"工具栏按钮实际使用。