Android Studio 小技巧/快捷鍵

本文翻譯自 Android Studio Tips by Philippe Breault,一共收集了62個 Android Studio 使用小技巧和快捷鍵。 根據(jù)這些小技巧的使用場景,本文將這63個小技巧分為常用技巧(1 – 28)、編碼技巧(29 – 50)和調(diào)試技巧(51 – 63),分成三個部分。

每個小技巧都配有 gif 動圖若锁,由于原圖在 google photo 上,加載較慢斧吐,本文全部轉(zhuǎn)存到七牛上了又固。

由于能力有限,翻譯過程中難免有所疏漏煤率,如發(fā)現(xiàn)錯誤或問題仰冠,請在評論中提出,謝謝蝶糯。

常用技巧

1. 書簽(Bookmarks)

描述:這是一個很有用的功能洋只,讓你可以在某處做個標(biāo)記(書簽),方便后面再跳轉(zhuǎn)到此處昼捍。

調(diào)用:Menu → Navigate → Bookmarks

快捷鍵:

添加/移除書簽:F3(OS X) 识虚、F11(Windows/Linux);

添加/移除書簽(帶標(biāo)記):Alt + F3(OS X)、Ctrl + F11(Windows/Linux);

顯示全部書簽:Cmd + F3(OS X) 妒茬、Shift + F11(Windows/Linux)担锤,顯示所有的書簽列表,并且是可以搜索的乍钻。

上一個/下一個書簽:無肛循,可以在設(shè)置中設(shè)置快捷鍵铭腕。

更多:當(dāng)你為某個書簽指定了標(biāo)記,你可以使用快捷鍵 Ctrl + 標(biāo)記 來快速跳轉(zhuǎn)到標(biāo)記處多糠,比如輸入Cid Studio 小技巧/快捷鍵 id StAndroid Studio 小技巧/快捷鍵 小技巧/快捷鍵 ](http://upload-images.jianshu.io/upload_images/12411351-3985effe3fd53c74?imageMogr2/auto-orient/strip)

2. 折疊/展開代碼塊(Collapse Expand Code Block)

描述:該操作提供一種方法累舷,讓你隱藏你不關(guān)心的部分代碼,以一種較為簡潔的格式顯示關(guān)鍵代碼熬丧。一個有意思的用法是隱藏匿名內(nèi)部類的代碼笋粟,讓其看起來像一個Lambda表達(dá)式。

快捷鍵:Cmd + “+”/”-“(OS X)析蝴、Ctrl + Shift + “+”/”-“(Windows/Linux);

更多:可以在Settig → Editor → General → Code Folding 中設(shè)置折疊規(guī)則。

image

3. 與分支比對(Compare With Branch (Git))

描述:假如你的項目是使用git來管理的绿淋,你可以將當(dāng)前文件或者文件夾與其他的分支進(jìn)行比對闷畸。比較有用的是可以讓你了解到你與主分支有多少差別。

調(diào)用:Menu → VCS → Git → Compare With Branch

image

4. 與剪切板比對(Compare With Clipboard)

描述:將當(dāng)前選中的部分與剪切板上的內(nèi)容進(jìn)行比對吞滞。

調(diào)用:右鍵選中的部分佑菩,在右鍵菜單中選擇“Compare With Clipboard”。

image

5. 上下文信息(Context Info)

描述:當(dāng)前作用域定義超過滾動區(qū)域裁赠,執(zhí)行該操作將顯示所在的上下文信息殿漠,通常它顯示的是類名或者內(nèi)部類類名或者當(dāng)前所在的方法名。該操作在xml文件中同樣適用佩捞。

調(diào)用:Menu → View → Context Info

快捷鍵:Alt + Q (Windows/Linux)

更多:個人認(rèn)為绞幌,這個功能更好的用法是快速查看當(dāng)前類繼承的父類或者實(shí)現(xiàn)的接口。

image

6. 查找操作(Find Action)

描述:輸入某個操作的名稱一忱,快速查找莲蜘,對于沒有快捷鍵的部分操作這是一個很有用的技巧。

快捷鍵:Cmd +Shift + A(OS X)帘营、Ctrl + Shift + A(Windows/Linux)票渠;

更多:當(dāng)某個操作是有快捷鍵的,會顯示在旁邊芬迄。

image

7. 查找補(bǔ)全(Find Complection)

描述:當(dāng)你在一個文件中進(jìn)行查找時问顷,使用自動補(bǔ)全快捷鍵可以給出在當(dāng)前文件中出現(xiàn)的建議單詞;

快捷鍵:Cmd + F(OS X),Ctrl + F(Windows/Linux),輸入一些字符禀梳,然后使用自動補(bǔ)全杜窄;

image

8. 隱藏所有面板(Hide All Panels)

描述:切換編輯器鋪滿整個程序界面,隱藏其他的面板出皇。再次執(zhí)行該操作羞芍,將會回到隱藏前的狀態(tài)。

調(diào)用:Menu → Window → Active Tool Window → Hide All Windows郊艘;

快捷鍵:Cmd +Shift + F12(OS X)荷科、Ctrl + Shift + F12(Windows/Linux)唯咬;

image

9. 高亮一切(Hightlight All the Things)

描述:該操作將會高亮某個字符在當(dāng)前文件中所有出現(xiàn)的地方。這不僅僅是簡單的匹配畏浆,實(shí)際上它會分析當(dāng)前的作用域胆胰,只高亮相關(guān)的部分。

調(diào)用:Menu → Edit → Find → Highlight Usages in File刻获;

定位到上一處/下一處:Menu → Edit → Find → Find Next/Previous蜀涨;

快捷鍵:相關(guān)快捷鍵請在菜單中查看;

更多:

如果高亮一個方法的return或throw語句蝎毡,將會高亮這個方法的所有出口/結(jié)束點(diǎn)厚柳;

如果高亮某個類定義處的extend或implements語句,將會高亮繼承的或?qū)崿F(xiàn)的方法沐兵;

