Android 調(diào)試技巧-AndroidStudio篇

附著調(diào)試(Attach Debuger)

這個(gè)名詞不搜一下還真不知道。但是確實(shí)是大大的實(shí)用。
Attach Debuger

就是這個(gè)東西。

我們常常調(diào)試程序的時(shí)候就是點(diǎn) Debug app 按鈕,有時(shí)候點(diǎn)了 Run 之后發(fā)現(xiàn)效果不對,想調(diào)試一下,然后又點(diǎn) Debug 按鈕重新編譯了一遍,非常耗時(shí)間,這時(shí)候就要用到 Attach debug 了。

Attach debug 是在你手機(jī)連上 AS 之后,開啟了你的手機(jī)程序,然后點(diǎn)擊 Attach debug 按鈕,就可以進(jìn)入斷點(diǎn)調(diào)試狀態(tài)的功能。不需要重新 run 一遍(前提是你的代碼和 APP 是同步的),也不需要點(diǎn)擊 Debug 按鈕編譯,只要點(diǎn)擊了 Attach Debug 之后就可以開始你的調(diào)試了。

條件斷點(diǎn)

條件斷點(diǎn).png

上圖不知道有小伙伴用過沒,我們打了斷點(diǎn)之后,在斷點(diǎn)上右鍵就可以看到截圖中的界面。里面的 conditions 可以很容易的理解就是條件。這就是用來觸發(fā)條件斷點(diǎn)的。

舉個(gè)例子:假如你有一個(gè) for 循環(huán),你想讓他跑到第五遍的時(shí)候停下來進(jìn)入斷點(diǎn)開始調(diào)試,就輸入 i==5 然后done,他就會(huì)在滿足條件 i==5 的時(shí)候停下進(jìn)入斷點(diǎn)調(diào)試。

日志斷點(diǎn)

接條件斷點(diǎn)圖片可以看到左下角有 More ,在里面可以有更多的屬性選擇。比如說我們想在這斷點(diǎn)處打日志,但是程序已經(jīng)跑起來了,我們又不需要停下來。那么這個(gè)時(shí)候可以接上兩步學(xué)習(xí)的內(nèi)容融合一下。

首先打開 Attach debug。然后在你想輸出日志的地方打上斷點(diǎn),右鍵,點(diǎn)擊左下角的 More,讓我們來編輯一下。

日志斷點(diǎn)

打開 More 之后我們可以看到展開了更多的屬性,我們選上 Log Message to console 和 Evaluate and log,輸入日志信息。然后他就會(huì)觸發(fā)斷點(diǎn)的時(shí)候打印日志到 logcat 上了。但是我們只想要打印日志,不想進(jìn)入 debug 模式怎么辦?那么我們只要把 Suspend 取消掉,他就不會(huì)暫停下來進(jìn)入 debug 模式,而是會(huì)繼續(xù)跑下去。這樣你就可以繼續(xù)跑程序同時(shí)隨時(shí)輸出你想要的日志信息了。

大家也可以探究一下其他屬性功能。

setValue

setValue 這是在進(jìn)入 debug 模式后,對某些參數(shù)當(dāng)前值直接進(jìn)行更改生效的方法。如圖下圖。

setValue

進(jìn)入 debug 模式之后,假如說我們希望 i = 10 而不是 = 0,這時(shí)候只要右鍵或者 F2 就能對他重新賦值,賦值后 i 的值會(huì)一直生效影響到后面的程序的執(zhí)行。假如說在這里 for 循環(huán)要小于10,而我的 i = 10 了,那么他就會(huì)跳出循環(huán)。

這可以應(yīng)用在某些場景,比如:你發(fā)現(xiàn)結(jié)果不是很對的時(shí)候,希望套入某些值(預(yù)設(shè)正確的值)進(jìn)入去計(jì)算,然后跑下去就知道程序是否正確。

Evaluate

Evaluate

Evaluate 就是上圖中的上方箭頭所指的小窗。Evaluate 和 debug 模式下的 + 號(hào)功能上差不多,只不過他是彈窗式彈出來,而且是一次性的。下面的 + 號(hào)更多是類似一種 watcher 的作用。

在監(jiān)測某些返回值或者某些執(zhí)行結(jié)果的變化的時(shí)候我會(huì)用 + 號(hào)更多。在做一些主動(dòng)性嘗試的時(shí)候則是用 Evaluate 更多。例如,上面我 setValue 更改了某些數(shù)值,但是我此時(shí)有好幾個(gè)公式想知道執(zhí)行結(jié)果,不知道哪個(gè)公式才是正確的。只需要點(diǎn)擊小窗,就可以在上面執(zhí)行語句。觀察結(jié)果。

1540099000187.png

如果返回值是對象,結(jié)果也能展開,大家嘗試一下就知道了。


此外還有些實(shí)用的小技巧,例如

  • 快捷鍵 ctrl+H 可以展開繼承關(guān)系。
  • ctrl+左鍵,點(diǎn)擊調(diào)用的方法跳轉(zhuǎn)到方法內(nèi)部,點(diǎn)擊方法名跳轉(zhuǎn)到被調(diào)用的地方(類似于 find usages)
  • 點(diǎn)擊接口左邊的圖標(biāo)可以查看哪里實(shí)現(xiàn)了該接口。

這些小技巧配合閱讀源碼調(diào)試程序食用更佳。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 【AndroidStudio 調(diào)試技巧】 基本使用 Debug App有兩種途徑,第一種是直接點(diǎn)擊下圖運(yùn)行按鈕右側(cè)...
    Rtia閱讀 451評論 0 0
  • 之前我在調(diào)試的時(shí)候,只會(huì)斷點(diǎn)調(diào)試,一步一步往下走,看了別人寫的一篇文章才知道,原來斷點(diǎn)調(diào)試還可以這么使用. 第一,...
    正陽Android閱讀 1,084評論 3 8
  • Android Studio目前已經(jīng)成為開發(fā)Android的主要工具,用熟了可謂相當(dāng)順手。作為開發(fā)者,調(diào)試并發(fā)現(xiàn)b...
    7d3fadbb4407閱讀 610評論 0 3
  • Android Studio目前已經(jīng)成為開發(fā)Android的主要工具,用熟了可謂相當(dāng)順手。作為開發(fā)者,調(diào)試并發(fā)現(xiàn)b...
    StChris閱讀 1,839評論 0 16
  • 寧已閱讀 434評論 0 0

友情鏈接更多精彩內(nèi)容