寫在前面
本文翻譯自 Android Studio Tips by Philippe Breault,一共收集了62個 Android Studio 使用小技巧和快捷鍵。 根據這些小技巧的使用場景,本文將這62個小技巧分爲經常使用技巧(1 – 28)、編碼技巧(29 – 49)和調試技巧(50 – 62),分紅三個部分。html
每一個小技巧都配有 gif 動圖,因爲原圖在 google photo 上,加載較慢,本文所有轉存到七牛上了。java
因爲能力有限,翻譯過程當中不免有所疏漏,如發現錯誤或問題,請在評論中提出,謝謝。git
經常使用技巧
1. 書籤(Bookmarks)github
- 描述:這是一個頗有用的功能,讓你能夠在某處作個標記(書籤),方便後面再跳轉到此處。
- 調用:Menu → Navigate → Bookmarks
- 快捷鍵:
- 添加/移除書籤:F3(OS X) 、F11(Windows/Linux);
- 添加/移除書籤(帶標記):Alt + F3(OS X)、Ctrl + F11(Windows/Linux);
- 顯示所有書籤:Cmd + F3(OS X) 、Shift + F11(Windows/Linux),顯示全部的書籤列表,而且是能夠搜索的。
- 上一個/下一個書籤:無,能夠在設置中設置快捷鍵。
- 更多:當你爲某個書籤指定了標記,你可使用快捷鍵 Ctrl + 標記 來快速跳轉到標記處,好比輸入Ctrl + 1,跳到標記爲1的書籤處。
2. 摺疊/展開代碼塊(Collapse Expand Code Block)正則表達式
- 描述:該操做提供一種方法,讓你隱藏你不關心的部分代碼,以一種較爲簡潔的格式顯示關鍵代碼。一個有意思的用法是隱藏匿名內部類的代碼,讓其看起來像一個Lambda表達式。
- 快捷鍵:Cmd + 「+」/」-「(OS X)、Ctrl + Shift + 「+」/」-「(Windows/Linux);
- 更多:能夠在Settig → Editor → General → Code Folding 中設置摺疊規則。
3. 與分支比對(Compare With Branch (Git))編輯器
- 描述:假如你的項目是使用git來管理的,你能夠將當前文件或者文件夾與其餘的分支進行比對。比較有用的是可讓你瞭解到你與主分支有多少差異。
- 調用:Menu → VCS → Git → Compare With Branch
4. 與剪切板比對(Compare With Clipboard)ide
- 描述:將當前選中的部分與剪切板上的內容進行比對。
- 調用:右鍵選中的部分,在右鍵菜單中選擇「Compare With Clipboard」。
5. 上下文信息(Context Info)工具
- 描述:當前做用域定義超過滾動區域,執行該操做將顯示所在的上下文信息,一般它顯示的是類名或者內部類類名或者當前所在的方法名。該操做在xml文件中一樣適用。
- 調用:Menu → View → Context Info
- 快捷鍵:Alt + Q (Windows/Linux)
- 更多:我的認爲,這個功能更好的用法是快速查看當前類繼承的父類或者實現的接口。
6. 查找操做(Find Action)佈局
- 描述:輸入某個操做的名稱,快速查找,對於沒有快捷鍵的部分操做這是一個頗有用的技巧。
- 快捷鍵:Cmd +Shift + A(OS X)、Ctrl + Shift + A(Windows/Linux);
- 更多:當某個操做是有快捷鍵的,會顯示在旁邊。
7. 查找補全(Find Complection)測試
- 描述:當你在一個文件中進行查找時,使用自動補全快捷鍵能夠給出在當前文件中出現的建議單詞;
- 快捷鍵:Cmd + F(OS X),Ctrl + F(Windows/Linux),輸入一些字符,而後使用自動補全;
8. 隱藏全部面板(Hide All Panels)
- 描述:切換編輯器鋪滿整個程序界面,隱藏其餘的面板。再次執行該操做,將會回到隱藏前的狀態。
- 調用:Menu → Window → Active Tool Window → Hide All Windows;
- 快捷鍵:Cmd +Shift + F12(OS X)、Ctrl + Shift + F12(Windows/Linux);
9. 高亮一切(Hightlight All the Things)
- 描述:該操做將會高亮某個字符在當前文件中全部出現的地方。這不只僅是簡單的匹配,實際上它會分析當前的做用域,只高亮相關的部分。
- 調用:Menu → Edit → Find → Highlight Usages in File;
- 定位到上一處/下一處:Menu → Edit → Find → Find Next/Previous;
- 快捷鍵:相關快捷鍵請在菜單中查看;
- 更多:
- 若是高亮一個方法的
return
或throw
語句,將會高亮這個方法的全部出口/結束點;
- 若是高亮某個類定義處的
extend
或implements
語句,將會高亮繼承的或實現的方法;
- 高亮一個
import
語句也會高亮使用到的地方;
- 按下Esc能夠退出高亮模式;
10. 回到上一個工具窗口(Jump to Last Tool Window)
- 描述:有時候你會從某個工具窗口跳到編輯器裏面,而後又須要從新回到剛纔操做的那個工具窗,好比你查找使用狀況的時,使用該操做能夠在不使用鼠標的狀況下跳轉到以前的工具窗口。
- 快捷鍵:F12;
11. 上一個編輯位置(Last Edit Location)
- 描述:該操做將使得你導航到上一處你改動過的地方,這與點擊工具欄上的返回箭頭回到上一個定位位置是不同的,該操做將會返回到上一個編輯的位置。
- 快捷鍵: Cmd + Shift + Delete(OS X)、Ctrl + Shift + Backspace(Windows/Linux);
12. 在方法和內部類之間跳轉(Move Between Methods and Inner Classes)
- 描述:該操做讓光標在當前文件的方法或內部類的名字間跳轉。
- 調用:Navigate → Next Method/Previous Method;
- 快捷鍵:Ctrl + Up/Down(OS X)、Alt + Up/Down(Windows/Linux);
13. 定位到嵌套文件(Navigate to Nested File)
- 描述:有時你有一堆存放在不一樣目錄下的同名文件,例如不一樣模塊下的
AndroidManifest.xml
文件,當你想定位到其中的一個文件,你會獲得一堆搜索結果,你還得辨認哪一個纔是你須要的。經過在檢索框中輸入部分路徑的前綴,並添加斜槓號,你就能夠在第一次嘗試的時候就找到正確的那個。
- 快捷鍵:Shift + Cmd + O(OS X)、Shift + Ctrl + N(Windows/Linux);
14. 定位到父類(Navigate to parent)
- 描述:若是光標是在一個繼承父類重寫的方法裏,這個操做將定位到父類實現的地方。若是光標是在類名上,則定位到父類類名。
- Menu → Navigate → Super Class/Method
- 快捷鍵:Cmd + U(OS X)、Ctrl + U(Windows/Linux);
15. 根據編號打開面板(Open a Panel by Its Number)
- 描述:你可能已經注意到某些面板的名稱左邊有一個數字,這裏有個快捷操做能夠打開它們。若是你沒看到面板的名稱,請點擊IDE的左下角的切換按鈕。
- 快捷鍵:Cmd + 數字(OS X)、Alt + 數字(Windows/Linux);
16. 在外部打開文件(Open File Externally)
- 描述:經過這個快捷鍵,簡單地點擊Tab,就能夠打開當前文件所在的位置或者該文件的任意上層路徑。
- 快捷鍵:Cmd + 單擊Tab(OS X)、Ctrl + 點擊Tab(Windows/Linux);
17. 參數信息(Parameter Info)
- 描述:這個操做將顯示和你在方法聲明處寫同樣的參數列表,當你想看某個存在的方法的參數,這是一個頗有 用的操做。光標下的參數顯示爲黃色,若是沒有參數顯示黃色,意味着你的方法調用是無效的,極可能是某個參數分配不對。(例如一個浮點數賦值給了整型參 數)。若是你正在寫一個方法調用,忽然離開編輯的地方,再返回的時候,輸入一個逗號,就能夠從新觸發參數信息。
- 快捷鍵:Cmd + P(OS X)、Ctrl + U(Windows/Linux);
18. 快速查看定義(Quick Definition Lookup)
- 描述:你曾經是否想查看一個方法或者類的具體實現,可是不想離開當前界面? 該操做能夠幫你搞定。
- 快捷鍵:Alt + Space / Cmd + Y(OS X)、Ctrl + Shift + I(Windows/Linux)
19. 最近修改的文件(Recently Changed Files)
- 描述:該操做相似於「最近訪問(Recents)」彈窗,會顯示最近本地修改過的文件列表,根據修改時間排列。能夠輸入字符來過濾列表結果。
- 快捷鍵:Cmd + Shift + E(OS X)、Ctrl + Shift + E(Windows/Linux)
20. 最近訪問(Recents)
- 描述:該操做能夠獲得一個最近訪問文件的可搜索的列表。
- 快捷鍵:Cmd + E(OS X)、Ctrl + E(Windows/Linux)
21. 相關文件(Related File)
- 描述:該操做有助於在佈局文件和Activity/Fragment之間輕鬆跳轉。這也是一個快捷操做,在類名/佈局頂端的左側。
- 快捷鍵:Ctrl + Cmd + Up(OS X)、Ctrl + Alt + Home(Windows/Linux)
22. 返回到編輯器(Return to the Editor)
- 描述:一大堆快捷鍵操做會把你從編輯器帶走(type hierarchy, find usages, 等等)。若是你想返回到編輯器,你有兩個選項:
- Esc:該操做僅僅把光標移回編輯器。
- Shift + Esc:該操做會關閉當前面板,而後把光標移回到編輯器。
- 快捷鍵:
- 返回但保留打開的面板:Esc
- 關閉面板並返回:Shift + Esc
23. Select In
24. 擴大/縮小選擇(Extend/Shrink Selection)
- 描述:該操做會在上下文逐漸擴大/縮小當前選擇範圍。例如,它會先選中當前變量,再選中當前語句,而後選中整個方法,縮小選擇則相反。
- 快捷鍵:Alt + 上/下 (OS X)、Ctrl+W / Ctrl + Shift + W(Windows、Linux)
25. Sublime Text式的多處選擇(Sublime Text Multi Selection)
- 描述:這個功能超級贊!該操做會識別當前選中字符串,選擇下一個一樣的字符串,而且添加一個光標。這意味着你能夠在同一個文件裏擁有多個光標,你能夠同時在全部光標處輸入任何東西。
- 快捷鍵:Ctrl + G(OS X)、Alt + J(Windows、Linux)
26. 文件結構彈窗(The File Structure Popup)
27. 切換器(The Switcher)
28. 版本控制操做彈窗(VCS Operations Popup)
- 描述:該操做會給你顯示最經常使用的版本控制操做。若是你的項目沒有用git等版本控制軟件進行管理,它至少會給你提供一個由IDE維護的本地歷史記錄。
- 快捷鍵:Ctrl + V(OS X)、Alt + `(Windows/Linux)
編碼技巧
29. 列選擇/塊選擇(Column Selection)
- 描述:正常選擇時,當你向下選擇時,會直接將當前行到行尾都選中,而塊選擇模式下,則是根據鼠標選中的矩形區域來選擇。
- 調用:按住Alt,而後拖動鼠標選擇。
- 開啓/關閉塊選擇:Menu → Edit → Column Selection Mode
- 快捷鍵:切換塊選擇模式:Cmd + Shift + 8(OS X)、Shift + Alt + Insert(Windows/Linux);
30. 語句補全(Complete Statement)
- 描述:這個方法將會生成缺失的代碼來補全語句,經常使用的使用場景以下:
- 在行末添加一個分號,即便光標不在行末;
- 爲if、while、for 語句生成圓括號和大括號;
- 方法聲明後,添加大括號;
- 調用:Menu → Edit → Compelete Current Statement
- 快捷鍵:Cmd + Shift + Enter(OS X)、Ctrl + Shift + Enter(Windows/Linux);
- 更多:若是一個語句已經補全,當你執行該操做時,則會直接跳到下一行,即便光標不在當前行的行末。
31. 刪除行(Delete Line)
- 描述:若是沒選中,則刪除光標所在行,若是選中,則會刪除選中所在的全部行。
- 快捷鍵:Cmd + Delete(OS X)、Ctrl + Y(Windows/Linux)
32. 行復制(Duplicate Line)
- 描述:複製當前行,並粘貼到下一行,這個操做不會影響剪貼板的內容。這個命令配合移動行快捷鍵很是有用。
- 快捷鍵:Cmd + D(OS X)、Ctrl + D(Windows/Linux)
33. 編寫正則表達式(Edit Regex)
- 描述:使用Java編寫正則表達式是一件很困難的事,主要緣由是:
- 你必須得避開反斜槓;
- 說實話,正則很難;
- 看第二條。
IDE能幫咱們乾點啥呢?固然是一個舒服的界面來編寫和測試正則啦~ - 快捷鍵:Alt + Enter → check regexp
34. 使用Enter和Tab進行代碼補全的差異(Enter vs Tab for Code Completion)
- 描述:代碼補全時,可使用Enter或Tab來進行補全操做,可是二者是有差異的。
- 使用Enter時:從光標處插入補全的代碼,對原來的代碼不作任何操做。
- 使用Tab時:從光標處插入補全的代碼,並刪除後面的代碼,直到遇到點號、圓括號、分號或空格爲止。
35. 提取方法(Extract Method)
- 描述:提取一段代碼塊,生成一個新的方法。當你發現某個方法裏面過於複雜,須要將某一段代碼提取成單獨的方法時,該技巧是頗有用的。
- 調用:Menu → Refactor → Extract → Method
- 快捷鍵:Cmd + Alt + M(OS X)、Ctrl + Alt + M(Windows/Linux);
- 更多:在提取代碼的對話框,你能夠更改方法的修飾符和參數的變量名。
36. 提取參數(Extract Parameter)
- 描述:這是一個提取參數的快捷操做。當你以爲能夠經過提取參數來優化某個方法的時候,這個技巧將頗有用。該操做會將當前值做爲一個方法的參數,將舊的值放到方法調用的地方,做爲傳進來的參數。
- 調用:Menu → Refactor → Extract → Parameter
- 快捷鍵:Cmd + Alt + P(OS X)、Ctrl + Alt + P(Windows/Linux);
- 更多:經過勾選「delegate」,能夠保持舊的方法,重載生成一個新方法。
37. 提取變量(Extract Variable)
- 描述:這是一個提取變量的快捷操做。當你在沒有寫變量聲明的直接寫下值的時候,這是一個很方便生成變量聲明的操做,同時還會給出一個建議的變量命名。
- 調用:Menu → Refactor → Extract → Variable
- 快捷鍵:Cmd + Alt + V(OS X)、Ctrl + Alt + V(Windows/Linux);
- 更多:當你須要改變變量聲明的類型,例如使用 List 替代 ArrayList,能夠按下Shift + Tab,就會顯示全部可用的變量類型。
38. 內置(Inline)
- 描述:當你開始對提取操做有點興奮的時候,忽然以爲東西太多了,怎麼辦呢?這是一個和提取相反的操做。該操做對方法、字段、參數和變量均有效。
- 調用:Menu → Refactor → Inline
- 快捷鍵:Cmd + Alt + N(OS X)、Ctrl + Alt + N(Windows/Linux);
39. 合併行和文本(Join Lines and Literals)
- 描述:這個操做比起在行末使勁按刪除鍵爽多了!該操做遵照格式化規則,同時:
- 合併兩行註釋,同時移除多餘的
//
;
- 合併多行字符串,移除
+
和雙引號;
- 合併字段的聲明和初始化賦值;
- 快捷鍵:Ctrl + Shift + J;
40. 動態模板(Live Templates)
- 描述:動態模板是一種快速插入代碼片斷的方法,使用動態模板比較有意思的是你可使用合適的默認值將模板參數化,當你插入代碼片斷時,這能夠指導你完成參數。
- 更多:若是你知道模板的縮寫,就能夠沒必要使用快捷鍵,只須要鍵入縮寫並使用Tab鍵補全便可。
- 快捷鍵:Cmd + J(OS X)、Ctrl + J(Windows/Linux);
41. 上下移動行(Move Lines Up Down)
- 描述:不須要複製粘貼就能夠上下移動行了。
- 快捷鍵:Alt + Shift + Up/Down;
42. 移動方法(Move Methods)
- 描述:這個操做和移動行操做很相似,不過該操做是應用於整個方法的,在不須要複製、粘貼的狀況下,就能夠將整個方法塊移動到另外一個方法的前面或後面。該操做的實際叫作「移動語句」,這意味着你能夠移動任何類型的語句,你能夠方便地調整字段或內部類的順序。
- 快捷鍵:Cmd + Alt + Up/Down(OS X)、Ctrl + Shift + Up/Down(Windows/Linux);
43. 取反補全(Negation Completion)
- 描述:有時你自動補全一個布爾值,而後回到該值的前面添加一個感嘆號來完成取反操做,如今經過使用輸入
!
代替enter
完成補全操做,就能夠跳過這些繁瑣的操做了。
- 快捷鍵:代碼補全的時候,按下
!
便可(有時須要上下鍵選中候選項);
44. 後綴補全(Postfix Completion)
- 描述:你能夠認爲該操做是一種代碼補全,它會在點號以前生成代碼,而不是在點號以後。實際上你調用這個操做和正常的代碼補全操做同樣:在一個表達式以後輸入點號。
例如對一個列表進行遍歷,你能夠輸入myList.for
,而後按下Tab鍵,就會自動生成for
循環代碼。
45. 重構(Refactor This)
46. 重命名(Rename)
- 描述:你能夠經過該操做重命名變量、字段、方法、類、包。固然了,該操做會確保重命名對上下文有意義,不會無腦替換掉全部文件中的名字;
- 快捷鍵:Shift + F6
- 更多:若是你忘記了這個快捷鍵,你可使用快速修復(Quick Fix)的快捷鍵,它一般包含重命名選項。
47. 分號/點 補全(Semicolon Dot Completion)
- 描述:代碼補全這個功能太棒啦!咱們大概都對如下這種狀況很熟悉:開始輸入點什麼東西,接着從IDE得 到一些建議的選項,而後經過Enter或者Tab來選擇咱們想要的補全代碼。其實還有另一種方法來選擇補全的代碼:咱們能夠輸入一個點(.)或者一個分 號(;)。這樣就會完成補全,添加所選字符。這在結束一條語句補全或者快速鏈式調用方法的時候特別有用。
- 注意點:若是你要代碼補全的方法須要參數,這些參數會被略過。
- 快捷鍵:Autocomplete + 「.」 或者 「;」
48. 包裹代碼(Surround With)
49. 移除包裹代碼(Unwrap Remove)
調試技巧
50. 分析傳入數據流(Analyze data flow to here)
- 描述:這個操做將會根據當前選中的變量、參數或者字段,分析出其傳遞到此處的路徑。 當你進入某段陌生的代碼,試圖明白某個參數是怎麼傳遞到此處的時候,這是一個很是有用的操做。
- 調用:Menu → Analyze → Analyze Data Flow to Here
- 快捷鍵:無,能夠在設置中指定。
- 相反的操做:分析傳出數據流(Analyze data flow from here),這個將會分析當前選中的變量往下傳遞的路徑,直到結束。
51. 堆棧追蹤分析(Analyze Stacktrace)
- 描述: 這個操做讀取一份堆棧追蹤信息,而且使它像logcat中那樣能夠點擊。當你從bug報告中或者終端複製了一份堆棧追蹤,使用該操做能夠很方便地調試。
- 調用:Menu → Analyze → Analyze Stacktrace
- 快捷鍵:無,能夠在設置中指定。
- 更多:經過使用「ProGuard Unscramble Plugin」插件,也能夠分析混淆過的堆棧追蹤。
52. 關聯調試程序(Attach Debugger)
- 描述:隨時啓動調試程序,即便你沒有以調試模式啓動你的應用。這是一個很方便的操做,由於你沒必要爲了調試程序而以調試模式從新部署你的應用。當別人正在測試應用,忽然遇到一個bug而將設備交給你時,你也能夠很快地進入調試模式。
- 調用:點擊工具欄圖標或者Menu → Build → Attach to Android Process
- 快捷鍵:無,能夠在設置中指定,或者點擊工具欄對應的圖標。
53. 條件斷點(Conditional Breakpoints)
- 描述:簡單說,就是當設定的條件知足時,纔會觸發斷點。你能夠基於當前範圍輸入一個java布爾表達式,而且條件輸入框內是支持代碼補全的。
- 調用:右鍵須要填寫表達式的斷點,而後輸入布爾表達式。
54. 禁用斷點(Disable Breakpoints)
- 這個操做將使得斷點。當你有一個設置過複雜條件的斷點或者是日誌斷點,當前不須要,可是下次又不用從新建立,該操做是很方便的。
- 調用:按住Alt,而後單擊斷點便可。
55. 計算表達式(Evaluate Expression)
- 描述:這個操做能夠用來查看變量的內容而且計算幾乎任何有效的java表達式。須要注意的是,若是你修改了變量的狀態,這個狀態在你恢復代碼執行後依然會保留。
- 快捷鍵:處在斷點狀態時,光標放在變量處,按Alt + F8,便可顯示計算表達式對話框。
56. 審查變量(Inspect Variable)
- 描述:該操做能夠在不打開計算表達式對話框就能審查表達式的值。
- 快捷鍵:調試狀態下,按住Alt鍵,而後單擊表達式便可。
57. 日誌斷點(Logging Breakpoints)
- 描述:這是一種打印日誌而不是暫停的斷點,當你想打印一些日誌信息可是不想添加
log
代碼後從新部署項目,這是一個很是有用的操做。
- 調用:在斷點上右鍵,取消
Suspend
的勾選,而後勾選上Log evaluated Expression
,並在輸入框中輸入你要打印的日誌信息。
58. 標記對象(Mark Object)
- 描述:當你在調試的時候,這個操做可讓你給某個特殊的對象添加一個標籤,方便你後面很快地辨認。在調試時,當你從一堆類似的對象中查看某個對象是否和以前是同樣的,這就是一個很是有用的操做。
- 調用:右鍵你須要標記的對象,選中
Mark Object
,輸入標籤;
- 快捷鍵:選中對象時,按F3(OS X)、F11(Windows/Linux);
59. 顯示當前運行點(Show Execution Point)
- 描述:該操做會馬上把你的光標移回到當前debug處。
一般的狀況是: 1. 你在某處觸發了斷點 2. 而後在文件中隨意瀏覽 3. 直接調用這個快捷鍵,快速返回以前逐步調試的地方。
60. 終止進程(Stop Process)
- 描述:該操做會終止當前正在運行的任務。若是任務數量大於一,則顯示一個列表供你選擇。在終止調試或者停止編譯的時候特別有用!
- 快捷鍵:Cmd + F2(OS X)、Ctrl + F2(Windows、Linux);
61. 臨時斷點(Temporary Breakpoints)
62. 調用層級樹彈窗(The Call Hierarchy Popup)
轉載自:http://www.open-open.com/lib/view/open1458715872710.html