高亮一個import語句也會高亮使用到的地方别垮;

按下Esc可以退出高亮模式;

image

10. 回到上一個工具窗口(Jump to Last Tool Window)

描述:有時候你會從某個工具窗口跳到編輯器里面扎谎,然后又需要重新回到剛才操作的那個工具窗碳想,比如你查找使用情況的時,使用該操作可以在不使用鼠標(biāo)的情況下跳轉(zhuǎn)到之前的工具窗口毁靶。

快捷鍵:F12胧奔;

image

11. 上一個編輯位置(Last Edit Location)

描述:該操作將使得你導(dǎo)航到上一處你改動過的地方,這與點(diǎn)擊工具欄上的返回箭頭回到上一個定位位置是不一樣的预吆,該操作將會返回到上一個編輯的位置龙填。

快捷鍵: Cmd + Shift + Delete(OS X)、Ctrl + Shift + Backspace(Windows/Linux);

image

12. 在方法和內(nèi)部類之間跳轉(zhuǎn)(Move Between Methods and Inner Classes)

描述:該操作讓光標(biāo)在當(dāng)前文件的方法或內(nèi)部類的名字間跳轉(zhuǎn)啡浊。

調(diào)用:Navigate → Next Method/Previous Method;

快捷鍵:Ctrl + Up/Down(OS X)觅够、Alt + Up/Down(Windows/Linux);

image

13. 定位到嵌套文件(Navigate to Nested File)

描述:有時你有一堆存放在不同目錄下的同名文件,例如不同模塊下的AndroidManifest.xml文件巷嚣,當(dāng)你想定位到其中的一個文件喘先,你會得到一堆搜索結(jié)果,你還得辨認(rèn)哪個才是你需要的廷粒。通過在檢索框中輸入部分路徑的前綴窘拯,并添加斜杠號,你就可以在第一次嘗試的時候就找到正確的那個坝茎。

快捷鍵:Shift + Cmd + O(OS X)涤姊、Shift + Ctrl + N(Windows/Linux);

image

14. 定位到父類(Navigate to parent)

描述:如果光標(biāo)是在一個繼承父類重寫的方法里,這個操作將定位到父類實(shí)現(xiàn)的地方嗤放。如果光標(biāo)是在類名上思喊,則定位到父類類名。

Menu → Navigate → Super Class/Method

快捷鍵:Cmd + U(OS X)次酌、Ctrl + U(Windows/Linux);

image

15. 根據(jù)編號打開面板(Open a Panel by Its Number)

描述:你可能已經(jīng)注意到某些面板的名稱左邊有一個數(shù)字恨课,這里有個快捷操作可以打開它們舆乔。如果你沒看到面板的名稱,請點(diǎn)擊IDE的左下角的切換按鈕剂公。

快捷鍵:Cmd + 數(shù)字(OS X)希俩、Alt + 數(shù)字(Windows/Linux);

image

16. 在外部打開文件(Open File Externally)

描述:通過這個快捷鍵,簡單地點(diǎn)擊 Tab纲辽,就可以打開當(dāng)前文件所在的位置或者該文件的任意上層路徑颜武。

