android-studio - Android Studio 中有沒有類似C#的#if DEBUG功能
問題描述
VisualStudio中如果當(dāng)前模式為DEBUG,那么我在代碼中可以在#if DEBUG中執(zhí)行一些代碼,比如Debug模式中訪問的API為www.aaa.com。而正式發(fā)布release時(shí)API是www.bbb.com,這在vs中是可以。不知道Android Studio中有沒有類似的功能。
問題解答
回答1:Android Studio 會(huì)自動(dòng)添加 BuildConfig 類,這個(gè)類有一個(gè)字段叫 DEBUG,它的值根據(jù)當(dāng)前的編譯方式自動(dòng)生成,編譯方式為 debug 時(shí)值為 true,release 時(shí)值為 false。所以可以根據(jù)這個(gè)特點(diǎn)在函數(shù)中添加 if (BuildConfig.DEBUG) 類來實(shí)現(xiàn)類似的功能,一個(gè)比較常見的例子是自定義 Log 類,使得在 debug 時(shí)輸出 log,release 時(shí)不輸出:
public void d(String tag, String message) { if (BuildConfig.DEBUG) {Log.d(tag, message); }}回答2:
沒有,Java不支持宏定義,所有的調(diào)試信息都會(huì)進(jìn)入編譯結(jié)果。你只能在程序中設(shè)置變量讓調(diào)試程序在生產(chǎn)環(huán)境中不執(zhí)行。Android Manifest中有版本信息,默認(rèn)會(huì)生產(chǎn)Debug和Release兩種版本,你可以通過程序判斷來實(shí)現(xiàn)切換參數(shù)。
回答3:AS的調(diào)試過程中可以動(dòng)態(tài)設(shè)置變量值~
回答4:這個(gè)功能很雞肋,明明可以自己寫代碼實(shí)現(xiàn)的(不超過3行代碼就能搞定),非要android原生去實(shí)現(xiàn),如你所愿的話安卓開發(fā)將會(huì)更加復(fù)雜,我們需要記住更多雞肋功能了(得不償失)
回答5:可以利用BuildConfig來實(shí)現(xiàn)
回答6:可以,借助gradle配置:變量、版本信息
回答7:看看android studio的debug技巧,http://weishu.me/2015/12/21/a...,不要太牛逼
相關(guān)文章:
1. python - oslo_config2. php傳對應(yīng)的id值為什么傳不了啊有木有大神會(huì)的看我下方截圖3. python - scrapy url去重4. 關(guān)于mysql聯(lián)合查詢一對多的顯示結(jié)果問題5. 實(shí)現(xiàn)bing搜索工具urlAPI提交6. 數(shù)據(jù)庫 - Mysql的存儲(chǔ)過程真的是個(gè)坑!求助下面的存儲(chǔ)過程哪里錯(cuò)啦,實(shí)在是找不到哪里的問題了。7. python - Django有哪些成功項(xiàng)目?8. 小白學(xué)python的問題 關(guān)于%d和%s的區(qū)別9. MySQL主鍵沖突時(shí)的更新操作和替換操作在功能上有什么差別(如圖)10. Python從URL中提取域名
