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. javascript - mongodb怎么設(shè)置用戶的賬戶不重復(fù)?2. redis sentinel怎么跑守護(hù)進(jìn)程以及日志記錄位置的?3. css - transition 的使用?4. javascript - RN項(xiàng)目iOS端真機(jī)測(cè)試賬號(hào)無法登錄!5. python 字符串匹配問題6. 請(qǐng)問各位java自帶類的一些問題7. javascript - sublime快鍵鍵問題8. html - angular項(xiàng)目中如何讓外鏈網(wǎng)頁在本項(xiàng)目中展示?9. Python異常退出時(shí)保存進(jìn)度?10. 請(qǐng)問PHPstudy中的數(shù)據(jù)庫如何創(chuàng)建索引

網(wǎng)公網(wǎng)安備