在build.gradle中構建log開關——自定義BuildConfig
阿新 • • 發佈:2019-01-13
在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、多渠道打包