android-studio - Android Studio 中有沒有類似C#的#if DEBUG功能
問題描述
VisualStudio中如果當前模式為DEBUG,那么我在代碼中可以在#if DEBUG中執行一些代碼,比如Debug模式中訪問的API為www.aaa.com。而正式發布release時API是www.bbb.com,這在vs中是可以。不知道Android Studio中有沒有類似的功能。
問題解答
回答1: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); }}回答2:
沒有,Java不支持宏定義,所有的調試信息都會進入編譯結果。你只能在程序中設置變量讓調試程序在生產環境中不執行。Android Manifest中有版本信息,默認會生產Debug和Release兩種版本,你可以通過程序判斷來實現切換參數。
回答3:AS的調試過程中可以動態設置變量值~
回答4:這個功能很雞肋,明明可以自己寫代碼實現的(不超過3行代碼就能搞定),非要android原生去實現,如你所愿的話安卓開發將會更加復雜,我們需要記住更多雞肋功能了(得不償失)
回答5:可以利用BuildConfig來實現
回答6:可以,借助gradle配置:變量、版本信息
回答7:看看android studio的debug技巧,http://weishu.me/2015/12/21/a...,不要太牛逼
相關文章:
1. android - NavigationView 的側滑菜單中如何保存新增項(通過程序添加)2. 提示語法錯誤語法錯誤: unexpected ’abstract’ (T_ABSTRACT)3. javascript - vue 元素加樣式該怎么做4. tp5 不同控制器中的變量調用問題5. 這段代碼既不提示錯誤也看不到結果,請老師明示錯在哪里,謝謝!6. 老師 我是一個沒有學過php語言的準畢業生 我希望您能幫我一下7. javascript - 請問一下vue當中是在什么時候請求數據保存全局變量的?8. python文檔怎么查看?9. php7.3.4中怎么開啟pdo驅動10. 除了 python2 和 python3,ipython notebook 還可以用哪些內核?
