VisualStudio中如果当前模式为DEBUG,那么我在代码中可以在#if DEBUG中执行一些代码,比如Debug模式中访问的API为www.aaa.com。而正式发布release时API是www.bbb.com,这在vs中是可以。不知道Android Studio中有没有类似的功能。
高洛峰2017-04-17 17:33:01
Android Studio 會自動加入 BuildConfig 類,這個類別有一個字段叫 DEBUG,它的值會根據目前的編譯方式自動生成,編譯方式為 debug 時值為 true,release 時值為 false。所以可以根據這個特點在函數中加入 if (BuildConfig.DEBUG) 類別來實現類似的功能,一個比較常見的例子是自訂 Log 類,使得在 debug 時輸出 log,release 時不輸出:
public void d(String tag, String message) {
if (BuildConfig.DEBUG) {
Log.d(tag, message);
}
}
PHP中文网2017-04-17 17:33:01
沒有,Java不支援巨集定義,所有的偵錯資訊都會進入編譯結果。你只能在程式中設定變數讓調試程式在生產環境中不執行。
Android Manifest中有版本訊息,預設會生產Debug和Release兩種版本,你可以透過程式判斷來實現切換參數。
黄舟2017-04-17 17:33:01
這個功能很雞肋,明明可以自己寫程式碼實現的(不超過3行程式碼就能搞定),非要android原生去實現,如你所願的話安卓開發將會更加複雜,我們需要記住更多雞肋功能了(得不償失)