Android Studio是一個很是優秀的開發工具,同時也內置了很是強大的調試方式,今天來學習一下Android Studio裏的調試技巧。html
方式一:運行調試
從新編譯整個工程並進入Debug狀態。若是開啓了Instant Run,那麼也具備Instant Run的特性。android
方式二:附加進程調試
經過直接鏈接手機上正在運行的進程進行調試。若是一個測試人員拿過來一部程序運行到一半的手機,問你「這個網絡調用怎麼報錯啊?」,這時使用這個功能就特別有用。express
PS:只有在須要調試的那部分工程代碼和進程匹配才能正確調試並定位問題,不然代碼不知道會跳轉到哪去~android-studio
選擇要鏈接的進程網絡
鏈接成功後在調試終端中會顯示如下日誌。工具
1、添加/刪除斷點
添加、刪除斷點無需多作介紹了。最簡單的方式就是在每一行左邊的空白處點擊一下添加,再店家一下斷點刪除。學習
2、管理斷點
打開斷點管理窗口開發工具
左邊列出工程中全部的斷點,能夠增長、刪除、關閉斷點。同時能夠設置每一個斷點的屬性。
測試
- Enable:控制斷點是否可用,不會刪除該斷點,只是控制斷點是否可用。
- Suspend:控制運行到該斷點時線程是否掛起。如關閉該選項,線程不會掛起,但依然會執行爲該斷點設置的其餘功能。好比Log。
- Condition:設置執行該斷點的條件,具體見條件斷點。
- Log message to console:將斷點自身的消息打印到console中。
- Log evaluated expression:打印自定義的表達式,具體件日誌斷點。
- Remove once hit:設置一次性的斷點,執行過該斷點就被刪除。
- Disabled until selected breakpoint is hit:設置執行該斷點的關聯條件。
3、斷點的分類
根據做用和調試場景的不一樣,Android Studio中的斷點能夠劃分爲如下幾類斷點:通常斷點、條件斷點、日誌斷點、方法斷點、異常斷點、成員觀察點(Field WatchPoint)。各種斷點沒有明確的界限,有時須要相互配合使用才能快速地定位問題。lua
通常斷點一般配合單步調試使用。
單步調試
Android Studio提供了多種步進方式。
- Step Over:單步前進,不進入子方法;
- Step Into:單步前進,若是斷點包含子方法則進入方法(不會進入官方類庫的方法);
- Force Step Into:在Step Into 的基礎上能進入任何方法;
- Smart Step Into:語句包含兩個或者以上方法鏈式調用,能夠選擇進入那個方法,包括匿名內部類,Lamda表達式也能夠;
- Step Out:單步前進,若是已在子方法裏面則跳出;
- Run to Cursor:直接跳到光標定位的地方,這個功能很是有用。
- Drop Frame:點擊該按鈕後,你將返回到當前方法的調用處從新執行,而且全部上下文變量的值也回到那個時候。只要調用鏈中還有上級方法,能夠跳到其中的任何一個方法;
- Resume Program:繼續執行;
在斷點的位置設置條件,那只有符合條件的狀況下才停下來,例如調試一個for循環的時候有幾百次循環可是想看到某個次數時候則至關方便。
勾選Log evaluated expression並填入表達式,執行到此斷點時會在debug console中打印此表達式。能夠根據須要去掉suspend。
在方法開頭設置,斷點標識紅色四黑點的標識。而且能夠選擇進入和退出方式時觀察。
設置異常斷點,在程序發生異常的時候會進入斷點。能夠指定Any exception或特定類型的Exception。
爲某個類的全局變量設置成員觀察點,當該變量被訪問或改變的時候進入斷點。
- 在斷點停留的時候,在變量上Alt+鼠標左鍵就能彈出變量信息窗口。
- 在Android Studio下方的Debug窗口的Variables中也會顯示全部能定位到的變量。
- 能夠在Watches窗口中添加關注的變量。這樣在程序調試的過程當中能夠實時地觀察該變量。並同時觀察多個變量。
- 右鍵點擊變量,選擇Set Value能夠實時更改變量值
- 右鍵點擊變量,選擇Mark Object進行標記
- 計算表達式,這個功能在調試時很是有用。點擊下圖的圖標打開窗口:
Expression Mode下輸入表達式進行Evaluate能夠看到表達式的值:
Code Fragment Mode下輸入代碼片斷能夠看到最後一個表達式的值:
Android Studio的Debug技巧基本介紹結束了。本文中介紹了Android Studio開啓Debug模式、斷點的分類、觀察變量值。在實際的Debug過程當中,須要靈活地使用Debug技巧,才能快速地定位問題。
Android Studio 調試技巧
http://www.cnblogs.com/wust221/p/5427094.html
android studio學習----調試---斷點調試