用 Android Studio 快捷鍵和活動模板提高開發效率

風-晴-雪發表於2015-08-09

本文介紹瞭如何使用Android Studio快捷鍵和活動模板(Live Template)改進開發效率。

作為開發者,我們生活在一個快節奏的環境,必須一直尋求辦法,把軟體建造得比之前更好更快。擁抱並且從裡到外地掌握這些更好的工具,是這樣一個把軟體開發得更好更快的機會。不管我們喜不喜歡這樣,這樣能幫我們更接近傳說的“10倍”效率。(《“10倍效率”程式設計師/開發人員的習慣》)

我來專門談談怎麼利用 Android Studio 鍵盤快捷鍵、重構選項和活動模板的力量,來盡你想象地快速導航和重構你的程式碼。當你能有效地運用這些快捷鍵時,重構、重新命名和改進程式碼的快捷鍵接近於零衝突。當熱鍵沒有衝突時,你會開始注意到這些過程會自動連續地發生。而當熱鍵有衝突時,你會看到有些你想重構的程式碼,並且會想:“這會打斷我的工作流。一會兒我回頭再處理它。”有多少次你真正地回過頭來處理它了呢?所以,讓我們減少熱鍵之間的衝突,使得我們的程式碼庫有機會得到重構。

Jetbrains 的 IDE(包括Resharper)可以說是最好用的IDE。如果你沒有充分體驗過,很容易忽略這些IDE的能力。(說的就是你們了,XCode 的使用者們。)快捷鍵和工具太多了,我不會都一一介紹,但我會著重介紹一些我最常用的和在我日常工作中最有價值的快捷鍵和工具。

注:我在此討論的所有快捷鍵都是 Android Studio for Mac OS X 的預設快捷鍵。我也推薦禁用覆蓋 F* 鍵的 Mac 快捷鍵,這能使得很多以下的快捷鍵更容易操作。

簡易快捷鍵

我們的目標是提高速度和準確性。提速的第一步是停止使用滑鼠。第一組快捷鍵是基於你很有可能經常做的簡易操作設定的,如果你用滑鼠做了這些操作,你就多花了10倍的時間。

  • 編譯java原始碼:SHF+CMD+F9
  • 建立工程:CMD+F9
  • 執行當前配置:CTR+R
  • 在偵錯程式裡執行:CTR+D
  • 開啟工程屬性:CMD+;
  • 開啟Android Studio引數:CMD+,
  • 查詢任意命令:SHF+CMD+A
  • 自動格式程式碼:OPT+CMD+L
  • 刪除行:CMD+DELETE
  • 複製行/選中區域:CMD+D
  • 複製行:CMD+C (未選中任意區域時)
  • 選擇下一個:CTR+G

 

基於範圍的選擇區域

另一個重要的避免接觸滑鼠和加速你的工作流程的方法,是改進對文字的選擇。當你選擇文字的大部分時候,你是在試圖將它選擇為一個有效的單元。當很多程式碼是巢狀的時候,嘗試找出合適的插入語並選擇這些程式碼是很難的一件事。快捷鍵把這件事變得簡單快捷了。

  • 選擇下一個更高的範圍:OPT+UP
  • 選擇下一個更低的範圍:OPT+DOWN

簡單的重構

我們的下一個目標是在我們想要做簡單重構的地方識別出一些現存的程式碼,而且要做得又快又準確,不會讓心跳漏拍。在我們想要改變的範圍內,你只需敲一下鍵盤,就能做到下列這些事:

  • 重新命名:SHF+F6
  • 提取域:OPT+CMD+F
  • 提取變數:OPT+CMD+V
  • 提取引數:OPT+CMD+P
  • 提取常量:OPT+CMD+C
  • 提取方法:OPT+CMD+M

 

為程式碼作導航

