The powerful Android Studio
英文來源: The powerful Android Studio
作者: Saúl Molinero(@saulmm),感謝作者對本篇文章的翻譯授權。
譯者: D_clock愛吃蔥花
校對: 湯濤(就職于海豚瀏覽器,微信公眾號AndroidTrending管理員)、Yasic(電子科技大學在校大學生,Diycode社區管理員)
Android Studio 作為 Android 開發的官方工具已經有一段時間了。考慮到 IntelliJ IDEA 在開發過程中為編輯、調試、分析、重構等眾多功能上提供了更高效的方式,為此,Android Studio 選擇在 IntelliJ IDEA 的基礎上進行開發。在最新版的 Android Studio 中(寫這篇文章時,最新版本是2.2)包含了很多改進, 比如 新的 UI 編輯器、新的 ConstraintLayout 布局交互方式等。本文的關注點不在于涵蓋這些新特性。這次,我想介紹一些自己平時經常使用的 Android Studio 小技巧。這篇文章原本是我在Exfest’16 活動中的一篇演講稿(沒有PPT),正好有新的借口來寫一篇新文章:) 。讓我們開始吧!
聲明
-
文中所有快捷鍵對應平臺: Mac OS X 10.5+
-
文中展示快捷鍵操作的GIF圖底部的那個綠框框,是一個很好用的插件,叫Presentation Assistant,對用于演示和結對編程是很棒的:)。
雜項
避免自動顯示Logcat窗口
在運行應用的時候,最好禁止展開 Android Monitor 窗口(因為在運行配置中默認是展開的)。為此,可以在我們當前的 Project 中,選擇 Edit Configurations -> Android Application -> Miscellaneous 路徑,關掉下面的勾選。
不顯示 Tab
正如 Hadi Hadiri 在他的文章中明確提到,使用這些 Tab 可能導致以下麻煩:丟失上下文,消耗寶貴的編輯空間,并且這些標簽需要使用觸控板或鼠標交互。如果這些 Tab 對你來說沒有什么用處,可以到 settings -> editor -> tabs 設置中,將 Placement 屬性設置為 None。
IntelliJ IDEA 不需要使用標簽也能高效地在代碼間進行切換。
導航
JetBrains團隊的目標之一是鼓勵用戶盡可能減少使用鼠標的頻率。有大量高效的操作命令,可以讓你的雙手在不需要離開鍵盤的情況下,變得更加高效精準。
查找類、文件和操作
IntelliJ IDEA 以及 Android Studio 都提供了查找文件、類和操作的方案。
任意搜索 - ? + ?
它會顯示一個搜索所有類型元素的對話框:可以用于查找類、文件、操作等。這里建議盡量避免使用這個操作,因為任意查找會使得你寶貴的電腦資源變得更加緩慢。
搜索類型 - ? + O
它可以讓你快速地搜索到枚舉類型,類,接口等。
搜索文件 - ? + ? + O
它可以讓你搜索各種類型的文件,對像布局這樣的xml文件,資源文件等同樣有用。
搜索操作 - ? + ? + o + A
通過這個功能,你能搜索并打開菜單、設置、工具窗口等,并且會給出一些操作的快捷鍵。因此,當你忘記這些操作時,你可以通過搜索這些操作從而快速找到它們。
優點:
-
不需要寫出我們查找的每一個類的全稱。假設我們正在查找CharacterDetailPresenter這個類,那就只需輸入CharacterPresenter即可。
-
搜索類(? + O)的時候,我們可以通過在類名后面添加冒號和行數,來跳轉到類中指定的某一行里面,例如:CharacterDetailPresenter:50。
-
我們搜索文件時,在文件名的前面加“/”,就可以找到該名稱對應的目錄。例如:輸入“/land”,對話框將會提示與landscape相關的配置目錄。
-
我們可以篩選出包含搜索文件的目錄,例如,輸入 strings 可以看到 values-es/strings.xml 或者 values/strings.xml。
項目窗口 - ? + 1
對于瀏覽項目文件,有一個不錯的方法是通過使用快捷鍵? + 1 來隱藏或者顯示我們的項目窗口。
優點:
-
通過快捷鍵 ? + ? + ? / ?,我們不用鼠標就能改變當前焦點所在窗口的尺寸。
-
在瀏覽界面中,我們可以通過文件或文件夾的名稱來搜索,搜索到的匹配項將高亮顯示,并且可以通過方向鍵跳轉到指定的匹配項。
跳轉到導航欄 - ? + ↑
導航欄是一個有趣的交互元素。使用它,我們可以方便地瀏覽項目文件,這與在項目窗口中的操作類似。即使導航欄被禁用,也能通過快捷鍵 ? + ↑ 重新啟動,并獲取焦點。
優勢:
- 我們可以在導航欄的環境下執行某些文件操作,比如,通過快捷鍵 ? + N 創建新文件或者使用 ? 刪除它們。
顯示和隱藏窗口
操縱這些窗口有不同的方式:顯示和隱藏單個窗口,跳轉到上一個活動窗口并使它獲得焦點,當使用某個面板時恢復焦點到編輯器等。
顯示或恢復所有窗口 - ? + ? + F12
顧名思義,它能夠讓你隱藏和恢復所有的可視窗口。
跳轉到上一個工具窗口 - F12
恢復顯示上次使用過的窗口,并使其獲得焦點。
返回到編輯器
當我們的焦點在某個窗口上,我們可以在不使用鼠標的情況下通過按鍵 ? 返回到我們的編輯器中。
最近打開過的文件
當我們需要和一堆文件打交道時,這些操作可以幫我們節約不少時間:
最近打開過的文件 - ? + E
它可以顯示出最近打開過的文件。
最近編輯過的文件 - ? + ? + E
它可以顯示出最近打開并編輯過的文件。
一個文件的結構
快速導航到一個類中不同屬性和方法的方式是使用 file structure 操作,你可以使用快捷鍵 ? + F12 ,或者使用快捷鍵 ? + A 并輸入 file structure 。這個功能還有一些其他的特點,它能夠執行搜索操作,能夠快速得到我們查找的東西并替換相應的字符。
與上面類似,window structure(? + 7) 在固定位置展示了相同的信息。
顯示當前實現和父類方法
有時候,顯示當前父類、接口或者一個方法的實現是非常有用的。選中類名或方法名并使用快捷鍵 ? + B,可以讓我們一目了然的看到當前所有的實現,按ENTER鍵可以跳轉到這些實現里面。
與上面類似,在一個方法實現里面使用快捷鍵 ? + U,也可以跳轉到已經被實現的方法或類里面。
顯示下一個錯誤 - F2
當 Android Studio 高亮提示某些編譯錯誤時,我們通常都是靠滾動鼠標去定位解決這些錯誤。使用 IntelliJ IDEA 的顯示下一個錯誤(F2)功能,能夠迅速的將光標移動到錯誤前面,從而避免我們把手離開鍵盤。
首先,按住 F2 會讓光標依次移動到每個錯誤前面。一旦解決某個錯誤,再按 F2 光標將會移動到當前文件中指定的下一個錯誤前面。
返回之前編輯的位置 - ? + ? + ?
當修改某些代碼量很龐大的類時,我們經常需要改變類中不同位置的代碼。比如:寫一些聲明,編輯一下方法的實現等。在你添加聲明后,不需要使用鼠標就能將光標移回之前編輯的位置是一個非常實用的功能。返回之前的編輯位置 (? + ? + ?),正是使用上面所說的操作。它可以在沒有更改代碼的情況下就讓光標移回之前的編輯位置。
編輯代碼
替換取代添加
在寫代碼的時候,通常我們會為了得到一些代碼提示而使用補全提示對話框。當我們使用 ENTER 鍵決定采用某個補全提示時,這段新代碼會被添加到原有代碼前面,導致產生錯誤。
如果用 TAB 鍵取代 ENTER 鍵,并且我們想要調用的方法與原有方法的參數個數相同,那么這些新代碼將會自動替換并使用舊的參數設置。
補全當前語句 - ? + ? + ENTER
像使用 Android Studio 這樣功能強大的 IDE,就沒必要去擔心一些基本的語法元素,如逗號或者分號。
某些情況下,使用補全當前語句的操作,它會根據當前情況自動添加一些必要的語法元素。
添加選中內容到下一個位置 - ? + G
有些情況下,為了能夠同時編輯多行代碼,同時使用多個光標來是非常高效的。通過添加選中內容到下一個位置(? + G)這個功能,我們可以移動光標將選中格式的內容添加到想要的地方。在這個功能上,Android Studio 和 IntelliJ IDE 甚至還給了一些更酷的編輯工具,比如:剪切和粘貼代碼片段,選擇工具等。
舉一個使用場景,例如,在Activity或Fragment中使用ButterKnife框架的注解去改變我們綁定View的方式。
合并成一行 - ? + ? + J
當一個字符串在不同行上多次連接,使用合并成一行的操作會變得非常有用,它可以將其合并成為一行,并且不用擔心需要刪除大量的連接符號。
查看參數信息 - ? + P
添加一個方法的調用,Android Studio 會展示一個調用方法所需參數的彈窗,這個彈窗會在幾秒鐘后消失。每當調用方法的時候,我們可以使用 ? + P 來查看方法所需要的參數信息。
包裝代碼 - ? + T
某些時候,我們可能需要去包裝某些特定的代碼,比如:添加一個條件判斷,遍歷或捕獲異常。為此, IntelliJ IDEA 和 Android Studio 提供了一個 Surround with 的功能,使用快捷鍵 ? + T 即可調出操作窗口。
我們可以在對話框中選擇不同的操作,比如:條件、循環、異常等,甚至活動模板。
優點:
我們在打開XML布局文件的場景下調出對話框,會顯示一些提示信息。其中包含少量幾個自帶的活動模板,比如:通過它可以很簡單的做到,把一個 View 或者一個 ViewGroup 放到另一個 ViewGroup 中。這就是使用活動模板的例子,通過 surround with 彈窗可以將 View 放到 ViewGroup 中。
上下移動代碼 - ? + ? + ↑/↓
為了不需要手動復制粘貼的去移動代碼。通過快捷鍵 ? + ? + ↑/↓ 來移動我們選中內容的方式,將是非常高效的。
優點:
這個操作對于編輯XML布局文件的時候非常有用。假如我們選中一個 View,我們可以將其移動到當前布局文件中現有的viewgroup里面。
擴大/縮小選擇區域 - ? + ↑/↓
由于繼承了 IntelliJ IDEA 的機制,Android Studio 使得我們在圈選代碼的時候變得非常有趣。
在特定部分代碼上使用快捷鍵 ?+↑/↓ ,可以擴大或縮小到下一個選中的區域范圍。
補全
活動模板- ? + J
活動模板是一個功能強大的機制,它可以避免我們編寫重復的代碼。通過 settings -> editor ->live templates 的步驟可以看到有它很多不同的定制選項。
Android Studio 默認提供了很多 java 和 XML 都可使用的活動模板。
通過快捷鍵 ? + J ,我們可以看到一個顯示當前可用活動模板的對話框。
調試
將調試器依附到Android進程
Android Studio 可以避免每次都以 Debug 的方式啟動進程,(? D),因為我們有大量的斷點不需要在一開始就進入 Debug 的狀態。
為此,Android Studio 提供了一個名字叫 Attach Debugger to Android Process 的操作。
條件斷點
在被多次調用的代碼中,每次都執行到我們設置的斷點是非常麻煩的,有可能,我們只想在某種特定情況下才去檢查這段代碼的運行狀態。在斷點上點擊右鍵進行設置,只有在條件返回true時,才會運行到我們當前設置的斷點。
Android Studio 會根據輸入內容彈出補全提示對話框。
指定一個狀態
當運行到某個斷點時,我們經常會去檢查它的運行狀態。現在不僅可以讀取這些狀態信息,還可以輸入運行特定的某些代碼。
我們可以在 evaluate expression (也可以在watches窗口中) 編輯窗口中輸入變量,去查看它們的狀態信息。
不同類型的斷點
在右鍵彈出的斷點配置對話框中關閉 suspend 按鈕的打勾,并勾選 Log message to console 選項。這樣,就能在調試工具中的 console 窗口中輸出相應的日志信息(? + 5)。
此外,我們同樣可以在對話框下設置 Log Evaluated Expression 選項來打印指定格式的日志。Android Studio 會再次根據你輸入的語句彈出補全提示對話框。
總結
為了在gradle構建的時間里有點東西可以看,可以把這份小抄打印并貼到墻上(當然你也可以一直看著你的代碼!:D)。
References(參考文章)
No tabs in IntelliJ Idea - Hadi Hadiri
IntelliJ IDEA Tips and Tricks - Hadi Hadiri
The experts’ guide to Android development tools - Google I/O ‘16
Android Studio for Experts- Android Summit ‘16
Android studio tips of the day roundups (all of them)- Philippe Breault
What’s new in Android
Dev tips- Sebastiano Poggi
第一時間掌握最新移動開發相關信息和技術,請關注mobilehub公眾微信號(ID: mobilehub)。
總結
以上是生活随笔為你收集整理的The powerful Android Studio的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于改进SURF算法的实时视频拼接
- 下一篇: 全球容器技术大会议题一览