我們程序員在寫程序的時候训桶,Bug是不可避免的参萄,在這種情況下卫枝,除了日志外最常用的就是Debug了。除了寫程序讹挎,當我們接手一個舊的程序校赤,熟悉代碼最常用的手段也是調試,以前沒有總結過Android Studio的調試筒溃,現(xiàn)在來總結一下Android Studio的調試技巧马篮!
AS調試面板介紹
點擊頂部工具欄的進入斷點調試,例如下面紅色方框區(qū):
進入斷點調試之后怜奖,就會喚出調試面板浑测,我們介紹一下調試面板,調試面板如下圖所示:
調試功能鍵區(qū)有6個圖標歪玲,分別代表不同的功能迁央,下面分別介紹,從左邊算起滥崩,以紅色方框分割:
第一個是step over:點擊該圖標程序執(zhí)行下一行岖圈,如果是調用方法,這個方法會被直接執(zhí)行不會進入該方法內部钙皮。
第二個是step into:點擊該圖標蜂科,如果當前代碼是自定義的方法,會進入方法內部逐步執(zhí)行株灸,如果是官方庫的方法崇摄,不會進入方法內部,如果不是將執(zhí)行下一行
第三個是force step into:點擊該圖標會進入方法內部慌烧,不論是自定義方法還是官方庫方法逐抑。會使你脫離當前斷點,從你選擇的方法開始調試屹蚊。
第四個是step out:點擊該圖標會快速運行完該方法厕氨,跳出當前執(zhí)行的方法內部进每,執(zhí)行到該方法調用的下一句代碼。
第五個是drop frame:點擊該圖標會回到調用該方法的開始處命斧,恢復原始值田晚,可以重新運行該方法。
第六個是run to cursor:點擊該圖標會使程序跳轉到下一個斷點處国葬,如果設置多個斷點逐句運行會比較麻煩贤徒,可以通過這個功能快速跳轉到下一個斷點。
調試功能鍵介紹完到求值表達式功能鍵區(qū)汇四,求值表達式功能的作用是:當程序運行到某一個斷點的時候接奈,恰好你對該處的某對象的某些屬性很感興趣,那么可以通過該按鈕跳出通孽。點擊該圖標會跳出一個Evaluate expression窗口序宦,我們可以在這個窗口中輸入感興趣的表達式,然后點擊evaluate按鈕背苦,你就可以得到想要知道的結果了互捌。如下圖所示:
我們調試的是add方法,直接調用這個方法行剂,可以計算a+b的值秕噪,我們在輸入框里面輸入add(10,20),最終輸出結果是30.
這里介紹的只是斷點調試的厚宰,AndroidStudio還提供其他的斷點調試方法巢价,下面我們介紹一下其他斷點調試方法:
條件斷點調試
當我們設置的斷點在一個循環(huán)里面,我們只對循環(huán)中某個值得時候有興趣固阁,逐步調試會很麻煩,這個時候條件斷點調試會極大的提高我們的效率城菊。我們可以設置一個條件备燃,只有當循環(huán)滿足我們的條件的時候,循環(huán)才會停下來凌唬,例如:
日志斷點
日志斷點嚴格來說并不是斷點調試并齐,它不會在你打斷點的地方停下來,它只是讓你在需要的地方輸出日志而已客税。例如:
這個是設置條件
輸出的信息
方法斷點
當我們只對方法執(zhí)行的結果或者返回值感興趣的時候况褪,方法斷點是一個不錯的選擇。只需要在方法的第一行打上斷點即可更耻,斷點的圖標也會不一樣测垛。
異常斷點
如果你對程序發(fā)生的異常感興趣,Exception Breakpoint是非常不錯的選擇秧均,當程序運行發(fā)生異常時食侮,直接讓程序停下來号涯,保留事故發(fā)生的現(xiàn)場,你可以即使有效的發(fā)現(xiàn)問題的原因以及異常發(fā)生的位置锯七。
使用方法:RUN-->View BreakPoints或者直接使用快捷鍵Ctrl+shift+F8链快,彈出如下窗口
點擊左上角的加號,選擇第三個眉尸,如下圖紅色框所示:
在彈出的窗口輸入你感興趣的異常域蜗,當程序發(fā)生異常的時候會停下來
設置變量的值
在調試過程中,你發(fā)現(xiàn)某個變量的值跟你預期的結果不一樣噪猾,或者你懷疑某變量這出現(xiàn)某些特殊值時程序會發(fā)生崩潰霉祸,而當前測試環(huán)境又極難模擬這種情況,那么你可以在調試模式時畏妖,如圖所示脉执,在變量區(qū)右鍵你想監(jiān)控的變量,設置你想要出現(xiàn)的值戒劫,然后繼續(xù)運行半夷。
Android程序開發(fā)還有其他許多的調試方法,需要我們在實際開發(fā)中不斷的總結學習迅细!