感謝:CSDN的yissan
感謝:簡書的咖枯
我只是搬運(yùn)工倘感。文章最后附上他們文章網(wǎng)址。
------------------------------我是代碼界的搬運(yùn)工--------------------------------------
概述
現(xiàn)如今開發(fā)越來越追求效率和節(jié)奏胶滋,節(jié)省出時(shí)間做更多的事情,除了開發(fā)技術(shù)上的封裝等,開發(fā)工具的使用技巧也是很重要的驾诈,今天就根據(jù)自己的經(jīng)驗(yàn)來給大家介紹一下Android Studio快速開發(fā)之道毒姨。
Postfix completion
Postfix completion 是IntelliJ IDEA很早就有的功能哑蔫,該功能基于已經(jīng)輸入的表達(dá)式和你添加的后綴來實(shí)現(xiàn)另一個(gè)你想要的表達(dá)式。例如在布爾表達(dá)式之后加上后綴if就是if語句 。
常用后綴介紹
下面介紹一下個(gè)人工作中覺得比較常用的幾個(gè)后綴闸迷。
-
cast
當(dāng)一個(gè)變量需要類型轉(zhuǎn)換時(shí)嵌纲,你是不是經(jīng)常多次回退到變量名前面,然后括號再輸入類型腥沽,現(xiàn)在你只需要.cast之后瀟灑的輸入類型逮走。
-
if
對于if語句你有更好的選擇,.if
-
else
else就是if取反今阳,就是那么快
-
field
假設(shè)你的代碼寫了很長师溅,突然在1000行的時(shí)候要給一個(gè)變量賦值并且聲明為全局變量,難道要返回去重新聲明嗎盾舌,簡直麻煩墓臭。有了field,在哪都可以矿筝。
-
fori
簡單快速for循環(huán)起便,就是那么吊
-
for
for循環(huán)第二式,增強(qiáng)for循環(huán)(使用.iter也是同樣的效果)
-
forr
for循環(huán)第三式窖维,反向for循環(huán) .forr
-
null
快速判空
-
nn/notnull
快速判斷非空 .nn榆综,與.notnull效果一致
-
switch
.switch 通過字符串枚舉等類型的對象直接生成switch語句
-
inst/instantsof
快速進(jìn)行instanof判斷 并進(jìn)行類型轉(zhuǎn)換
-
var
快速為一個(gè)表達(dá)式生成變量
-
par
快速為一個(gè)表達(dá)式添加括號
-
log
快速log,想輸出的內(nèi)容.log即可
-
toast
快速toast铸史,想輸出的內(nèi)容.toast即可
除了以上的后綴語句鼻疮,Android Studio還有很多其它的后綴語句,由于個(gè)人覺得不是很常用琳轿,所以沒有提到判沟,大家可以打開setting-Editor-General-Postfix Completion查看更多用法。
下面貼一張Postfix Completion的圖
Live Templates
讓您插入頻繁使用的或自定義的代碼結(jié)構(gòu)崭篡,快速挪哄、高效、準(zhǔn)確地構(gòu)建到您的源代碼文件中琉闪。
我們可以直接打開Settings/Preferences 對話框 選中Editor下的Live Templates進(jìn)行查看
通過上圖大家可以看到Android Studio已經(jīng)為我們提供了大量的模版迹炼。
系統(tǒng)模版簡單認(rèn)識
這里我們通過系統(tǒng)提供的一個(gè)模版來對Live Templates簡單認(rèn)識一下。
上圖中Android為分組名颠毙,該分組下系統(tǒng)提供了許多模版斯入。
我們可以在右上角點(diǎn)擊+進(jìn)行添加自己的group或者模版
Abbreviation就是模版的縮寫,定義了縮寫之后就能直接輸入縮寫得到模版具體內(nèi)容蛀蜜。
Description在輸入的時(shí)候會有一個(gè)附帶的描述信息進(jìn)行提示刻两。
Tempplate text中的就是具體內(nèi)容,具體內(nèi)容中可以通過variable
來進(jìn)行變量定義滴某,上圖中的模版定義了的name和value兩個(gè)變量磅摹。
可以看到 name指定了默認(rèn)值NAME,value是一個(gè)1000以內(nèi)的隨機(jī)數(shù)滋迈。關(guān)于變量的編輯里面有很多細(xì)節(jié),由于篇幅原因偏瓤,不再這里詳細(xì)討論杀怠,后續(xù)我會寫一篇博客對live templelates各個(gè)功能進(jìn)行詳細(xì)介紹。
繼續(xù)剛才說到第一個(gè)模版厅克,左下角有一個(gè)change按鈕,點(diǎn)擊之后可以指定該模版的作用范圍橙依。
基本介紹就完畢了证舟,看下效果
系統(tǒng)提供的模版很多并且大多數(shù)都很有用,我就不一一列舉了窗骑,大家可以自己查看Live Templates找到自己合適的使用女责,開始的時(shí)候可能不適應(yīng),之后创译,你會發(fā)現(xiàn)抵知,你越來越快。
自定義模版
了解了Live Templates之后软族,我發(fā)現(xiàn)我經(jīng)常使用butterknife的時(shí)候會寫onClick刷喜,但是每次都是一樣的代碼,這時(shí)候我就可以自定義一個(gè)模版立砸,請看下圖:
自定義了一個(gè)分組 custom掖疮,并且在該分組下定義了一個(gè)縮寫為onclick的模版
模版內(nèi)容就是一個(gè)butterknife注解修飾的click方法,并且聲明了一個(gè)個(gè)變量id颗祝。
點(diǎn)擊Edit variables如下圖
指定了 Expression為completeSmart()浊闪,表示該變量會智能型的完成調(diào)用(光標(biāo)會出現(xiàn)在變量位置)
具體效果如下:
這里為了方便 隨便賦值為 activity的資源id了。
- 小技巧1
在使用Live Templates我如果正在寫代碼螺戳,寫了半個(gè)小時(shí)搁宾,我發(fā)現(xiàn)此時(shí)正在鞋一段代碼已經(jīng)寫了幾次并且很可能接下來也會寫。難道我們copy下來再 打開setting找到Live Templates去添加嗎?你完全有更好的選擇!
選中你的代碼倔幼,點(diǎn)擊菜單攔Tools->Save as Live templates 之后直接指定縮寫等參數(shù)保存即可盖腿。
或者 打開設(shè)置 keymap,輸入過濾條件live template凤藏,找到Save as Live templates設(shè)置快捷鍵
[圖片上傳中奸忽。。揖庄。(24)]
這里我設(shè)置為cmd+shift+s
就不用點(diǎn)菜單了栗菜,選中代碼直接cmd+shift+s
[圖片上傳中。蹄梢。疙筹。(25)]
ps:由于我之前設(shè)置過快捷鍵富俄,還以為有默認(rèn)的快捷鍵,想看看默認(rèn)快捷鍵寫下來而咆,所以點(diǎn)了下reset霍比,發(fā)現(xiàn)這個(gè)功能沒有提供默認(rèn)快捷鍵,然后最悲劇的來了暴备,發(fā)現(xiàn)reset之后我沒有點(diǎn)apply尼瑪居然也生效了悠瞬,所有我修改過的快捷鍵全沒拉。涯捻。浅妆。。障癌。 - 小技巧2
加入你想使用一個(gè)模版凌外,但是忘記了它的縮寫迟赃,此時(shí)怎么辦呢? 快速的cmd+j,windows電腦我不清楚歉备,大家設(shè)置技巧1的時(shí)候會看到一個(gè)insert live templates,就可以看到快捷鍵了郑趁。該功能可以提示出所有適合當(dāng)前場景的模版轿亮。
當(dāng)然Live Templates的知識很有很多疮薇,比如定義變量里的expression有好多,各自代表什么意思哀托,但是這些不是本篇文章的重點(diǎn)惦辛,所以就不做討論了。
快捷鍵
Android Studio提供的快捷鍵功能非常強(qiáng)大仓手,個(gè)人覺得只要你對快捷鍵熟悉至極胖齐,從打開Android Studio那一刻,你就可以把鼠標(biāo)扔了嗽冒。呀伙。。
個(gè)人常用快捷鍵介紹
先來一波常用功能快捷鍵效果演示添坊,沒圖我也是不能服眾啊(由于快捷鍵很多這里只做部分演示)剿另,ps:這里的快捷鍵是基于as自帶的快捷鍵類型,如果你選擇了其它的快捷鍵類型(如eclipse)贬蛙,你只需要打開設(shè)置雨女,keymap,通過輸入過濾條件找到對應(yīng)的功能查看快捷鍵阳准。
以下格式為
描述/Windows或Linux的快捷鍵/Mac 快捷鍵
介紹
圖片
- Find action (F3/Command + G)
查找as所有動作功能(超級強(qiáng)大)
- Find next (F3/Command + G)
查找下一個(gè)
-
Find previous
查找上一個(gè)
-
Find class(Control + N/Command + O)
直接通過類名過濾打開類文件氛堕,有了這個(gè)基本我很少用鼠標(biāo)去找類文件了。
-
Duplicate current line or selection(Control + D/Command + D)
快速產(chǎn)生一個(gè)單行或者選中行的copy
-
Go to implementations( Control + Alt + B/Command + Alt + B)
找到當(dāng)前接口的實(shí)現(xiàn)類野蝇,或接口方法的實(shí)現(xiàn)方法讼稚,在mvp模式里最常用
-
Extract method( Control + Alt + M/Command + Option + M)
為選中代碼生產(chǎn)一個(gè)方法括儒,超級智能,甚至能識別處是否要參數(shù)和返回值锐想,如果有多個(gè)相似代碼帮寻,會提示是否要統(tǒng)一替換,吊到?jīng)]朋友赠摇。
Extract variable(Control + Alt + V/Command + Option + V)
為選中表達(dá)式生成臨時(shí)變量固逗,如果有多個(gè)地方會提示是否需要統(tǒng)一替換。
-
Extract field(Control + Alt + F/Command + Option + F)
為選中表達(dá)式生成全局變量藕帜,如果有多個(gè)地方會提示是否需要統(tǒng)一替換抒蚜。
-
Next highlighted error(F2 / F2)
你一定有過在一個(gè)很長代碼文件中找一個(gè)錯(cuò)誤的時(shí)候,很麻煩耘戚,有了這個(gè)功能,光標(biāo)直接移到錯(cuò)誤的地方操漠。
篇幅有限收津,就介紹這么多了,其它的系統(tǒng)快捷鍵我以表格的形式整理下來浊伙,許多功能需要自己去嘗試才能發(fā)現(xiàn)它的強(qiáng)大撞秋。
系統(tǒng)默認(rèn)快捷鍵
以表格形式列出個(gè)人覺得比較常用得系統(tǒng)快捷鍵,ps:這里列出得是系統(tǒng)默認(rèn)的快捷鍵嚣鄙,如果你快捷鍵類型選定為eclipse或者其它吻贿,你需要找到對應(yīng)的描述進(jìn)行查看或者修改。
- 普通類型
description | 解釋 | Windows/Linux | Mac |
---|---|---|---|
Open settings dialogue | 快速打開設(shè)置 | Control + Alt + S | Command + , (comma) |
Open project structure dialog | 打開項(xiàng)目結(jié)構(gòu) | Control + Alt + Shift + S | Command + ; (semicolon) |
Switch between tabs and tool window | tab的切換 | Control + Alt + Shift + S | Command + ; (semicolon) |
- 追蹤和搜索
description | 解釋 | Windows/Linux | Mac |
---|---|---|---|
Find | 查找 | Control + Alt + S | Command + , (comma) |
Search everything (including code and menus) | 查找所有 | 點(diǎn)擊shift兩次即可搜索 | 點(diǎn)擊shift兩次即可搜索 |
Find next | 順序向下查找 | F3 | Command + G |
Find action | 查找功能哑子,超級強(qiáng)大舅列,as的所有功能可以通過該功能來查找 | Control + Shift + A | Command + Shift + A |
Find class | 快速找到類并打開文件 | Control + N | Command + O |
Find file (instead of class) | 快速查找文件 | Control + Shift + N | Command + Shift + O |
Find in path | 在項(xiàng)目下的所有路徑查找 | Control + Shift + F | Command + Shift + F |
Recently opened files pop-up | 列出最近打開的文件 | F3Control + E | Command + E |
Recently edited files pop-up | 列出最近編輯過的文件 | Control + Shift + E | Command + Shift + E |
Go to last edit location | 回到最近一次編輯的位置 | Control + Shift + Backspace | Command + Shift + Backspace |
Close active editor tab | 關(guān)閉當(dāng)前編輯的文件 | Control + F4 | Command + W |
Open type hierarchy | 打開類型層次關(guān)系 | Control + H | Control + H |
Open method hierarchy | 打開方法層次關(guān)系 | Control + Shift + H | Command + Shift + H |
Open call hierarchy | 打開調(diào)用層次關(guān)系 | Control + Alt + H | Control + Option + H |
- 寫代碼常用快捷鍵
description | 解釋 | Windows/Linux | Mac |
---|---|---|---|
Generate code (getters, setters, constructors, hashCode/equals, toString, new file, new class) | 快速生成各種方法 | Alt + Insert | Command + N |
Override methods | 顯示所有可以重寫的方法 | Control + O | Control + O |
Implement methods | 顯示所有可以實(shí)現(xiàn)的方法 | Control + I | Control + I |
Surround with (if…else / try…catch / etc.) | 快速為語句生成if else,try catch for循環(huán)等 | Control + Alt + T | Command + Option + T |
Delete line at caret | 刪除光標(biāo)所在行 | Control + Y | Command + Backspace |
Duplicate current line or selection | 快速產(chǎn)生新的當(dāng)前行卧蜓,或者新的多行代碼 | Control + D | Command + D |
Quick documentation lookup | 快速查看簡要文檔 | Control + P | Command + P |
Go to declaration (directly) | 找到變量或方法聲明處 | Control + B or Control + Click | Command + B or Command + Click |
Go to implementations | 找到一個(gè)接口的實(shí)現(xiàn)類帐要,接口方法的是實(shí)現(xiàn)處 | Control + Alt + B | Command + Alt + B |
Go to super-method/super-class | 找到父類或父類方法 | Control + U | Command + U |
Toggle project tool window visibility | 顯示或隱藏as左邊的項(xiàng)目窗口 | Alt + 1 | Command + 1 |
Comment/uncomment with line comment | 快速單行注釋或去除注釋 | Control + / | Command + / |
Comment/uncomment with block comment | 多行注視或除去多行注釋 | Command + Shift + / | Command + Shift + / |
Project quick fix (show intention actions and quick fixes) | 給出當(dāng)前問題的多種解決方法(該方法非常常用) | Alt + Enter | Option + Enter |
Reformat code | 格式化代碼 | Control + Alt + L | Command + Option + L |
Next/previous highlighted error | 找到下一個(gè)/上一個(gè)錯(cuò)誤 | F2 / Shift + F2 | F2 / Shift + F2 |
- 編譯運(yùn)行
description | 解釋 | Windows/Linux | Mac |
---|---|---|---|
Build | 編譯 | Control + F9 | Command + F9 |
Build and run | 編譯 | Shift + F10 | Control + R |
- 調(diào)試
description | 解釋 | Windows/Linux | Mac |
---|---|---|---|
Debug | Shift + F9 | Shift + F9 | |
Step over | F8 | F8 | |
Step into | F7 | F7 | |
Smart step into | Shift + F7 | Shift + F7 | |
Resume program | F9 | Command + Option + R |
- 修改
description | 解釋 | Windows/Linux | Mac |
---|---|---|---|
Safe delete | 安全刪除 | Alt + Delete | Command + Delete |
Extract method | 提取方法 | Control + Alt + M | Command + Option + M |
Extract method | 提取方法 | Control + Alt + V | Command + Option + V |
Extract variable | 提取變量 | Control + Alt + V | Command + Option + V |
Extract field | 提取全局變量 | Control + Alt + F | Command + Option + F |
Extract constant | 提取常量 | Control + Alt + C | Command + Option + C |
Extract parameter | 提取參數(shù) | Control + Alt + P | Command + Option + P |
- 版本控制/本地歷史
description | 解釋 | Windows/Linux | Mac |
---|---|---|---|
Commit project to VCS | Control + K | Command + K | |
Update project from VCS | Control + T | Command + T | |
View recent changes | 查看最近修改 | Alt + Shift + C | Option + Shift + C |
Open VCS popup | 打開版本控制設(shè)置窗口 | Alt + ` (backquote) | Control + V |
擴(kuò)展
- 自定義快捷鍵
看到這里相信大家對快捷鍵有了更深的認(rèn)識,我們可以通過簡單的幾個(gè)鍵就實(shí)現(xiàn)強(qiáng)大的功能弥奸,但是有時(shí)候許多系統(tǒng)提供的快捷鍵也許和你本身系統(tǒng)的快捷鍵沖突榨惠,或者說某些強(qiáng)大的功能as并沒有提供你快捷鍵,此時(shí)就涉及到快捷鍵的自定義(修改或者添加)盛霎。
比如上面提到的 找到并高亮錯(cuò)誤代碼 as提供的是F2鍵赠橙,但是在Mac上是功能鍵并且我也想保留,我就修改為了command+shift+2
關(guān)于快捷鍵的自定義我就不細(xì)提了愤炸,大家百度一下有很多文章期揪。 - 發(fā)現(xiàn)更多功能
keyMap里列出的功能眾多,篇幅和精力有限摇幻,不能一一列出横侦, 各位有時(shí)間的時(shí)候可以打開設(shè)置->KeyMap挥萌,去看里面的快捷鍵,不確定的就自己親自按了試一下枉侧,你會發(fā)現(xiàn)原來可以那么方便引瀑。
Android Studio插件
1.通過WiFi調(diào)試手機(jī):Android Wifi ADB、ADB WiFI
2.ButterKnife 注解生成器:ButterKnife Zelezny
3.Selector文件生成:SelectorChapek
4.Gson自動化:GsonFormat
5.Parcelable自動化:Android Parcelable Code Generator
6.生成ViewHolder和findView方法:AndroidCodeGenerator
7.代碼行數(shù)統(tǒng)計(jì):statistic
8.代碼檢索:codota
9.模擬器:Genymotion
10.快速進(jìn)行Log榨馁、Toast憨栽、isEmpty的代碼書寫:postfix
11.Android Studio 翻譯插件,可以將英文翻譯為中文:ECTranslation:https://github.com/Skykai521/ECTranslation
12.可用于快速定位代碼:CodeGlance
13.可以根據(jù)Activity或者fragment的生命周期對其生命周期方法位置進(jìn)行先后排序:Lifecycle Sorter
14.通過FindBugs幫你找到隱藏的bug及不好的做法:FindBugs-IDEA
15.該網(wǎng)站搜集了大量的代碼,號稱超過700W的代碼實(shí)例:codota
16.檢查代碼風(fēng)格的插件:checkstyle-idea
17.一個(gè)針對API 23翼虫,可在Activity/Fragment中快速生成Runtime Permissions代碼的插件:PermissionsDispatcher
18.生成Material Design Icon的插件:Android Material Design Icon Generator
19.Material Theme配色方案:Material Theme UI
20.Android 高效開發(fā)調(diào)試神器:JRebel:https://zeroturnaround.com/
21.號稱Android平臺上的秒級編譯方案:Freeline:https://yq.aliyun.com/articles/59122?spm=5176.8091938.0.0.1Bw3mU
安裝插件方法:打開 File -> Settings -> Plugins -> Browse Repositories 屑柔,輸入插件名搜索,直接點(diǎn)擊"Install"安裝珍剑。如果搜索不到的話可以去這里下載下來后掸宛,選擇"Install plugin from disk"進(jìn)行離線安裝。
----------------------------------搬運(yùn)結(jié)束---------------------------------------------
最后附上二位文章網(wǎng)址:
Android Studio快速開發(fā)之道
持續(xù)收集Android Studio好用的插件~~只選對的招拙!