2015-06-20 30 views
0

我的Android應用程序調用Rest服務,並且我想選擇我的應用程序連接到哪個環境(比如本地開發人員,分段或生產)。理想情況下,我想擁有一個屬性(比如說SERVICE_HOST),並且每個環境都會有不同的值。如何在Android應用上設置環境屬性?

在服務器端Java中,我可以傳遞一個JVM變量(-DENVIRONEMNT = production),屬性加載器會根據它讀取正確的屬性文件。

Android中有沒有等效的方法? (或另一種方法,將解決我的問題)

回答

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場,你可以爲在運行時構建一個完整的網址基地使用。

您在Android Studio中的「Build Variants」視圖(默認停靠在左下角)可讓您選擇使用「運行」和「調試」工具欄按鈕的構建類型。

相關問題