快捷鍵:Cmd + 單擊Tab(OS X)、Ctrl + 點(diǎn)擊Tab(Windows/Linux);

image

17. 參數(shù)信息(Parameter Info)

描述:這個操作將顯示和你在方法聲明處寫一樣的參數(shù)列表拖吼,當(dāng)你想看某個存在的方法的參數(shù)鳞上,這是一個很有用的操作。光標(biāo)下的參數(shù)顯示為黃色绿贞,如果沒有參數(shù)顯示黃色因块,意味著你的方法調(diào)用是無效的,很可能是某個參數(shù)分配不對籍铁。(例如一個浮點(diǎn)數(shù)賦值給了整型參數(shù))。如果你正在寫一個方法調(diào)用趾断,突然離開編輯的地方拒名,再返回的時候,輸入一個逗號芋酌,就可以重新觸發(fā)參數(shù)信息增显。

快捷鍵:Cmd + P(OS X)、Ctrl + P(Windows/Linux);

image

18. 快速查看定義(Quick Definition Lookup)

描述:你曾經(jīng)是否想查看一個方法或者類的具體實(shí)現(xiàn)脐帝,但是不想離開當(dāng)前界面同云? 該操作可以幫你搞定。

快捷鍵:Alt + Space / Cmd + Y(OS X)堵腹、Ctrl + Shift + I(Windows/Linux)

image

19. 最近修改的文件(Recently Changed Files)

描述:該操作類似于“最近訪問(Recents)”彈窗炸站,會顯示最近本地修改過的文件列表,根據(jù)修改時間排列疚顷『狄祝可以輸入字符來過濾列表結(jié)果。

快捷鍵:Cmd + Shift + E(OS X)腿堤、Ctrl + Shift + E(Windows/Linux)

image

20. 最近訪問(Recents)

描述:該操作可以得到一個最近訪問文件的可搜索的列表阀坏。

快捷鍵:Cmd + E(OS X)、Ctrl + E(Windows/Linux)

image

21. 相關(guān)文件(Related File)

描述:該操作有助于在布局文件和Activity/Fragment之間輕松跳轉(zhuǎn)笆檀。這也是一個快捷操作忌堂,在類名/布局頂端的左側(cè)。

快捷鍵:Ctrl + Cmd + Up(OS X)酗洒、Ctrl + Alt + Home(Windows/Linux)

image

22. 返回到編輯器(Return to the Editor)

描述:一大堆快捷鍵操作會把你從編輯器帶走(type hierarchy, find usages, 等等)士修。如果你想返回到編輯器枷遂,你有兩個選項:

Esc:該操作僅僅把光標(biāo)移回編輯器。

Shift + Esc:該操作會關(guān)閉當(dāng)前面板李命,然后把光標(biāo)移回到編輯器登淘。

快捷鍵:

返回但保留打開的面板:Esc

關(guān)閉面板并返回:Shift + Esc

image

23. Select In

描述:拿著當(dāng)前文件然后問你在哪里選中該文件。恕我直言封字,最有用的就是在項目結(jié)構(gòu)或者資源管理器中打開該文件黔州。每一個操作都有數(shù)字或者字母作為前綴,可以通過這個前綴來快速跳轉(zhuǎn)阔籽。通常流妻,我會 Alt + F1 然后 回車(Enter) 來打開項目視圖,然后 再用 Alt + F1 在OS X的Finder里找到文件笆制。你可以在文件中或者直接在項目視圖里使用該操作绅这。

快捷鍵:Alt + F1;

image

24. 擴(kuò)大/縮小選擇(Extend/Shrink Selection)

描述:該操作會在上下文逐漸擴(kuò)大/縮小當(dāng)前選擇范圍在辆。例如证薇,它會先選中當(dāng)前變量,再選中當(dāng)前語句匆篓,然后選中整個方法浑度,縮小選擇則相反。

快捷鍵:Alt + 上/下 (OS X)鸦概、Ctrl+W / Ctrl + Shift + W(Windows箩张、Linux)

image

25. Sublime Text式的多處選擇(Sublime Text Multi Selection)

描述:這個功能超級贊!該操作會識別當(dāng)前選中字符串窗市,選擇下一個同樣的字符串先慷,并且添加一個光標(biāo)。這意味著你可以在同一個文件里擁有多個光標(biāo)咨察,你可以同時在所有光標(biāo)處輸入任何東西论熙。

快捷鍵:Ctrl + G(OS X)、Alt + J(Windows扎拣、Linux)

image

26. 文件結(jié)構(gòu)彈窗(The File Structure Popup)

