1. 程式人生 > >在build.gradle中構建log開關——自定義BuildConfig

在build.gradle中構建log開關——自定義BuildConfig

在Android開發中,很多時候我們會自己封裝一個Log類,裡面設定一個開關,

  • 在開發的時候將所有級別的Log全部開啟輸出。
  • 在釋出應用前,把Log.i和Log.d這類級別的Log關閉,僅留下Log.e型別的輸出。

這樣做是為了防止別人通過log來研究我們的程式碼,同時也可以把一些不必要給別人看的資訊過濾掉。

實現-通過BuildConfig類來關閉

我們可以通過在build.gradle指令碼中的buildTypes閉包中指定引數,使得這個類生成出來的時候包含一個我們自定義的boolean型別的靜態常量ENABLE_DEBUG,再跟進這個常量進行log輸出控制。

buildTypes {
        release {
            // 不顯示log
            buildConfigField "boolean", "ENABLE_DEBUG", "false"
            ...
        }

        debug {
            // 顯示Log
            buildConfigField "boolean", "ENABLE_DEBUG", "true"
            ...
        }
    }

按照上面的指令碼編寫之後,

  • 生成的release版BuildConfig類中就會多出一個常量,即
 public static final boolean ENABLE_DEBUG = false;;
  • 而debug版的BuildConfig類中的常量值則為true,即
public static final boolean ENABLE_DEBUG = true;

當你修改build.gradle指令碼以後,按照Android Studio的提示,點選Gradle Sync,就可以在Android專案中呼叫BuildConfig類中常量,從而實現log開關功能。

Log.d("LOG","無判斷");

        if (BuildConfig.ENABLE_DEBUG) {
            Log.d("LOG", "有判斷");
        }

如上,我做了兩個log輸出,debug版本時都可以輸出,release版本時只有第一個能輸出。

其他學習:
Gradle構建控制Log開關——BuildConfig\自定義
Androrid 應用打包release版時關閉log日誌輸出
Android Gradle全域性配置、關閉Log、多渠道打包