我的Android應用程序調用Rest服務,並且我想選擇我的應用程序連接到哪個環境(比如本地開發人員,分段或生產)。理想情況下,我想擁有一個屬性(比如說SERVICE_HOST),並且每個環境都會有不同的值。如何在Android應用上設置環境屬性?
在服務器端Java中,我可以傳遞一個JVM變量(-DENVIRONEMNT = production),屬性加載器會根據它讀取正確的屬性文件。
Android中有沒有等效的方法? (或另一種方法,將解決我的問題)
我的Android應用程序調用Rest服務,並且我想選擇我的應用程序連接到哪個環境(比如本地開發人員,分段或生產)。理想情況下,我想擁有一個屬性(比如說SERVICE_HOST),並且每個環境都會有不同的值。如何在Android應用上設置環境屬性?
在服務器端Java中,我可以傳遞一個JVM變量(-DENVIRONEMNT = production),屬性加載器會根據它讀取正確的屬性文件。
Android中有沒有等效的方法? (或另一種方法,將解決我的問題)
我想選擇哪種環境我的應用程序連接到(說本地開發,分期或生產)
如果使用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
場,你可以爲在運行時構建一個完整的網址基地使用。
您在Android Studio中的「Build Variants」視圖(默認停靠在左下角)可讓您選擇使用「運行」和「調試」工具欄按鈕的構建類型。