我想通過實現一個配置參數來確定應用程序是以'DEV'模式還是'PROD'模式運行,從而使開發更容易。Android:在dev/prod環境中運行應用程序?
我想這個參數是從任何文件(基於該參數的代碼不同塊將被執行)訪問。
什麼是存儲此參數(這是無法訪問或改變的用戶)最實際的方法是什麼?
我怎樣才能訪問它從應用程序中?
我想通過實現一個配置參數來確定應用程序是以'DEV'模式還是'PROD'模式運行,從而使開發更容易。Android:在dev/prod環境中運行應用程序?
我想這個參數是從任何文件(基於該參數的代碼不同塊將被執行)訪問。
什麼是存儲此參數(這是無法訪問或改變的用戶)最實際的方法是什麼?
我怎樣才能訪問它從應用程序中?
與ADT 17(IIRC)起,你作爲汽車的一部分生成BuildConfig
類自動擁有此。
開發時,DEBUG
字段始終爲true
,但是當您導出已簽名或未簽名的apk時,它將設置爲false
。你可以使用它作爲:
if(BuildConfig.DEBUG) {
//Debug mode
}
或者周圍的其他方式:
if(!BuildConfig.DEBUG) {
//Release mode
}
我想你錯過了「!」在你的第二個例子中? – Tool
@Tool啊是的!我的錯。我現在修好了。謝謝 –
您可以使用枚舉:
public enum BuildType {
Release, Pilot, Debug;
}
並將其分配給一個全局變量:
public static final BuildType BUILD_TYPE = BuildType.Debug;
你甚至可以創建在枚舉,讓您 切換非常具體的一些方法部分應用程序。在活動的一個
if (MyApplication.BUILD_TYPE != BuildType.Release) {
// some code that does not go in the release
}
您可以創建一個新的類,並添加您的變量存在。 您也可以添加一些方法,這些方法將在開發模式下顯示關於您的應用程序的一些細節。
public class Console{
public final static boolean isDev = true;
public static error(String tag, String msg){
if(isDev){
Log.e(TAG, msg);
}
}
}
這是自動被Android工具現在完成了。詳情請參閱我的回答。 –