我們把大量的時間花在了在修改之前理解現有的程式碼上。如果我們能在程式碼的不同區域之間無衝突地切換,那麼我們就能保持上下文的完整性,同時保證速度。

  • 開啟類:CMD+O
  • 開啟檔案:SHF+CMD+O
  • 找到標記:OPT+CMD+O
  • 檢視標記完成:CMD+B
  • 檢視完成(如果是介面或者抽象):OPT+CMD+B
  • 找出符號所有的引用處:OPT+F7
  • 導航回上個位置:CMD+[
  • 導航到前個位置:CMD+]
  • 切換到最近用過的檔案:CRT+TAB

 

程式碼生成

不幸地是,我們耗費大量的時間,一遍又一遍地寫著同樣型別的程式碼。我們試著保持DRY原則,但是到最後,大多數情境下,重複的程式碼是不可避免的。為了應對這些情況,Android Studio 提供了一些不同的方法作為幫助。

意圖操作(又稱讀心操作)

如果程式碼還不是完成品,當你認識到 OPT+RETURN 的威力時,它將成為你最好的朋友。它基本上能讀取你的想法,並對你想要對游標位置所在地的上下文做的改動給出建議,尤其是對那些標註為紅色的、有下劃線的或者高亮的文字。

If/Switch actions: OPT+RETURN

還有,如果你習慣在定義某些函式或變數之類的東西前就引用它們,Android Studio只需敲一下鍵盤,就可以擁有足夠的資訊來建立它們的存根。這對你能想到的任何物件都適用,比如類、公開方法、私有方法、域、變數、引數等等。在生成程式碼時,它將和型別智慧匹配。

建立方法:(眾多例子中的一例)

和上下文相關的操作太多了,我甚至都不知道從哪個說起。我建議,在你的意圖可以被推斷的大量地方放上你的游標,然後按下 OPT+RETURN,看看你能做些什麼。

自動完成的覆蓋方法

無論啥時候,當你在一個擁有可以被覆蓋的方法的子類裡,你只需要鍵入該方法名,把它從智慧彈出選單裡選中,為它自動生成一個方法存根即可。

活動模板

迴圈

  • 單次迴圈:“[變數名].for”+TAB
  • 第 i 次迴圈:“[變數名].fori”+TAB
  • 第 r 次迴圈(可保留的):“[變數名].forr”+TAB

 

日誌

  • 生成除錯日誌:“logd”+TAB
  • 生成錯誤日誌:“loge”+TAB
  • 生成資訊日誌:“logi”+TAB
  • 生成TAG宣告:“logt”+TAB
  • 生成引數日誌:“logm”+TAB
  • 生成方法迴歸日誌:“logr”+TAB

 

等等等等……

  • 建立帶引數的newInstance() 方法:“newInstance”+TAB
  • 建立Toast宣告;“Toast”+TAB
  • 增加布局高度=“包內容”到xml控制元件:“lhw”+TAB

 

我可以一直列舉下去,幾天幾夜都行。我會鼓勵你開啟Android Studio的引數皮膚,探索活動模板,看看所有可能會發生的事情。沒找到你要的選項?你也可以隨心所欲地建立屬於你自己的活動模板。

擁有你自己的工具

本文的寓意是這樣的:如果你沒有好好利用手頭所有可用的工具,那麼你就在思考和完成品之間豎起一道障礙。移除這些障礙不僅能讓你變得更快,還能幫助你更好地在程式碼中表述你自己。像在任何你依賴工具來進步的職業裡一樣,對工具足夠了解,才能擴充你的能力,把想法轉化為結果。

像任何依賴工具的職業一樣,需要經過練習來掌握工具。一開始會很難,但是要強迫你自己不要用滑鼠操作,不要用困難的方法去寫程式碼,而是使用這些快捷鍵。你用得越多,操作就越簡單易用,很快你就能超越你之前的工作效率。

打賞支援我翻譯更多好文章,謝謝!

打賞譯者

打賞支援我翻譯更多好文章,謝謝!

任選一種支付方式

用 Android Studio 快捷鍵和活動模板提高開發效率 用 Android Studio 快捷鍵和活動模板提高開發效率

相關文章