還記得剛參加工作的時候笆环,那時不會debug調(diào)試攒至,只會打log查看值。邏輯簡單的還好躁劣,能看到的值迫吐,也能大概判斷出代碼走的位置。但是要測試復(fù)雜的邏輯和執(zhí)行順序账忘,就顯得心有余而力不足了志膀。
后來在項(xiàng)目leader的指點(diǎn)下,逐漸學(xué)會了Android studio的調(diào)試功能鳖擒,發(fā)現(xiàn)測bug高效太多了溉浙。
基本功能
- 左鍵設(shè)置斷點(diǎn)(點(diǎn)擊紅點(diǎn)位置添加或取消斷點(diǎn))
-
開啟調(diào)試
image.png -
或者從運(yùn)行進(jìn)入調(diào)試模式,無需重新編譯運(yùn)行
image.png -
查看調(diào)試面板
image.png
常用操作功能:
單步調(diào)試(step over)
按照代碼順序一行一行往下運(yùn)行蒋荚,是我們最常用的調(diào)試方法放航,比如想看到某段代碼的各個變量的值,判斷崩潰發(fā)生在某段代碼的哪一行圆裕,就采用單步調(diào)試广鳍。遇到子方法也將方法當(dāng)做一步執(zhí)行,不會跳入到子方法里吓妆。走進(jìn)方法里(step into)
當(dāng)調(diào)試到addNum()方法時赊时,點(diǎn)擊step into,調(diào)試跳入到addNum()方法里面調(diào)試行拢。
強(qiáng)制進(jìn)入方法(Force step into)
在調(diào)試時能進(jìn)入任何方法祖秒,包括源碼的方法。跳出方法(step out)
當(dāng)在某個方法里時,點(diǎn)擊step out按鈕竭缝,會跳出該方法在該方法下一行執(zhí)行房维。下個斷點(diǎn)我們見(run to Cursor)
會很快執(zhí)行到下一個斷點(diǎn)的位置,而且可以進(jìn)入任何調(diào)用的方法-
搜索變量值(Evaluate Express)
image.png
更多功能
跳下一個斷點(diǎn)(Resume Program)
直接跳到下一個執(zhí)行的斷點(diǎn)退出App結(jié)束調(diào)試(stop app)
-
查看斷點(diǎn)(View BreakPoints)
可以查看到該類所有斷點(diǎn)和相應(yīng)代碼抬纸。
image.png -
觀察某個變量
當(dāng)程序較為復(fù)雜咙俩,變量存在較多時,可以通過觀察指定的變量來方便我們調(diào)試湿故。在Variables面板下阿趁,點(diǎn)擊下面"+"號,添加觀察變量再回車坛猪。
image.png -
設(shè)置變量值
當(dāng)程序過程較多脖阵,循環(huán)較多,而我只想要調(diào)試這一小段代碼時墅茉,可以給某個變量賦值直接進(jìn)行調(diào)試命黔。
右鍵某變量set value設(shè)置想要的值。
image.png