核桃干貨 | JAVA的四大引用

下面是每個(gè) Android Studio 開發(fā)者都應(yīng)該知道的最基本的開發(fā)技巧到更多高級的技能:
關(guān)于鍵位映射
Android Studio 提供了不同的鍵位映射(即快捷鍵和它對應(yīng)的操作之間的映射),你可以在“Settings->Keymap”菜單里面查看當(dāng)前所使用的鍵位映射。
列出每個(gè)鍵位映射是不實(shí)用的,因此將會使用下面的:
Windows:默認(rèn)
Linux:默認(rèn)
OSX:Mac OSX 10.5+(不是默認(rèn)的一個(gè),強(qiáng)烈建議使用Jetbrains)
來回跳轉(zhuǎn)
我們花費(fèi)了大量的時(shí)間在代碼跳轉(zhuǎn)上,讓我們嘗試提高它的效率。
打開一個(gè)class
OS X: cmd+o
Windows Or Linux: ctrl+n
假如你必須跳到一個(gè)名為“MainActivity”的類,只需要使用這個(gè)快捷鍵并輸入“MainA”即可。
打開一個(gè)file
OS X: cmd+shift+o
Windows Or Linux: ctrl+shift+n
和上面的快捷鍵類似,但它是作用于工程中的所有文件。對于打開AndroidManifest.xml或在res/和assets/文件夾內(nèi)的文件它是非常有用的。
打開一個(gè)symbol
OS X: cmd+alt+o
Windows Or Linux: ctrl+alt+shift+n
一個(gè)很強(qiáng)大但比之前的技巧有一點(diǎn)不同:你可以通過搜索方法或變量名稱直接跳轉(zhuǎn)。
例如,你知道工程中的某個(gè)地方有個(gè)名為getFormattedDate()的方法,你可以使用這個(gè)快捷鍵直接找到它。
技巧
部分匹配
你可以輸入部分字符,它也能夠進(jìn)行匹配。例如,你要查找一個(gè)名為“ItemDetailFragment”個(gè)的類,你可以只輸入“IDF”就可以找到它。
行號
假如你的同事只告訴你某個(gè)代碼在ExcitingClass 類的22行,你可以使用打開一個(gè)class的快捷鍵輸入類名在后面追加一個(gè)“:”(冒號),然后在后面輸入行號,如:
ExcitingClass:22
你也可以混合使用部分匹配,就像這樣:
EC:22
最近打開的文件
OS X: cmd+e
Windows Or Linux: ctrl+e
這個(gè)彈出一個(gè)最近打開文件的列表
最近編輯的文件
OS X: cmd+shift+e
Windows Or Linux: ctrl+shift+e
和上面功能類似,但列出的僅僅是被修改過的。
技巧
關(guān)于鍵位映射
Android Studio 提供了不同的鍵位映射(即快捷鍵和它對應(yīng)的操作之間的映射),你可以在“Settings->Keymap”菜單里面查看當(dāng)前所使用的鍵位映射。
列出每個(gè)鍵位映射是不實(shí)用的,因此將會使用下面的:
Windows:默認(rèn)
Linux:默認(rèn)
OSX:Mac OSX 10.5+
高亮所有Things
OS X: cmd+shift+f7
Windows Or Linux: ctrl+shift+f7
這將會在當(dāng)前文件高亮顯示當(dāng)前文件中選中的所有相同symbol。這個(gè)比一些簡單的模式匹配(譯者注:如ctrl+f只能查找單個(gè)smybol,而這個(gè)可以高亮顯示多個(gè)條件)顯示的更多,它實(shí)際是在當(dāng)前文件范圍高亮顯示相關(guān)的代碼。
你可以從菜單Edit->Find->Find Next/Previous查找下一個(gè)或前一個(gè)。
額外的技巧:
高亮顯示一個(gè)方法聲明的“return”或“throw”同時(shí)也會高亮顯示方法的所有出口點(diǎn)。高亮顯示類定義的“extends”或“implements”部分將也會高亮顯示被重寫或?qū)崿F(xiàn)的方法。
輸入字符可以進(jìn)行列表過濾。
前進(jìn)或后退
OS X: cmd+alt+left/right
Windows Or Linux: ctrl+alt+left/right
為了更好地理解這個(gè)快捷鍵,應(yīng)該想想WEB瀏覽器上前進(jìn)和后退是怎樣工作的?,F(xiàn)在不是在web頁面上,而是源代碼中!因此當(dāng)你跳入一個(gè)代碼或打開一個(gè)新的文件,IDE將會記住你之前的位置,并且可以快速返回。
最后編輯的位置
OS X: cmd+shift+backspace
Windows Or Linux: ctrl+shift+backspace
這個(gè)和上面的快捷鍵有所不同,它是在上次修改代碼位置之間進(jìn)行跳轉(zhuǎn)。
想像你正在修改一個(gè)讓人討厭的bug。你覺得你可以解決它并且開始修復(fù)它,但當(dāng)你意識到在你的工程中你不得不去看android源代碼和其它類的時(shí)候,你進(jìn)入其它類的一個(gè)功能,然后又跳到其它文件中20步以后,你終于完成了你的修復(fù),但你剛才正在編輯的是哪一行?只要使用這個(gè)快捷鍵你就可以正確地返回。
顯示使用的地方
在一個(gè)固定的面板上
OS X: alt+F7
Windows Or Linux: alt+F7
顯示被用到的地方。
對于一個(gè)類成員變量,它將會顯示用到的地方(讀和寫)。對一個(gè)方法,它將會顯示被調(diào)用的地方。對于一個(gè)類,它將會顯示實(shí)例化被創(chuàng)建的地方。
你可以使用箭頭鍵和返回鍵在顯示結(jié)果中查看。然后可以使用“Esc”返回到編輯窗口。
顯示使用的地方
OS X: cmd+alt+F7
Windows Or Linux: ctrl+alt+F7
和上面作用一樣,顯示在彈出框中。
跳到聲明或?qū)崿F(xiàn)的地方
這有三個(gè)進(jìn)入到一個(gè)symbol的快捷鍵:
跳到聲明
OS X: cmd+b
Windows Or Linux: ctrl+b
OS X: cmd+click
Windows Or Linux: ctrl+click
跳到類、方法或變量聲明的地方。跳到類和方法的實(shí)現(xiàn)上是很有用的
跳到實(shí)現(xiàn)
OS X: cmd+alt+b
Windows Or Linux: ctrl+alt+b
列出所有classes/interfaces實(shí)現(xiàn)選擇的class/interface。也可以用在方法上查找implemented/overriden。在變量上會跳到聲明的地方。
跳到類型聲明
OS X: cmd+shift+b
Windows Or Linux: ctrl+shift+b
當(dāng)光標(biāo)在一個(gè)變量上,它會跳到變量類型的聲明處。例如,下面一行代碼:
Developer phil = new Developer(“Phil”);
如果光標(biāo)在“phil”變量上,按下快捷鍵會跳到“Developer”類的聲明處。
跳到父類
OS X: cmd+u
Windows Or Linux: ctrl+u
這將會打開父類的當(dāng)前的symbol。和跳到實(shí)現(xiàn)的功能正好相反。如果光標(biāo)在一個(gè)被重寫的方法上,它將會打開父類的實(shí)現(xiàn)。如果光標(biāo)在一個(gè)類內(nèi)方法外或類名上,它將會打開父類。
高亮顯示一個(gè)導(dǎo)入的類同時(shí)也會顯示在哪里使用了。
你可以使用“Esc”鍵取消高亮。

