標籤:
1.在程式中添加一個斷點
如果所示:在Eclipse中添加了一個程式斷點
在Eclipse中一共有三種添加斷點的方法
第一種: 在紅框地區右鍵出現菜單後點擊第一項 Toggle Breakpoint 將會在你右鍵代碼的哪一行添加一個程式斷點 (同樣的操作方可取消程式斷點)
第二種: 在紅框地區雙擊滑鼠左鍵將會在你雙擊代碼的哪一行添加一個程式斷點 (同樣的操作方可取消程式斷點)
第三種 :在游標停留的地方使用快速鍵 Ctrl + Shift + B 將會在游標停留的這一行添加一個程式斷點 (同樣的操作方可取消程式斷點)
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.
- public class testActivity extends Activity {
-
- /**
- * 返回一個隨機數
- * @param botton
- * @param top
- * @return
- */
- private int UtilRandom(int botton, int top) {
- return ((Math.abs(new Random().nextInt()) % (top - botton)) + botton);
- }
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
-
- int a = UtilRandom(0,5);
- int b = UtilRandom(0,5);
- int c = UtilRandom(0,5);
- int d = UtilRandom(0,5);
- int e = UtilRandom(0,5);
-
-
-
-
- Log.v("random", a +"");
- Log.v("random", b +"");
- Log.v("random", c +"");
- Log.v("random", d +"");
- Log.v("random", e +"");
-
- setContentView(R.layout.main);
- }
- }
常用的Log有5個:Log.v()Log.d()Log.i() Log.w() Log.e()。
根據首字母對應VERBOSE,DEBUG,INFO, WARN,ERROR。
以上這些Log系統都會列印出來。
開啟LogCat頁面發現系統列印了很多Log資訊 我們不好定位出剛才自己打的Log,點擊紅框內的“+”符號彈出下方視窗後在Filter Name : 和 by Log Tag: (藍框內)填寫我們剛才打的LOG tag "random"注意這兩項都必需填寫 然後單擊OK後 方可在綠框中看到我們剛才打的random的Log 。怎麼樣還是很簡單的吧 呵呵。
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 代碼助手完成一些代碼的插入(但一般和IME有衝突,可以修改IME的熱鍵,也可以暫用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
轉自:http://xys289187120.blog.51cto.com/3361352/657169/
Android 軟體開發之如何使用Eclipse Debug偵錯工具詳解及Eclipse常用快速鍵(轉)