10 個你有可能不知道的Android Studio技巧

發表於2016-10-23

英文原文:medium

Android Studio 是每一個 Android 開發每天都要使用的工具,但是即使你是一個經驗豐富的開發人員,你也可能已經錯過了許多可以節約生命的技巧,這篇文章也許就可以幫助你掌握它們其中的一部分。我不會一字一句地翻譯,而是以最簡潔易懂的方式介紹給你,同時提供必要的註解和延伸,讓你可以在一遍快速閱讀之後迅速掌握。

當你想不起來某個功能怎麼用的時候

如果你是 Windows/Linux 使用者, 那麼請按Ctrl + Shift + A, 如果你是 Mac 使用者,那麼請按Command + Shift + A,在這個萬能的輸入框內可以輸入你想要執行的操作(當然是英文),列表中會顯示對應的可選操作以及快捷鍵。不僅僅是操作,如果你只是想改變某個設定的時候,也可以使用這個功能,例如你想設定Gradle為 offline work 的話,可以在輸入框輸入offline,對應的的結果中選擇Toggle Offline Work即可,再比如你需要開啟貼上程式碼時候的Auto Import功能,那麼也只要在輸入框中輸入Auto Import然後選擇對應項即可。

這裡寫圖片描述

修改快捷鍵

在 Android Studio 中所有快捷鍵都是可以自定義的。請喚起偉大的Ctrl + Shift + A,輸入keymap,選擇位於Settings > Keymap的那個選項,這裡能看到所有的快鍵鍵,一般不建議在原有快捷鍵方案上直接修改快捷鍵,而是拷貝一份現有的方案再在上面改,在Keymaps的下拉框中選擇一份現有的方案(預設為 Default),點選右邊的Copy,然後在列表中需要修改的快捷鍵的專案上右鍵,選擇Add Keyboard Shortcut,然後就可以設定自己喜歡的快捷鍵了,如果設定的快捷鍵與其它按鍵有衝突,會以紅色錯誤資訊提示。

這裡寫圖片描述

由於列表中快捷鍵數量比較多,所以我們還可以利用右邊的搜尋框進行搜尋,例如需要修改基本自動補全的快捷鍵我們只要輸入Basic,就可以在結果中找到對應的項了。

你需要了解的自動補全

一般使用 Android Studio 的時候,自動提示會在你想要提示的時候自動出現,比如輸入Log.,就會提示一堆比如Log.d(), Log.e, Log.i()。不過如果你在自動提示的時候手一抖選錯的話,比如想選Log.d()結果選了Log.e(),你是不是會把.e()都刪掉,然後再輸入一個.,其實遇到這種需要重新手動呼起自動補全的情形只需要使用Ctrl + Alt + 空格就可以了。

這裡寫圖片描述

其實還有兩種方法:一是基本補全Ctrl + 空格,然而 Windows 使用者表示不開心,因為這和 Windwos 系統切換輸入法快捷鍵衝突,如果你不想修改這個快捷鍵,那麼使用Ctrl + Alt + 空格作為替代,如果你想修改這個快鍵鍵,那麼你可以使用上一小節的方法設定新的快捷鍵,在Keymaps介面搜尋Basic,然後在過濾後的結果中選擇Code->Completion->Basic進行設定;另一種方法是智慧補全Ctrl + Shift + 空格, 不過智慧補全遠遠不止這個功能,當你呼叫方法時,可以使用智慧補全在當前上下文聯想符合該方法形參型別的變數。

在自動提示以後使用 Tab 鍵替換當前的方法或值

如果我們手動撥出自動補全的時候,當前位置已經有對應的方法或者變數(比如原來呼叫Obj的A方法,然後我們把游標定位到A方法的位置,撥出自動補全,希望自動補全的B方法代替A方法),這時候如果我們選中補全的的專案,按下回車,那麼補全的內容會插入到原來內容的前面,這不是我們想要的內容,其實這時候不應該按回車,而是Tab。

這裡寫圖片描述

當你寫完了一行程式碼

這種情況非常常見,當你寫完一行程式碼的時候,游標並不在當前行的末尾,比較常見的是游標右邊還有 N 個 右括號,這時候你會怎麼辦?可能你會使用方向鍵把游標移動到行末,然後手動輸入一個;。其實有更簡單的方案,那就是Ctrl + Shift + 回車,這個快捷鍵會幫助你自動補全當前表示式所缺的部分,包括在行末輸入;,值得一提的是,該快捷鍵對if,else,for,while控制迴圈同樣有效。

這裡寫圖片描述

還有一種情況,游標並不在行尾,但是你希望可以在下一行插入一個空行,Shift + 回車可以幫你完成這個任務。

三個定位的小技巧

使用 4 個方向鍵定位游標是我們最熟悉的方法,但是其實可以更方便的。在按方向鍵的同時按住Ctrl,可以一個單詞一個單詞移動;在按上下鍵的同時按住Alt, 可以一個節點(方法或者欄位)一個節點移動;如果在按上下鍵的同時按住Shift + Ctrl,可以把當前行和上下行交換位置。

根據字尾自動生成的程式碼模板

日常使用編輯器的過程中,有很多固定格式的寫法,例如if-else, for 等等,使用程式碼模板可以更快得幫助我們生成期望的程式碼。舉個例子,先輸入一個集合型別的變數並且加上字尾.fori,這時候自動提示會提示按照該集合型別生成for迴圈,同理,布林型別的表示式加上.if字尾也可以生成以該表示式為條件的if語句。

這裡寫圖片描述

實際上,上面這兩種程式碼模板是IntelliJ自帶的,Android Studio 還提供了許多與 Android 有關的程式碼模板,比如生成Toast和Parcelable的模板,檢視所有可用模板以及自定義模板的方法是首先Ctrl + Shift + A撥出萬能的搜尋框,輸入Live templates,選擇位於Settings的Live Templates,在這裡就可以看到所有可用的程式碼模板。

Debug 時自定義物件顯示的技巧

在除錯程式碼的時候,我們常常需要檢視一個物件的值。尤其是自定義的物件,我們常常沒有實現它的toString方法,那麼這個物件在 IDE 的值就是 ClassName:HashValue 這個樣子。我們需要點開這個物件檢視它裡面各個成員的值。在不實現toString方法的情況下其實有更好的方法。在 Debug 的Variable視窗中右鍵需要檢視的物件,選擇View as,既可以設定該物件在 Debug 狀態下顯示的方式。

這裡寫圖片描述

總結

感謝你看到這裡

相關文章