描述:該操作可以展示當(dāng)前類的大綱赴肚,并且可以快速跳轉(zhuǎn)。你還可以通過鍵盤輸入來過濾結(jié)果二蓝。這是一種很高效的方法來跳轉(zhuǎn)到指定方法誉券。

更多:

你在輸入字符的時候可以用駝峰風(fēng)格來過濾選項。比如輸入”oCr”會找到”onCreate”

你可以通過勾選多選框來決定是否顯示匿名類刊愚。這在某些情況下很有用踊跟,比如你想直接跳轉(zhuǎn)到一個OnClickListener的onClick方法。

快捷鍵:Cmd + F12(OS X)、Ctrl + F12(Windows/Linux)

調(diào)用:Menu → Navigate → File Structure

image

27. 切換器(The Switcher)

描述:該快捷鍵基本上就是IDE的alt+tab/cmd+tab命令商玫。你可以用它在導(dǎo)航tab或者面板切換箕憾。一旦打開這個窗口,只要一直按著ctrl鍵拳昌,你可以通過對應(yīng)的數(shù)字或者字母快捷鍵快速選擇袭异。你也可以通過backspace鍵來關(guān)閉一個已選中的tab或者面板。

快捷鍵:Ctrl + Tab

image

28. 版本控制操作彈窗(VCS Operations Popup)

描述:該操作會給你顯示最常用的版本控制操作炬藤。如果你的項目沒有用git等版本控制軟件進(jìn)行管理御铃,它至少會給你提供一個由IDE維護(hù)的本地歷史記錄。

