Android 軟件開發之如何使用Eclipse Debug調試程序詳解

1.在程序中添加一個斷點
若是所示:在Eclipse中添加了一個程序斷點 java


在Eclipse中一共有三種添加斷點的方法 android

第一種: 在紅框區域右鍵出現菜單後點擊第一項 Toggle Breakpoint 將會在你右鍵代碼的哪一行添加一個程序斷點 (一樣的操做方可取消程序斷點)
第二種: 在紅框區域雙擊鼠標左鍵將會在你雙擊代碼的哪一行添加一個程序斷點 (一樣的操做方可取消程序斷點)
程序員


第三種 :在光標停留的地方使用快捷鍵 Ctrl + Shift + B 將會在光標停留的這一行添加一個程序斷點 (一樣的操做方可取消程序斷點) dom


2.運行Debug 調試 讓程序停留在添加的斷點上 編輯器

以下圖所示,在紅框內點擊下拉菜單選中須要調試的項目 則開始運行Debug調試
若是不在下拉表中選直接點擊表示Debug運行默認項目(默認項目爲上一次運行的項目)
Debug調試 快捷鍵爲單擊F11


分析一下如何科學的添加程序斷點, 上圖中我爲了加斷點查看生成出來隨機數的值我一共添加了6個程序斷點,綠框表示最爲科學的斷點位置 ,紅框表示不科學的位置。 咱們分析一下爲何, 若是switch case 中的代碼片斷過長 或者 case 的數量過多 若是採用紅框的方式來添加程序斷點,程序員需要添加不少程序斷點萬一有疏漏 因此會很難快速定位代碼執行到了那裏 ,若是使用綠框的方式添加程序斷點,程序員只需要在斷點出按 F6 單步跳過這一行代碼就會走進正確的case中方便繼續調試。


Debug調試運行後,程序停在了紅框處,按F6單步跳過 發現隨機數爲4 程序停留在了綠框中,程序員能夠迅速定位random的值爲4

3.程序停留後查看變量的數值

藍框中的內容表示爲斷點的入口方法, 就比如你的斷點是從那個方法進來的,學會看這個真的很是重要, 比如我如今明確知道個人一個方法在被調用的時候方法中會出現錯誤,可是這個方法在程序中100個地方都在調用,我可能判定實在那裏調用的時候出的錯誤,我不可能在100個調用它的地方都加一個斷點,我能夠在方法中添加程序斷點 而後在籃框中查看程序是從那個地方走進這個方法的,即可以快速定位問題所在。

綠框中能夠查看當前方法中全部變量的值,可是若是變量很是多在這裏看就比較麻煩,可使用紅框的方法查看。

紅框中能夠右鍵變量名點擊咖啡框中的watch 後 在紫框中Expressions 就能夠看到變量的數值了。

BreakPoints 中會記錄程序中添加過多少程序斷點

4分享一些Eclipse中Debug的一些小技巧

watch 過的變量 和咱們本身加的程序斷點不會被Eclipse 自動刪除 除非咱們手動刪除不然會一直留在紫框中,這些數值會拖慢Eclipse 開發工具,若是過多的話極可能會形成 Eclipse 崩潰(有多是Eclipse的BUG),讓開發變得很是痛苦,因此雨鬆MOMO在這裏建議你們在每次Debug調試的時候將紫框中以前 加的程序斷點 和 watch過的變量 全不手動清空,只添加這一次調試需要的斷點就能夠了,這樣的話 Eclipse 就不會被這些拖慢進程的東西所致使崩潰。

5.鏈接真機調試

第一步 打開本身的手機在設置中選擇應用程序 而後選擇開發 而後選中USB調試。
第二步 用USB線鏈接手機到電腦,通常狀況會自動安裝驅動,若是沒法安裝驅動的話 就去下載一個豌豆莢 或者91助手,讓它幫咱們手機自動安裝驅動 很方便的。
第三步 驅動安裝成功後會在Device中看到真機(紅框中) 綠框中爲android電腦模擬器

運行項目後彈出設備選擇窗口 第一個爲模擬器 第二個紅框內的爲我鏈接電腦的真機 MOTO的里程碑,選擇完後點擊OK 就能夠經過真機來調試程序了,簡單吧?是否是很給力呢呵呵。

6.Android 開發中Log信息的打印

本人作過J2ME 開發 Android開發 iPhone開發 發現J2ME 的模擬器 還有Iphone的模擬器都很是給力速度很很快(模擬器比真機快) 惟獨android的模擬器 是最不給力的 (真機比模擬器快) 實在是慢的不行 鏈接上真機能夠快一點 可是同樣仍是慢 尤爲是Debug的時候 簡直是太不給力了(發點牢騷你們別介意哦 > - <)因此有時候我在開發Android的時候不到萬不得已我不去Debug 我會使用Log去打印我需要的數據 下面我教你們如何在Andoid下打印Log信息。但願你們都學會使用log.

    
  1. public class testActivity extends Activity {
  2. /**
  3. * 返回一個隨機數
  4. * @param botton
  5. * @param top
  6. * @return
  7. */
  8. private int UtilRandom(int botton, int top) {
  9. return ((Math.abs(new Random().nextInt()) % (top - botton)) + botton);
  10. }
  11. @Override
  12. public void onCreate(Bundle savedInstanceState) {
  13. super.onCreate(savedInstanceState);
  14. int a = UtilRandom(0,5);
  15. int b = UtilRandom(0,5);
  16. int c = UtilRandom(0,5);
  17. int d = UtilRandom(0,5);
  18. int e = UtilRandom(0,5);
  19. Log.v("random", a +"");
  20. Log.v("random", b +"");
  21. Log.v("random", c +"");
  22. Log.v("random", d +"");
  23. Log.v("random", e +"");
  24. setContentView(R.layout.main);
  25. }
  26. }

