【版權申明】非商業目的可自由轉載
博文地址:https://blog.csdn.net/ShuSheng0007/article/details/95490758
出自:shusheng007
文章目錄
概述
經過多年發展,Google爲Android開發者提供的Android Studio已經比較成熟了,且已經成爲Android開發的首選工具,是我們親密的夥伴。俗話說工欲善其事必先利其器,我們對自己手裏喫飯的傢伙應該有個比較深入的理解,才能使開發更加高效,做到不加班或者少加班。
本文提到的命令只適用於Windows/Linux環境, 且持續更新到本人不再使用AS編程爲止,也許會去開個小店賣茶葉蛋吧。。。
代碼及重構相關
大部分操作均在Code及Refactor菜單 裏,以下爲常用功能
代碼生成
有一個快捷鍵一定要說一下,那就是
Alt + Insert
這個快捷鍵用來產生代碼的,它會根據上下文語義顯示不同的菜單選項,裏面的功能和我們日常編程有極大的關係,一定要善於使用這個快捷鍵。
代碼編輯
在編碼過程中我們需要不斷的移動代碼的順序,最原始的方法就是剪切於粘貼,效率低下。AS爲我們提供了更好的方式:
1:移動普通代碼
向上移動代碼,如果你只需要向上移動一行代碼,那麼將光標置於此行上點擊這個快捷鍵即可,如果多於一行則需要先選中要移動的代碼。
Shift + Alt + ↑
向下移動代碼
Shift + Alt + ↓
2:移動方法
你也可以使用移動普通代碼的方式移動方法,但需要手動選中方法體,選擇過程繁瑣而易錯,AS提供了更好的方式
向上移動方法
Shift + Ctrl + ↑
向下移動方法
Shift + Ctrl + ↓
3:將靜態變量和靜態方法移動到其他類裏面
F6
4:刪除代碼
我以前刪除一行代碼使用Ctrl + X,這個方式有一個弊端就是剪切板裏面存放了上一次要刪除的代碼,很是不便。其實使用如下快捷鍵即可
Ctrl + Y
5:複製並粘貼代碼
Ctrl + D
6:查看一個方法的參數信息
Control + P
7:查看一個方法的父類方法,例如Activity中的onCreate方法的父類方法。
Control + U
8:查看一個方法的實現快照,這個我覺得也挺有用的
Control + Shift + I
重構相關
1:重命名
Shift +F6
2:修改方法的簽名
Ctrl + F6
3:將表達式提取爲變量
Ctrl + Alt + V
下面是一個示例
int a=10,b=18;
//提取前
if (a+b>20){
}
//提取後
final int sum = a + b;
if (sum >20){
}
4:將方法的一部分提取爲方法參數
Ctrl + Alt + P
5:將代碼提取爲方法
Ctrl + Alt + M
6:內聯,將方法調用替換爲具體的方法實現
Ctrl + Alt + N
智能推斷 (QuickFix or Intention Actions)
AS還有一個智能推斷的功能比較實用,例如代碼中存在沒有使用的方法,變量等As就會提示,例如如果你使用的是Java8以上,會提醒你使用Lambda替換匿名內部類。
Alt + Enter
搜索
最實用的技能,雙擊Shift 鍵可以調出搜索頁面,可以搜索各種內容
下面的快捷鍵爲上面搜索的細化
1:搜索類型Class,例如class,enum,interface
Ctrl + N
2:搜索文件File
Shift + Ctrl + N
3:搜索符號symbols 方法,變量等
Shift + Ctrl + Alt + N
導航
這裏面的快捷鍵大部分在菜單欄上面的Navigate 的選項裏面,下面是一些常用的
1:如果你想整體看一下一個類裏面的方法和屬性,下面的命令很適合你
Ctrl + F12
2:導航到方法或者屬性的聲明處,在方法處申明處再按一次快捷鍵則會回到調用處,相信這個大家用的已經很溜了
Ctrl + B
3:導航到方法的實現處,不知道你曾經是否遇到過,你其實想查看一個方法的具體實現,AS卻把你帶到了其聲明的接口那裏,而你又不知道具體的實現類是哪個,那叫一個鬱悶。你可以試試下面的快捷鍵
Ctrl +Alt + B
4:導航到有錯誤的代碼處,如果一個類中有很多報錯,你總不能一個一個手動找吧?
F2
使用Shift +F2 回到上一個錯誤處
5:查看類的繼承結構,本人隆重推薦這個功能,讀代碼神器
Ctrl + H
從下圖可以非常清晰的看到 VideoPlayerAct
類的繼承結構
6:查看方法的繼承結構,也是讀代碼神器
Ctrl + Shift + H
下圖我們查看了startActivity
方法的結構,從右側明顯可一個看到這個方法定義在Activity
類中,而他的大量的繼承類都繼承了這一方法。
note:看截圖右下角的說:
+:表示方法是在那個類裏面定義的
-:表示那個類的方法是從其父類繼承的
!:這個自己看解釋吧,一般代碼正常的情況下不會出現,不然就說明你的代碼存在問題。
7:查看方法的調用層級結構
Ctrl + Alt + H
如下圖所以,我們有3個方法,我們要查看方法test3()
的調用層級結構,那麼光標選擇test3
,然後點擊Ctrl +Alt + H
,則在右側就會出現其調用層級結構。從右圖中我們可以看到,test1調用了test2, test2又調用了test3.
8:你是否在閱讀別人代碼的時候遇到過想要回看前面某個關鍵點時卻怎麼也找不到的情況呢?AS 的標籤正是爲此而生的。
如果我們想要標記某一行代碼,就將光標停止此處,然後按
F11
鍵,左側就會出現一個小對號,如下圖所示
我們還可以給此標籤打上序號,在查看代碼邏輯的時候就可以按着標籤序號展開了。光標停止在要標記的代碼行,點擊
Ctr + F11
鍵,就會有一個選擇序列號的彈窗出現,選擇一個即可。如下圖所示
選擇序號後,在代被標記的代碼行左側就會出現帶序列號的標籤,如下圖所示
那麼標籤是打好了,那怎麼查看呢?點擊
Shift + F11
鍵後會打開一個彈窗,左邊就是所有的標籤,帶兩個點的是帶有序號的標籤,右邊是相應的代碼位置。
這個功能在閱讀複雜代碼時候非常實用,可以嘗試。
其他技巧
1: 複製tooltip裏面的文字
AS經常會很貼心的告訴你你的代碼有某些問題,而你經常想複製裏面的文字去google,那麼原始的做法就是小心的選中其中的文字,然後一個一個複製。但是何不試試下面的方式
將鼠標光標懸停在tooltip上,按住Alt鍵,鼠標單擊 tooltip 窗口即可複製裏面的文字
2:將項目導出爲zip包
可能有的同學要說了,這個功能好像很雞肋,我直接自己將項目打包就好了。但是不知道你是否注遇到過,打包時如果不手動把build 以及其他生成的文件刪除,那包裏面大部分都是這些內容,項目稍微大一點,尺寸是以GB論的。而AS 提供的這個功能就很貼心的只打包必要的源代碼,剔除了生成的代碼。
3:使用本地歷史文件功能
如果你的代碼版本沒有控制好,一些代碼由於某些原因丟了,這時候你可怎麼辦,最糟糕的就是重寫一遍,但其實AS很貼心的爲我們在本地保留了歷史文件,便於你的找回。
選中你要查看的文件,鼠標右鍵在菜單中選擇Local History --> Show History
如下圖所示,左側列出了你這個文件的歷史記錄,點擊就可以查看與現在文件的差異。
代碼調試
在程序員日常開發中,代碼調試耗時可能比寫代碼耗時都多,而且也是一個鑑定高手和菜鳥的關鍵技能。當一個問題發生了,高手會從容的通過debug代碼找到問題,進而解決問題,菜鳥呢就一臉懵逼,一通亂試,運氣好的話費了九牛二虎之力試出來了,但是仍然不知道爲什麼,然後過幾天又發生問題後繼續懵逼加亂試。
這不是一篇專門講調試的文章,所以此處只介紹AS提供的一些調試方方法,具體的調試技巧需要自己去摸索。
通過日誌調試(Logcat )
Logcat 大家已經非常熟悉了,這裏從一個開發者的角度介紹一些Logcat的實用技能
日誌格式的含義: 這個非常重要
date time PID-TID/package priority/tag: message
如上面所示,其包含如下幾部分
data:日期
time:時間,精確到毫秒
PID: 進程ID(process identifier)
TID: 線程ID(thread identifer)
package: 包名
priority:優先級,例如是debug,還是error
tag:log的標籤
message:具體的log內容
下面是一個實例
data:2019-08-28
time:17:08:01.544
PID: 24049
TID: 24049
package: top.ss007.testparcelable
priority:D
tag:TEST
message:這是一個測試
2019-08-28 17:08:01.544 24049-24049/top.ss007.testparcelable D/TEST: 這是一個測試
配置日誌的顏色
我們可以將logcat的日誌根據不同的優先級配置成不同的顏色,便於區分
如下圖所示:在setting窗口中,找到AndroidLogcat,然後設置不同的顏色,以及是否是粗體或者線體
通過斷點調試
斷點調試在研究某個具體問題或者研究代碼執行邏輯時非常有用,AS可以調試Java/Kotlin 或者C/C++的代碼,我們此處只介紹Java/Kotlin代碼的調試,因爲我也沒有實際使用AS調試過C/C++的代碼,只知道需要通過LLDB debugger來完成
如何啓動debug
- 如果是真機,在開發者選項中開啓可以通過USB調試的選項
- build variant 必須是debug,如下圖所示,可以在Build Variants 窗口選擇build variant爲debug。
note:如果你處於某種需求,非要調試你的release構建類型,倒也不是不可以,需要在gradle文件中配置如下代碼buildTypes { release { debuggable true ... } }
- 保證前兩點就可以在你要調試的代碼前面打斷點了
- 啓動調試,有兩種方式:
第一種:通過點擊工具欄上的debug按鈕來啓動,如下圖所示
第二種:當你的APP已經在運行了,就可以通過 Attach debugger to Android procces按鈕,將debugger 附着在你的進程上。
如下圖所示。
當點擊這個按鈕後會彈出一個彈窗,所有保持默認即可,選擇你的APP 進程,點擊OK即可。
這種方式與第一種方式相比更加實用。
用插件武裝你的AS
一個牛逼的IDE絕逼少不了可擴展的插件系統,下面推薦幾個很實用的插件。
給AS裝插件是一件很簡單的事情:
- 打開Setting窗口,搜索Plugins。
- 在左側選中Plugins選項,然後在右側頂部選中Marketplace
- 在右側搜索你要安裝的插件,例如CodeGlance
- 點擊對應插件的Install按鈕,重啓AS使插件生效
CodeGlance
CodeGlance 這個插件會在AS代碼編輯區的右側生成一個代碼的縮略圖,使你可以非常方便的滾動到關心的部分,對於大文件非常有幫助。
ADB Idea
ADB Idea 這個插件對ADB 常用命令做了封裝,具體請看下圖,安裝後從Tools–>ADB Idea 打開使用
Key Promoter X
Key Promoter X 自從開始寫代碼就被教育爲少用鼠標多用鍵盤,提高生產效率,提高逼格,但是有多少人還是用鼠標點來點去,包括自己在內。主要是記不住快捷鍵啊,一記不住就懶的用,一懶得用就更記不住了,惡性循環,最後。。。
自從有了這個插件,媽媽再也不用擔心我的鼠標手了
這個插件在你使用鼠標操作的時候就會在AS的右下角彈出一個提示窗,告訴你這個操作的快捷鍵,外加你使用鼠標進行這個操作的次數。
Android ButterKnife Zelezny
Android ButterKnife Zelezny 如果項目中使用到了ButterKnife 這個三方庫,推薦安裝這個插件,可以省去手動編寫模板代碼。
使用方式,選中layout文件,點擊右鍵選擇Generate選項或者 Alt+Insert, 即可調出Generate窗口,在此窗口中選擇Generate ButterKnife Injections 如下圖所示。
總結
以上爲AS日常開發中常用的功能,但是AS還有很多有用的功能需要開發者不斷的去探索使用,你也可以查看AndroidStudio官方文檔來學習。
祝頸椎安康!