【小技巧】AndroidStudio利用斷點打印日志

你是不是有著這樣的煩惱:

  • 調試程序常常需要到處打印日志 (沒辦法,debug需要)
  • 打印日志需要對代碼進行修改 (改來改去一不小心就忘了刪除,或者破壞了代碼)
  • 改完代碼還要重新編譯 (編譯一次要等待好久!)

怎么辦?

有沒有誰能滿足我,讓我愉快地debug?沒有天馬行空的日志代碼,沒有每次重新編譯的苦苦等待?

好吧騷年,我看你骨骼驚奇,是萬中無一的debug奇才,來來來,我偷偷告訴你,你可知AndroidStudio的斷點不僅僅提供斷點嗎?(知道的當我沒說)

好,下面我介紹AS的一種功能:斷點處日志輸出

首先看下下面這段代碼,如果我們需要打印日志,常常會像這樣做,直接在代碼中編寫Log代碼,重新編譯后在控制臺查看輸出。

public class MainActivity extends AppCompatActivity {

    private static final String TAG = "MainActivity";
    private String mTestStr = "test";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.d(TAG, "mTestStr: "+mTestStr);
    }
}

然而我不想hardcode,也不想重新編譯。這時候,看看下面:


AS斷點-選中suspend

上圖是一個簡單的斷點,但是我們右鍵點開,發現竟然還有一些奇怪的東東。其中Suspend暫停,若此值被選中,則代表著代碼運行到此處會暫停,也就是我們常常使用的斷點功能啦。

“如果不選中呢?”
“廢話,那就是不暫停啦!”
“誒,不暫停你丫干啥吃呢?!”

別急,仔細看看,這里還另有乾坤!

AS斷點-取消suspend

其他的部分我就不說了(哼,我才不會說我還不懂呢),來看看今天的主角Log evaluated expression。這是什么意思呢?簡單說就是日志表達式,也就是日志輸出的內容。
我們給Log evaluated expression打上勾,并簡單地在這里輸入想要打印的日志。咦,竟然還有提示,不錯不錯。

Log evaluated expression

接下來,開啟調試模式,不會開的同學可以看看下面這個:


Process

點開后可以看到當前能debug的進程,選中你想調試的進程雙擊就能綁定進程開始調試了,具體就不多說了。

接下來,只要程序運行到對應的斷點位置(好吧,應該不算斷點了吧=。=),在調試臺中就能看到日志的輸出了~~

結語

在調試模式下利用斷點輸出日志方便快捷,不用修改代碼也不用重新編譯。當然,調試模式還是有缺點的,那就是——卡,相信大家都深有感受吧,不過比起hardcode和編譯等待時間,這點小卡頓常常更值得。

此外,如上文所看到的,調試模式除了日志輸出,還有其他功能等待我們探索。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,076評論 25 708
  • 前言 最近博主臨近畢業季,為了完美的寫一篇畢業論文,真是:“鋤禾日當午,汗滴禾下土”<—— 這句詩跟畢業我寫畢業論...
    Dav1dDay閱讀 1,069評論 1 7
  • Android Studio目前已經成為開發Android的主要工具,用熟了可謂相當順手。作為開發者,調試并發現b...
    涅槃1992閱讀 50,827評論 36 366
  • 對于開發的同學來講,Debug并不陌生,對于做Android開發的同學也是一樣的。 可能有些同學會問,調試程序誰不...
    點融黑幫閱讀 5,485評論 3 6
  • 少年,我的定義是從小學三年級開始到初中結束,這個階段,人接受知識是很快的,是形成個人最終價值觀的絕佳階段。我們可以...
    艾瑞克亞瑟閱讀 207評論 0 0