經常使用的Log有5個:Log.v()Log.d()Log.i() Log.w() Log.e()
根據首字母對應
VERBOSEDEBUG,INFO, WARN,ERROR。
以上這些Log系統都會打印出來。

打開LogCat頁面發現系統打印了不少Log信息 咱們很差定位出剛纔本身打的Log,如圖所示點擊紅框內的「+」符號彈出下方窗口後在Filter Name : 和 by Log Tag: (藍框內)填寫咱們剛纔打的LOG tag "random"注意這兩項都必需填寫 而後單擊OK後 方可在綠框中看到咱們剛纔打的random的Log 。
怎麼樣仍是很簡單的吧 呵呵。 ide


最後附上Eclipse 在開發中使用到的快捷鍵很實用噢(轉載) 函數

Ctrl+1 快速修復(最經典的快捷鍵,就不用多說了) Ctrl+D: 刪除當前行 Ctrl+Alt+↓ 複製當前行到下一行(複製增長) Ctrl+Alt+↑ 複製當前行到上一行(複製增長) Alt+↓ 當前行和下面一行交互位置(特別實用,能夠省去先剪切,再粘貼了) Alt+↑ 當前行和上面一行交互位置(同上) Alt+← 前一個編輯的頁面 Alt+→ 下一個編輯的頁面(固然是針對上面那條來講了) Alt+Enter 顯示當前選擇資源(工程,or 文件 or文件)的屬性 Shift+Enter 在當前行的下一行插入空行(這時鼠標能夠在當前行的任一位置,不必定是最後) Shift+Ctrl+Enter 在當前行插入空行(原理同上條) Ctrl+Q 定位到最後編輯的地方 Ctrl+L 定位在某行 (對於程序超過100的人就有福音了) Ctrl+M 最大化當前的Edit或View (再按則反之) Ctrl+/ 註釋當前行,再按則取消註釋 Ctrl+O 快速顯示 OutLine Ctrl+T 快速顯示當前類的繼承結構 Ctrl+W 關閉當前Editer Ctrl+K 參照選中的Word快速定位到下一個 Ctrl+E 快速顯示當前Editer的下拉列表(若是當前頁面沒有顯示的用黑體表示) Ctrl+/(小鍵盤) 摺疊當前類中的全部代碼 Ctrl+×(小鍵盤) 展開當前類中的全部代碼 Ctrl+Space 代碼助手完成一些代碼的插入(但通常和輸入法有衝突,能夠修改輸入法的熱鍵,也能夠暫用Alt+/來代替) Ctrl+Shift+E 顯示管理當前打開的全部的View的管理器(能夠選擇關閉,激活等操做) Ctrl+J 正向增量查找(按下Ctrl+J後,你所輸入的每一個字母編輯器都提供快速匹配定位到某個單詞,若是沒有,則在stutes line中顯示沒有找到了,查一個單詞時,特別實用,這個功能Idea兩年前就有了) Ctrl+Shift+J 反向增量查找(和上條相同,只不過是從後往前查) Ctrl+Shift+F4 關閉全部打開的Editer Ctrl+Shift+X 把當前選中的文本所有變味小寫 Ctrl+Shift+Y 把當前選中的文本所有變爲小寫 Ctrl+Shift+F 格式化當前代碼 Ctrl+Shift+P 定位到對於的匹配符(譬如{}) (從前面定位後面時,光標要在匹配符裏面,後面到前面,則反之) 下面的快捷鍵是重構裏面經常使用的,本人就本身喜歡且經常使用的整理一下(注:通常重構的快捷鍵都是Alt+Shift開頭的了) Alt+Shift+R 重命名 (是我本身最愛用的一個了,尤爲是變量和類的Rename,比手工方法能節省不少勞動力) Alt+Shift+M 抽取方法 (這是重構裏面最經常使用的方法之一了,尤爲是對一大堆泥團代碼有用) Alt+Shift+C 修改函數結構(比較實用,有N個函數調用了這個方法,修改一次搞定) Alt+Shift+L 抽取本地變量( 能夠直接把一些魔法數字和字符串抽取成一個變量,尤爲是多處調用的時候) Alt+Shift+F 把Class中的local變量變爲field變量 (比較實用的功能) Alt+Shift+I 合併變量(可能這樣說有點不妥Inline) Alt+Shift+V 移動函數和變量(不怎麼經常使用) Alt+Shift+Z 重構的後悔藥(Undo) 編輯 做用域 功能 快捷鍵 全局 查找並替換 Ctrl+F 文本編輯器 查找上一個 Ctrl+Shift+K 文本編輯器 查找下一個 Ctrl+K 全局 撤銷 Ctrl+Z 全局 複製 Ctrl+C 全局 恢復上一個選擇 Alt+Shift+↓ 全局 剪切 Ctrl+X 全局 快速修正 Ctrl1+1 全局 內容輔助 Alt+/ 全局 所有選中 Ctrl+A 全局 刪除 Delete 全局 上下文信息 Alt+? Alt+Shift+? Ctrl+Shift+Space Java編輯器 顯示工具提示描述 F2 Java編輯器 選擇封裝元素 Alt+Shift+↑ Java編輯器 選擇上一個元素 Alt+Shift+← Java編輯器 選擇下一個元素 Alt+Shift+→ 文本編輯器 增量查找 Ctrl+J 文本編輯器 增量逆向查找 Ctrl+Shift+J 全局 粘貼 Ctrl+V 全局 重作 Ctrl+Y 查看 做用域 功能 快捷鍵 全局 放大 Ctrl+= 全局 縮小 Ctrl+- 窗口 做用域 功能 快捷鍵 全局 激活編輯器 F12 全局 切換編輯器 Ctrl+Shift+W 全局 上一個編輯器 Ctrl+Shift+F6 全局 上一個視圖 Ctrl+Shift+F7 全局 上一個透視圖 Ctrl+Shift+F8 全局 下一個編輯器 Ctrl+F6 全局 下一個視圖 Ctrl+F7 全局 下一個透視圖 Ctrl+F8 文本編輯器 顯示標尺上下文菜單 Ctrl+W 全局 顯示視圖菜單 Ctrl+F10 全局 顯示系統菜單 Alt+- 導航 做用域 功能 快捷鍵 Java編輯器 打開結構 Ctrl+F3 全局 打開類型 Ctrl+Shift+T 全局 打開類型層次結構 F4 全局 打開聲明 F3 全局 打開外部javadoc Shift+F2 全局 打開資源 Ctrl+Shift+R 全局 後退歷史記錄 Alt+← 全局 前進歷史記錄 Alt+→ 全局 上一個 Ctrl+, 全局 下一個 Ctrl+. Java編輯器 顯示大綱 Ctrl+O 全局 在層次結構中打開類型 Ctrl+Shift+H 全局 轉至匹配的括號 Ctrl+Shift+P 全局 轉至上一個編輯位置 Ctrl+Q Java編輯器 轉至上一個成員 Ctrl+Shift+↑ Java編輯器 轉至下一個成員 Ctrl+Shift+↓ 文本編輯器 轉至行 Ctrl+L 搜索 做用域 功能 快捷鍵 全局 出如今文件中 Ctrl+Shift+U 全局 打開搜索對話框 Ctrl+H 全局 工做區中的聲明 Ctrl+G 全局 工做區中的引用 Ctrl+Shift+G 文本編輯 做用域 功能 快捷鍵 文本編輯器 改寫切換 Insert 文本編輯器 上滾行 Ctrl+↑ 文本編輯器 下滾行 Ctrl+↓ 文件 做用域 功能 快捷鍵 全局 保存 Ctrl+X Ctrl+S 全局 打印 Ctrl+P 全局 關閉 Ctrl+F4 全局 所有保存 Ctrl+Shift+S 全局 所有關閉 Ctrl+Shift+F4 全局 屬性 Alt+Enter 全局 新建 Ctrl+N 項目 做用域 功能 快捷鍵 全局 所有構建 Ctrl+B 源代碼 做用域 功能 快捷鍵 Java編輯器 格式化 Ctrl+Shift+F Java編輯器 取消註釋 Ctrl+\ Java編輯器 註釋 Ctrl+/ Java編輯器 添加導入 Ctrl+Shift+M Java編輯器 組織導入 Ctrl+Shift+O Java編輯器 使用try/catch塊來包圍 未設置,太經常使用了,因此在這裏列出,建議本身設置。 也可使用Ctrl+1自動修正。 運行 做用域 功能 快捷鍵 全局 單步返回 F7 全局 單步跳過 F6 全局 單步跳入 F5 全局 單步跳入選擇 Ctrl+F5 全局 調試上次啓動 F11 全局 繼續 F8 全局 使用過濾器單步執行 Shift+F5 全局 添加/去除斷點 Ctrl+Shift+B 全局 顯示 Ctrl+D 全局 運行上次啓動 Ctrl+F11 全局 運行至行 Ctrl+R 全局 執行 Ctrl+U 重構 做用域 功能 快捷鍵 全局 撤銷重構 Alt+Shift+Z 全局 抽取方法 Alt+Shift+M 全局 抽取局部變量 Alt+Shift+L 全局 內聯 Alt+Shift+I 全局 移動 Alt+Shift+V 全局 重命名 Alt+Shift+R 全局 重作 Alt+Shift+Y
相關文章
相關標籤/搜索