快捷鍵:Ctrl + V(OS X)沈矿、Alt + `(Windows/Linux)

image

編碼技巧

29. 列選擇/塊選擇(Column Selection)

描述:正常選擇時上真,當(dāng)你向下選擇時,會直接將當(dāng)前行到行尾都選中羹膳,而塊選擇模式下睡互,則是根據(jù)鼠標(biāo)選中的矩形區(qū)域來選擇。

調(diào)用:按住Alt陵像,然后拖動鼠標(biāo)選擇就珠。

開啟/關(guān)閉塊選擇:Menu → Edit → Column Selection Mode

快捷鍵:切換塊選擇模式:Cmd + Shift + 8(OS X)、Shift + Alt + Insert(Windows/Linux);

image

30. 語句補(bǔ)全(Complete Statement)

描述:這個方法將會生成缺失的代碼來補(bǔ)全語句醒颖,常用的使用場景如下:

在行末添加一個分號嗓违,即使光標(biāo)不在行末;

為if图贸、while、for 語句生成圓括號和大括號冕广;

方法聲明后疏日,添加大括號;

調(diào)用:Menu → Edit → Compelete Current Statement

快捷鍵:Cmd + Shift + Enter(OS X)撒汉、Ctrl + Shift + Enter(Windows/Linux)沟优;

更多:如果一個語句已經(jīng)補(bǔ)全,當(dāng)你執(zhí)行該操作時睬辐,則會直接跳到下一行挠阁,即使光標(biāo)不在當(dāng)前行的行末。

image

31. 刪除行(Delete Line)

描述:如果沒選中溯饵,則刪除光標(biāo)所在行侵俗,如果選中,則會刪除選中所在的所有行丰刊。

快捷鍵:Cmd + Delete(OS X)隘谣、Ctrl + Y(Windows/Linux)

image

32. 行復(fù)制(Duplicate Line)

描述:復(fù)制當(dāng)前行,并粘貼到下一行啄巧,這個操作不會影響剪貼板的內(nèi)容寻歧。這個命令配合移動行快捷鍵非常有用掌栅。

快捷鍵:Cmd + D(OS X)、Ctrl + D(Windows/Linux)

image

33. 編寫正則表達(dá)式(Edit Regex)

描述:使用Java編寫正則表達(dá)式是一件很困難的事码泛,主要原因是:

你必須得避開反斜杠猾封;

說實(shí)話,正則很難噪珊;

看第二條晌缘。

IDE能幫我們干點(diǎn)啥呢?當(dāng)然是一個舒服的界面來編寫和測試正則啦~

快捷鍵:Alt + Enter → check regexp

image

34. 使用Enter和Tab進(jìn)行代碼補(bǔ)全的差別(Enter vs Tab for Code Completion)

描述:代碼補(bǔ)全時卿城,可以使用Enter或Tab來進(jìn)行補(bǔ)全操作枚钓,但是兩者是有差別的。

使用Enter時:從光標(biāo)處插入補(bǔ)全的代碼瑟押,對原來的代碼不做任何操作搀捷。

使用Tab時:從光標(biāo)處插入補(bǔ)全的代碼,并刪除后面的代碼多望,直到遇到點(diǎn)號嫩舟、圓括號、分號或空格為止怀偷。

image

35. 提取方法(Extract Method)

描述:提取一段代碼塊家厌,生成一個新的方法。當(dāng)你發(fā)現(xiàn)某個方法里面過于復(fù)雜椎工,需要將某一段代碼提取成單獨(dú)的方法時饭于,該技巧是很有用的。

調(diào)用:Menu → Refactor → Extract → Method

快捷鍵:Cmd + Alt + M(OS X)维蒙、Ctrl + Alt + M(Windows/Linux)掰吕;

更多:在提取代碼的對話框,你可以更改方法的修飾符和參數(shù)的變量名颅痊。

image

36. 提取參數(shù)(Extract Parameter)

描述:這是一個提取參數(shù)的快捷操作殖熟。當(dāng)你覺得可以通過提取參數(shù)來優(yōu)化某個方法的時候,這個技巧將很有用斑响。該操作會將當(dāng)前值作為一個方法的參數(shù)菱属,將舊的值放到方法調(diào)用的地方,作為傳進(jìn)來的參數(shù)舰罚。

調(diào)用:Menu → Refactor → Extract → Parameter

快捷鍵:Cmd + Alt + P(OS X)纽门、Ctrl + Alt + P(Windows/Linux);

更多:通過勾選“delegate”沸停,可以保持舊的方法膜毁,重載生成一個新方法。

image

37. 提取變量(Extract Variable)

描述:這是一個提取變量的快捷操作。當(dāng)你在沒有寫變量聲明的直接寫下值的時候瘟滨,這是一個很方便生成變量聲明的操作候醒,同時還會給出一個建議的變量命名。

調(diào)用:Menu → Refactor → Extract → Variable

快捷鍵:Cmd + Alt + V(OS X)杂瘸、Ctrl + Alt + V(Windows/Linux)倒淫;

更多:當(dāng)你需要改變變量聲明的類型,例如使用 List 替代 ArrayList败玉,可以按下Shift + Tab敌土,就會顯示所有可用的變量類型。

image

38. 內(nèi)置(Inline)

描述:當(dāng)你開始對提取操作有點(diǎn)興奮的時候运翼,突然覺得東西太多了返干,怎么辦呢键痛?這是一個和提取相反的操作蔼夜。該操作對方法、字段幌羞、參數(shù)和變量均有效悠夯。

調(diào)用:Menu → Refactor → Inline

快捷鍵:Cmd + Alt + N(OS X)癌淮、Ctrl + Alt + N(Windows/Linux);

image

39. 合并行和文本(Join Lines and Literals)

描述:這個操作比起在行末使勁按刪除鍵爽多了沦补!該操作遵守格式化規(guī)則乳蓄,同時:

合并兩行注釋,同時移除多余的//夕膀;

合并多行字符串产舞,移除+和雙引號擦囊;

合并字段的聲明和初始化賦值;

快捷鍵:Ctrl + Shift + J涧郊;

image

40. 動態(tài)模板(Live Templates)

描述:動態(tài)模板是一種快速插入代碼片段的方法幌陕,使用動態(tài)模板比較有意思的是你可以使用合適的默認(rèn)值將模板參數(shù)化,當(dāng)你插入代碼片段時心例,這可以指導(dǎo)你完成參數(shù)古戴。

更多:如果你知道模板的縮寫始锚,就可以不必使用快捷鍵姐呐,只需要鍵入縮寫并使用Tab鍵補(bǔ)全即可际度。

快捷鍵:Cmd + J(OS X)妹笆、Ctrl + J(Windows/Linux);

image

41. 上下移動行(Move Lines Up Down)

描述:不需要復(fù)制粘貼就可以上下移動行了块请。

快捷鍵:Alt + Shift + Up/Down;

image

42. 移動方法(Move Methods)

描述:這個操作和移動行操作很類似拳缠,不過該操作是應(yīng)用于整個方法的墩新,在不需要復(fù)制、粘貼的情況下窟坐,就可以將整個方法塊移動到另一個方法的前面或后面海渊。該操作的實(shí)際叫做“移動語句”,這意味著你可以移動任何類型的語句哲鸳,你可以方便地調(diào)整字段或內(nèi)部類的順序臣疑。

快捷鍵:Cmd + Alt + Up/Down(OS X)、Ctrl + Shift + Up/Down(Windows/Linux);

image

43. 取反補(bǔ)全(Negation Completion)

描述:有時你自動補(bǔ)全一個布爾值徙菠,然后回到該值的前面添加一個感嘆號來完成取反操作讯沈,現(xiàn)在通過使用輸入!代替enter完成補(bǔ)全操作,就可以跳過這些繁瑣的操作了婿奔。

快捷鍵:代碼補(bǔ)全的時候缺狠,按下!即可(有時需要上下鍵選中候選項);

image

44. 后綴補(bǔ)全(Postfix Completion)

描述:你可以認(rèn)為該操作是一種代碼補(bǔ)全萍摊,它會在點(diǎn)號之前生成代碼挤茄,而不是在點(diǎn)號之后。實(shí)際上你調(diào)用這個操作和正常的代碼補(bǔ)全操作一樣:在一個表達(dá)式之后輸入點(diǎn)號冰木。

例如對一個列表進(jìn)行遍歷穷劈,你可以輸入myList.for,然后按下Tab鍵踊沸,就會自動生成for循環(huán)代碼囚衔。

調(diào)用: 你可以在某個表達(dá)式后面輸入點(diǎn)號,出現(xiàn)一個候選列表雕沿,在常規(guī)的代碼補(bǔ)全提示就可以看到一系列后綴補(bǔ)全關(guān)鍵字,同樣的猴仑,你也可以在Editor → Postfix Completion中看到一系列后綴補(bǔ)全關(guān)鍵字审轮。

常用的有后綴補(bǔ)全關(guān)鍵字有:

.for (補(bǔ)全foreach語句)

.format (使用String.format()包裹一個字符串)

.cast (使用類型轉(zhuǎn)化包裹一個表達(dá)式)

image

45. 重構(gòu)(Refactor This)

描述:該操作可以顯示所有對當(dāng)前選中項可行的重構(gòu)方法肥哎。這個列表可以用數(shù)字序號快速選擇。

快捷鍵:Ctrl + T(OS X)疾渣、Ctrl + Alt + Shift + T(Windows/Linux)

image

46. 重命名(Rename)

描述:你可以通過該操作重命名變量篡诽、字段、方法榴捡、類杈女、包。當(dāng)然了吊圾,該操作會確保重命名對上下文有意義达椰,不會無腦替換掉所有文件中的名字;

快捷鍵:Shift + F6

更多:如果你忘記了這個快捷鍵项乒,你可以使用快速修復(fù)(Quick Fix)的快捷鍵啰劲,它通常包含重命名選項。

image

47. 分號/點(diǎn) 補(bǔ)全(Semicolon Dot Completion)

描述:代碼補(bǔ)全這個功能太棒啦檀何!我們大概都對以下這種情況很熟悉:開始輸入點(diǎn)什么東西蝇裤,接著從IDE得到一些建議的選項,然后通過Enter或者Tab來選擇我們想要的補(bǔ)全代碼频鉴。其實(shí)還有另外一種方法來選擇補(bǔ)全的代碼:我們可以輸入一個點(diǎn)(.)或者一個分號(;)栓辜。這樣就會完成補(bǔ)全,添加所選字符垛孔。這在結(jié)束一條語句補(bǔ)全或者快速鏈?zhǔn)秸{(diào)用方法的時候特別有用藕甩。

注意點(diǎn):如果你要代碼補(bǔ)全的方法需要參數(shù),這些參數(shù)會被略過似炎。

快捷鍵:Autocomplete + “.” 或者 “;”

image

48. 包裹代碼(Surround With)

描述: 該操作可以用特定代碼結(jié)構(gòu)包裹住選中的代碼塊辛萍,通常是if語句,循環(huán)羡藐,try/catch語句或者runnable語句贩毕。 如果你沒有選中任何東西,該操作會包裹當(dāng)前一整行仆嗦。

快捷鍵:Cmd + Alt + T(OS X)辉阶、Ctrl + Alt + T(Windows/Linux)

image

49. 移除包裹代碼(Unwrap Remove)

描述:該操作會移除周圍的代碼,它可能是一條if語句瘩扼,一個while循環(huán)谆甜,一個try/catch語句甚至是一個runnable語句。該操作恰恰和包裹代碼(Surround With)相反集绰。

快捷鍵:Cmd + Shift + Delete(OS X)规辱、Ctrl + Shift + Delete(Windows/Linux)

image

50. 手動喚出自動補(bǔ)全(Class Name Completion)

描述:一般使用 Android Studio 的時候,自動提示會在你想要提示的時候自動出現(xiàn)栽燕,比如輸入 Log.罕袋,就出現(xiàn) Log.d()改淑、Log.e、Log.i() 等提示浴讯。不過如果在自動提示的時候手一抖選錯的話朵夏,比如想選 Log.d() 結(jié)果選了 Log.e() ,你可能會把 .e() 都刪掉榆纽,然后再輸入一個 . 仰猖, 然后彈出自動補(bǔ)全提示。其實(shí)這時候只需要刪除 e() 然后手動喚出自動補(bǔ)全即可奈籽。

快捷鍵: Ctrl + Alt + Space (OS X/Windows/Linux) (可能存在快捷鍵沖突無法喚出饥侵,修改下快捷鍵即可)

image

調(diào)試技巧

51. 分析傳入數(shù)據(jù)流(Analyze data flow to here)

描述:這個操作將會根據(jù)當(dāng)前選中的變量、參數(shù)或者字段唠摹,分析出其傳遞到此處的路徑爆捞。 當(dāng)你進(jìn)入某段陌生的代碼,試圖明白某個參數(shù)是怎么傳遞到此處的時候勾拉,這是一個非常有用的操作煮甥。

調(diào)用:Menu → Analyze → Analyze Data Flow to Here

快捷鍵:無,可以在設(shè)置中指定藕赞。

相反的操作:分析傳出數(shù)據(jù)流(Analyze data flow from here)成肘,這個將會分析當(dāng)前選中的變量往下傳遞的路徑,直到結(jié)束斧蜕。

image

52. 堆棧追蹤分析(Analyze Stacktrace)

描述: 這個操作讀取一份堆棧追蹤信息双霍,并且使它像logcat中那樣可以點(diǎn)擊。當(dāng)你從bug報告中或者終端復(fù)制了一份堆棧追蹤批销,使用該操作可以很方便地調(diào)試洒闸。

調(diào)用:Menu → Analyze → Analyze Stacktrace

快捷鍵:無,可以在設(shè)置中指定均芽。

更多:通過使用“ProGuard Unscramble Plugin”插件丘逸,也可以分析混淆過的堆棧追蹤。

image

53. 關(guān)聯(lián)調(diào)試程序(Attach Debugger)

描述:隨時啟動調(diào)試程序掀宋,即使你沒有以調(diào)試模式啟動你的應(yīng)用深纲。這是一個很方便的操作,因為你不必為了調(diào)試程序而以調(diào)試模式重新部署你的應(yīng)用劲妙。當(dāng)別人正在測試應(yīng)用湃鹊,突然遇到一個bug而將設(shè)備交給你時,你也可以很快地進(jìn)入調(diào)試模式镣奋。

調(diào)用:點(diǎn)擊工具欄圖標(biāo)或者M(jìn)enu → Build → Attach to Android Process

快捷鍵:無币呵,可以在設(shè)置中指定,或者點(diǎn)擊工具欄對應(yīng)的圖標(biāo)侨颈。

image

54. 條件斷點(diǎn)(Conditional Breakpoints)

描述:簡單說余赢,就是當(dāng)設(shè)定的條件滿足時掸驱,才會觸發(fā)斷點(diǎn)。你可以基于當(dāng)前范圍輸入一個java布爾表達(dá)式没佑,并且條件輸入框內(nèi)是支持代碼補(bǔ)全的。

調(diào)用:右鍵需要填寫表達(dá)式的斷點(diǎn)温赔,然后輸入布爾表達(dá)式蛤奢。

image

55. 禁用斷點(diǎn)(Disable Breakpoints)

這個操作將使得斷點(diǎn)。當(dāng)你有一個設(shè)置過復(fù)雜條件的斷點(diǎn)或者是日志斷點(diǎn)陶贼,當(dāng)前不需要啤贩,但是下次又不用重新創(chuàng)建,該操作是很方便的拜秧。

調(diào)用:按住Alt痹屹,然后單擊斷點(diǎn)即可。

image

56. 計算表達(dá)式(Evaluate Expression)

描述:這個操作可以用來查看變量的內(nèi)容并且計算幾乎任何有效的java表達(dá)式枉氮。需要注意的是志衍,如果你修改了變量的狀態(tài),這個狀態(tài)在你恢復(fù)代碼執(zhí)行后依然會保留聊替。

快捷鍵:處在斷點(diǎn)狀態(tài)時楼肪,光標(biāo)放在變量處,按Alt + F8惹悄,即可顯示計算表達(dá)式對話框春叫。

image

57. 審查變量(Inspect Variable)

描述:該操作可以在不打開計算表達(dá)式對話框就能審查表達(dá)式的值。

快捷鍵:調(diào)試狀態(tài)下泣港,按住Alt鍵暂殖,然后單擊表達(dá)式即可。

image

58. 日志斷點(diǎn)(Logging Breakpoints)

描述:這是一種打印日志而不是暫停的斷點(diǎn)当纱,當(dāng)你想打印一些日志信息但是不想添加log代碼后重新部署項目呛每,這是一個非常有用的操作。

調(diào)用:在斷點(diǎn)上右鍵惫东,取消Suspend的勾選莉给,然后勾選上Log evaluated Expression,并在輸入框中輸入你要打印的日志信息廉沮。

image

59. 標(biāo)記對象(Mark Object)

描述:當(dāng)你在調(diào)試的時候颓遏,這個操作可以讓你給某個特殊的對象添加一個標(biāo)簽,方便你后面很快地辨認(rèn)滞时。在調(diào)試時叁幢,當(dāng)你從一堆相似的對象中查看某個對象是否和之前是一樣的,這就是一個非常有用的操作坪稽。

調(diào)用:右鍵你需要標(biāo)記的對象曼玩,選中Mark Object鳞骤,輸入標(biāo)簽;

快捷鍵:選中對象時黍判,按F3(OS X)豫尽、F11(Windows/Linux);

image

60. 顯示當(dāng)前運(yùn)行點(diǎn)(Show Execution Point)

描述:該操作會立刻把你的光標(biāo)移回到當(dāng)前debug處顷帖。

通常的情況是:

你在某處觸發(fā)了斷點(diǎn)

然后在文件中隨意瀏覽

直接調(diào)用這個快捷鍵美旧,快速返回之前逐步調(diào)試的地方。

快捷鍵:(Debug時) Alt + F10贬墩;

image

61. 終止進(jìn)程(Stop Process)

描述:該操作會終止當(dāng)前正在運(yùn)行的任務(wù)榴嗅。如果任務(wù)數(shù)量大于一,則顯示一個列表供你選擇陶舞。在終止調(diào)試或者中止編譯的時候特別有用嗽测!

快捷鍵:Cmd + F2(OS X)、Ctrl + F2(Windows肿孵、Linux)唠粥;

image

62. 臨時斷點(diǎn)(Temporary Breakpoints)

描述:通過該操作可以添加一個斷點(diǎn),這個斷點(diǎn)會在第一次被命中的時候自動移除颁井。

快捷鍵:Alt + 鼠標(biāo)左鍵 點(diǎn)擊代碼左側(cè)(鼠標(biāo))厅贪、Cmd + Alt + Shift + F8(OS X)、Ctrl + Alt + Shift + F8(Windows/Linux)

image

63. 調(diào)用層級樹彈窗(The Call Hierarchy Popup)

描述:該操作會給你展示 在一個方法的聲明和調(diào)用之間所有可能的路徑雅宾。

快捷鍵:Ctrl + Alt + H

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末养涮,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子眉抬,更是在濱河造成了極大的恐慌贯吓,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蜀变,死亡現(xiàn)場離奇詭異悄谐,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)库北,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門爬舰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人寒瓦,你說我怎么就攤上這事情屹。” “怎么了杂腰?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵垃你,是天一觀的道長。 經(jīng)常有香客問我,道長惜颇,這世上最難降的妖魔是什么皆刺? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮凌摄,結(jié)果婚禮上羡蛾,老公的妹妹穿的比我還像新娘。我一直安慰自己锨亏,他們只是感情好林说,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著屯伞,像睡著了一般。 火紅的嫁衣襯著肌膚如雪豪直。 梳的紋絲不亂的頭發(fā)上劣摇,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天,我揣著相機(jī)與錄音弓乙,去河邊找鬼末融。 笑死,一個胖子當(dāng)著我的面吹牛暇韧,可吹牛的內(nèi)容都是我干的勾习。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼懈玻,長吁一口氣:“原來是場噩夢啊……” “哼巧婶!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起涂乌,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤艺栈,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后湾盒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體湿右,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年罚勾,在試婚紗的時候發(fā)現(xiàn)自己被綠了毅人。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡尖殃,死狀恐怖丈莺,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情分衫,我是刑警寧澤场刑,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響牵现,放射性物質(zhì)發(fā)生泄漏铐懊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一瞎疼、第九天 我趴在偏房一處隱蔽的房頂上張望科乎。 院中可真熱鬧,春花似錦贼急、人聲如沸茅茂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽空闲。三九已至,卻和暖如春走敌,著一層夾襖步出監(jiān)牢的瞬間碴倾,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工掉丽, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留跌榔,地道東北人。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓捶障,卻偏偏與公主長得像僧须,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子项炼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容