官术网_书友最值得收藏!

1.4 調試項目

Android Studio自帶的調試程序讓用戶能夠對運行在模擬器或者真機設備的應用進行調試。

1.4.1 Debug斷點調試

Debug斷點調試是每個開發工具必備的功能,當然Android Studio也有,使用Debug斷點調試可以查看運行中變量的值與表達式的值,可以一行一行代碼逐步進行調試。

如果你的程序是邏輯問題(程序本身不報錯,但是結果錯誤),用Debug調試進行問題定位非常方便。

1. 設置斷點

找到想斷點的代碼行位置,點擊該代碼左側空白處,或者將光標停留在這行代碼上,然后按組合鍵Ctrl+F8(在Mac上,按Command+F8),如圖1-42所示。

圖1-42 添加斷點

例如,想追蹤MainActivity中變量a的值,就可以在聲明a變量那一行設置一個斷點。可以看到左側空白處有一個酒紅色的原點。

2. 調試

給需要調試的代碼設置斷點之后,點擊Android Studio工具欄上的Debug App按鈕運行項目。點擊這個按鈕之后就會以Debug模式運行App。

當軟件運行到“int a=10;”這一行代碼時,Android Studio會暫停應用的運行,并且Android Studio會顯示Debugger標簽,如圖1-43所示。

圖1-43 Debug中

我們可以使用Debugger標簽中的工具來確定應用的狀態:

? 要檢查變量的對象樹,在Variables視圖中將其展開。

? 要在當前執行點對某個表達式求值,點擊Evaluate Expression 按鈕。

? 要前進到下一行代碼(而不進入方法),點擊Step Over 按鈕。

? 要前進到方法調用內的第一行,點擊Step Into 按鈕。

? 要前進到當前方法之外的下一行,點擊Step Out 按鈕。

? 要讓應用繼續正常運行,點擊Resume Program 按鈕。

例如,想看到“a+=20;”這行代碼運行后的結果,可以點擊Step Over按鈕,然后可以在Variables視圖中看到a的值等于30,如圖1-44所示。

圖1-44 顯示代碼的運行結果

如果這個斷點調試完成,讓應用繼續正常運行,點擊Resume Program按鈕。

1.4.2 日志調試

1. 寫入日志

要在代碼中寫入日志,使用Log類,日志消息可以幫助了解執行流程。android.util.Log常用的方法有以下5個:

? Log.v():對應verbose,調試顏色為黑色的,任何消息都會輸出。

? Log.d():對應debug,僅輸出debug調試的意思,但它會輸出上層的信息。

? Log.i():對應info,一般提示性的消息。

? Log.w():對應warn,輸出為藍色,可以看作warning(警告),一般需要注意優化Android代碼。

? Log.e():對應error(異常),輸出為紅色,紅色錯誤需要認真解決。

這5個方法都有兩個參數,第一個參數是tag(為Log打上標簽),第二個參數是打印內容。

2. 查看日志

首先在MainActivity的onCreate中加入打印5種日志的代碼。

    Log.v("ansen","verbose");
    Log.d("ansen","debug");
    Log.i("ansen","info");
    Log.w("ansen","warn");
    Log.e("ansen","error");

重新運行程序,然后在Android Monitor標簽的logcat中看到輸出的日志,效果如圖1-45所示。

圖1-45 查看log

① 選擇設備。

② 選擇運行的程序包名。

③ 選擇要顯示的日志級別,對應Log打印日志的5種方法。

④ 根據字符串過濾日志,例如這里是根據ansen過濾,日志的tag或內容必須要包含ansen這個字符串才會顯示出來。

⑤ 在過濾之后的日志中進行字符串查找。

我們在MainActivity的oncreate方法中最后一行用到了java sdk里面的System類來打印,這樣也是可以的,但是不推薦使用。System類打印日志沒有tag標簽,沒有日志級別,當日志過多時過濾不方便。

主站蜘蛛池模板: 茌平县| 阿合奇县| 黑山县| 澄迈县| 武陟县| 林西县| 名山县| 高青县| 视频| 荣昌县| 福清市| 彭山县| 界首市| 镇远县| 津南区| 揭东县| 镇赉县| 铜梁县| 屏边| 江西省| 安平县| 中牟县| 读书| 莒南县| 贡山| 安丘市| 台山市| 康乐县| 虹口区| 云和县| 乐清市| 兴义市| 百色市| 阿合奇县| 凭祥市| 肇州县| 曲阜市| 满城县| 许昌市| 通州区| 新津县|