搜尋

首頁  >  問答  >  主體

android-studio - Android Studio 中有没有类似C#的#if DEBUG功能

VisualStudio中如果当前模式为DEBUG,那么我在代码中可以在#if DEBUG中执行一些代码,比如Debug模式中访问的API为www.aaa.com。而正式发布release时API是www.bbb.com,这在vs中是可以。不知道Android Studio中有没有类似的功能。

黄舟黄舟2772 天前676

全部回覆(7)我來回復

  • 高洛峰

    高洛峰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);
        }
    }

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-17 17:33:01

    沒有,Java不支援巨集定義,所有的偵錯資訊都會進入編譯結果。你只能在程式中設定變數讓調試程式在生產環境中不執行。
    Android Manifest中有版本訊息,預設會生產Debug和Release兩種版本,你可以透過程式判斷來實現切換參數。

    回覆
    0
  • 迷茫

    迷茫2017-04-17 17:33:01

    AS的調試過程中可以動態設定變數值~

    回覆
    0
  • 黄舟

    黄舟2017-04-17 17:33:01

    這個功能很雞肋,明明可以自己寫程式碼實現的(不超過3行程式碼就能搞定),非要android原生去實現,如你所願的話安卓開發將會更加複雜,我們需要記住更多雞肋功能了(得不償失)

    回覆
    0
  • 大家讲道理

    大家讲道理2017-04-17 17:33:01

    可以利用BuildConfig來實現

    回覆
    0
  • ringa_lee

    ringa_lee2017-04-17 17:33:01

    可以,借助gradle配置:變數、版本資訊

    回覆
    0
  • 大家讲道理

    大家讲道理2017-04-17 17:33:01

    看看android studio的debug技巧,http://weishu.me/2015/12/21/a...,不要太屌

    回覆
    0
  • 取消回覆