在方法和內(nèi)部之間移動
OS X: ctrl+up/down
Windows Or Linux: alt+up/down
光標(biāo)在當(dāng)前文件中的方法或類名稱之間移動。
如果你的光標(biāo)在方法體內(nèi),向上可以直接移動光標(biāo)到方法名上。這個(gè)是非常有用的,因?yàn)樗茉谀阒貥?gòu)方法時(shí)或查找這個(gè)方法的用法時(shí)讓光標(biāo)跳到正確的地方。

彈出文件結(jié)構(gòu)
OS X: cmd+f12
Windows Or Linux: ctrl+f12
這個(gè)顯示一個(gè)當(dāng)前類的大綱,可以在類中進(jìn)行導(dǎo)航。最好的是你可以使用鍵盤進(jìn)行過濾。這是一個(gè)非常高效的方式通過你知道的名稱跳到方法上。

額外的技巧:
你可以使用駝峰式從列表中過濾。例如:輸入“oCr”將會找到“onCreate”
你也可以勾選打開“顯示匿名內(nèi)部類”。在你想直接進(jìn)入“OnClickListener”中的“onClick”方法時(shí)它有可能是有用的。
彈出調(diào)用層級
OS X: ctrl+alt+h
Windows Or Linux: ctrl+alt+h
這個(gè)會顯示一個(gè)方法的聲明和它的調(diào)用之間的可能的路徑。

快速查找定義
OS X: alt+space
Windows Or Linux: ctrl+shift+i
你是否曾經(jīng)想在當(dāng)前頁面查看一個(gè)方法或類的實(shí)現(xiàn)?使用這個(gè)快捷鍵在當(dāng)前頁面查找它。

伸縮代碼塊
OS X: alt+plus/minus
Windows Or Linux: ctrl+shif+plus/minus
這個(gè)特性的目的是隱藏在某一時(shí)刻你不關(guān)心的代碼。在這個(gè)簡單的形式中,它將會隱藏整個(gè)代碼塊(如:當(dāng)你打開一個(gè)新文件時(shí)忽略導(dǎo)入列表)。更有趣的是它可以隱藏匿名內(nèi)部類周圍的模板代碼讓它看起來像是一個(gè)lambda表達(dá)式。
額外的技巧:
你可以在Setting->Editor->Code Folding中設(shè)置默認(rèn)的折疊參數(shù)

書簽
開關(guān)書簽
OS X: f3
Windows Or Linux: f11
用助記符開關(guān)書簽
OS X: alt+f3
Windows Or Linux: ctrl+f11
如你給書簽分配了一個(gè)數(shù)字,你可以使用下面的快捷鍵返回到對應(yīng)書簽:
ctrl+number
顯示書簽
OS X: cmd+f3
Windows Or Linux: shift+f11

查找Actions
OS X: cmd+shift+a
Windows Or Linux: ctrl+shift+a
你可以通過名稱在Android Studio中調(diào)用任何你知道的菜單或action!對于你之前使用過但沒有快捷鍵的命令來說這是非常有用的。
額外的技巧:
如果這個(gè)Action有快捷鍵,它將會顯示在旁邊。

上下移動當(dāng)前行
OS X: alt+shift+up/down
Windows Or Linux: alt+shift+up/down
對,這個(gè)是用來上下移動當(dāng)前行代碼。沒有什么更多要說的,享受它吧。

刪除當(dāng)前行
OS X: cmd+backspace
Windows Or Linux: ctrl+y
刪除當(dāng)前行或所選擇行的代碼。

