好久沒更新網誌了。
最近有朋友問我該怎麼進行Android的錯誤偵測?我想,不就使用斷點嘛?
但是實際上其實連自己也不怎麼愛用斷點,
於時我想我整理了常用的錯誤偵測方法,以供自己,以及那位朋友參考:
- 看DDMS
- 下Log
- 使用Toast
- 設break point,使用Debug模式
且待我一一娓娓道來...
首先是DDMS:
在eclipse的視窗右上角有個可以把DDMS叫出來的選項,
如圖我已經把他叫出來並且切換到那個視窗了,
這裡面有很多有趣的東西可以看,
有興趣可以參考Android develop tools, using DDMS,
或是其他中文比較看得懂的說明。
如圖我已經把他叫出來並且切換到那個視窗了,
這裡面有很多有趣的東西可以看,
有興趣可以參考Android develop tools, using DDMS,
或是其他中文比較看得懂的說明。
但是除非螢幕夠大,要不也沒有特別的好處。
值得一提的是LogCat是顯示log的地方,
他可以由eclipse的windows->show viw裡面找到,找到後像是這樣:
他可以由eclipse的windows->show viw裡面找到,找到後像是這樣:
LogCat來查看log訊息。而log不但android官方愛用,
我們也可以利用他來達到在app執行時候,
回傳給編譯環境一個資訊的工具,log有不同的等級標記,可分為:
我們也可以利用他來達到在app執行時候,
回傳給編譯環境一個資訊的工具,log有不同的等級標記,可分為:
- Verbose
- Debug
- Info
- Warn
- Error
這不但是android系統給予開發者在確認當下狀態的資訊,
也是我們可以對app在運行時候給自己的狀態資訊。
其中Verbose和Debug在系統上應該是看不到的,
這是運用在開發階段時才會存在的等級,
意味著釋出成apk之後他就不會出現在LogCat裡面啦!
也是我們可以對app在運行時候給自己的狀態資訊。
其中Verbose和Debug在系統上應該是看不到的,
這是運用在開發階段時才會存在的等級,
意味著釋出成apk之後他就不會出現在LogCat裡面啦!
當我們app出錯時,系統便會跳出Error level的log訊息,
於是會在LogCat看到滿滿的紅字,
此時他會詳細說明出錯的log以及造成崩潰的位置,
如果崩潰的位置是在我們所撰寫的程式之中,那麼雙擊LogCat該訊息,
就會自動開啟該檔案,並且跳到崩潰的那行。
於是會在LogCat看到滿滿的紅字,
此時他會詳細說明出錯的log以及造成崩潰的位置,
如果崩潰的位置是在我們所撰寫的程式之中,那麼雙擊LogCat該訊息,
就會自動開啟該檔案,並且跳到崩潰的那行。
下Log:
剛剛我們說可以由 LogCat來看到手機裡面app或系統運行的狀態,
那該如果撰寫程式碼來讓系統顯示自訂的log動作呢?
那該如果撰寫程式碼來讓系統顯示自訂的log動作呢?
參考:
String key="這是一個key";
Log.d(key, "debug");
Log.e(key, "error");
Log.i(key, "information");
Log.v(key, "Verbose");
Log.w(key, "Warning");
這一系列的方法是使用Log裡面static的方法,其中有兩個參數,
首先我們需要一個key值,這個key值根據你的需要給予一個固定的值,
顯示的時候LogCat可以根據key值過濾需要的內容:
所以key值的設定最好在同一個需求就用一樣的值。
再來就是輸入我們需要表現出來的字串,
會用來檢驗變數或是程式執行到的位置。
Log下好之後,記得在LogCat中對Log設定過濾,
之後程式運行時就可以看到啦!
首先我們需要一個key值,這個key值根據你的需要給予一個固定的值,
顯示的時候LogCat可以根據key值過濾需要的內容:
所以key值的設定最好在同一個需求就用一樣的值。
再來就是輸入我們需要表現出來的字串,
會用來檢驗變數或是程式執行到的位置。
Log下好之後,記得在LogCat中對Log設定過濾,
之後程式運行時就可以看到啦!
使用Toast:
這個方法的使用其實還滿簡單的,他應該算是一種使用回饋的表現,
不過我有時會拿來做為檢測的工具,為什麼呢?
因為有些時候,我們會需要到戶外實際測試,
此時不可能接著電腦,又不想要用到網路和伺服器連接,
也不想要作SQLite儲存Log訊息。
於是用Toast會是一個不錯的選擇,
設break point,使用Debug模式:
在編譯環境中,左手邊在顯示行數的地方雙擊,會跳出一個藍色的小點點,
那是break point:
然後執行時候對著專案按下右鍵,選擇Debug As-> Android Application:
點擊"Yes",他會跳到Debug的視窗,長這樣:
並且他會停在之前設定好的break point ,可以使用快捷建F5、F6以及F7來操作繼續該點的
沒有留言:
張貼留言
你好,我是小書,如果文章內容有錯誤,或是看到有建議以及任何感想時,歡迎提出分享,我們一起學習一起努力。