Android Studio快速開發(fā)之道

介紹

現(xiàn)如今開發(fā)越來約追求效率和節(jié)奏,節(jié)省出時間做更多的事情告私,除了開發(fā)技術上的封裝等,開發(fā)工具的使用技巧也是很重要的,今天就根據自己的經驗來給大家介紹一下Android Studio快速開發(fā)之道俭令。

Postfix completion

介紹

Postfix completion 是IntelliJ IDEA很早就有的功能,該功能基于已經輸入的表達式和你添加的后綴來實現(xiàn)另一個你想要的表達式部宿。例如在布爾表達式之后加上后綴if就是if語句 抄腔。

常用后綴介紹

下面介紹一下我個人工作中覺得比較常用的幾個后綴。

cast

當一個變量需要類型轉換時,你是不是經常多次回退到變量名前面妓柜,然后括號再輸入類型箱季,現(xiàn)在你只需要.cast之后瀟灑的輸入類型。


image

if

對于if語句你有更好的選擇棍掐,.if

else

else就是if取反藏雏,就是那么快

field

假設你的代碼寫了很長,突然在1000行的時候要給一個變量賦值并且聲明為全局變量作煌,難道要返回去重新聲明嗎掘殴,簡直麻煩。有了field粟誓,在哪都可以奏寨。

fori

簡單快速for循環(huán),就是那么吊

for

for循環(huán)第二式鹰服,增強for循環(huán)(使用.iter也是同樣的效果)

forr

for循環(huán)第三式病瞳,反向for循環(huán) .forr

null

快速判空

nn/notnull

快速判斷非空 .nn,與.notnull效果一致

switch

.switch 通過字符串枚舉等類型的對象直接生成switch語句

inst/instantsof

快速進行instanof判斷 并進行類型轉換

var

快速為一個表達式生成變量

par

快速為一個表達式添加括號

log

快速log悲酷,想輸出的內容.log即可

toast

快速toast套菜,想輸出的內容.toast即可

除了以上的后綴語句,Android Studio還有很多其它的后綴語句设易,由于個人覺得不是很常用逗柴,所以沒有提到,大家可以打開setting-Editor-General-Postfix Completion查看更多用法顿肺。

下面貼一張Postfix Completion的圖

Live Templates

介紹

讓您插入頻繁使用的或自定義的代碼結構戏溺,快速、高效屠尊、準確地構建到您的源代碼文件中旷祸。

我們可以直接打開Settings/Preferences 對話框 選中Editor下的Live Templates進行查看

通過上圖大家可以看到Android Studio已經為我們提供了大量的模版。

系統(tǒng)模版簡單認識

這里我們通過系統(tǒng)提供的一個模版來對Live Templates簡單認識一下知染。

先看一張圖


上圖中Android為分組名肋僧,該分組下系統(tǒng)提供了許多模版。

我們可以在右上角點擊+進行添加自己的group或者模版

Abbreviation就是模版的縮寫控淡,定義了縮寫之后就能直接輸入縮寫得到模版具體內容嫌吠。

Description在輸入的時候會有一個附帶的描述信息進行提示。

Tempplate text中的就是具體內容掺炭,具體內容中可以通過$variable$來進行變量定義辫诅,上圖中的模版定義了的$name$ 和$value$兩個變量。

通過右邊的Edit variables按鈕可以進行變量的編輯,點擊之后彈出如下 對話框


可以看到 name指定了默認值NAME,value是一個1000以內的隨機數(shù)涧狮。關于變量的編輯里面有很多細節(jié)炕矮,由于篇幅原因么夫,不再這里詳細討論,后續(xù)我會寫一篇博客對live templelates各個功能進行詳細介紹肤视。

繼續(xù)剛才說到第一個模版档痪,左下角有一個change按鈕,點擊之后可以指定該模版的作用范圍邢滑。

基本介紹就完畢了腐螟,看下效果

系統(tǒng)提供的模版很多并且大多數(shù)都很有用,我就不一一列舉了困后,大家可以自己查看Live Templates找到自己合適的使用乐纸,開始的時候可能不適應,之后摇予,你會發(fā)現(xiàn)汽绢,你越來越快。

自定義模版

了解了Live Templates之后侧戴,我發(fā)現(xiàn)我經常使用butterknife的時候會寫onClick宁昭,但是每次都是一樣的代碼,這時候我就可以自定義一個模版酗宋,請看下圖:

自定義了一個分組 custom久窟,并且在該分組下定義了一個縮寫為onclick的模版

模版內容就是一個butterknife注解修飾的click方法,并且聲明了一個個變量id本缠。

點擊Edit variables如下圖

指定了 Expression為completeSmart(),表示該變量會智能型的完成調用(光標會出現(xiàn)在變量位置)

具體效果如下:


這里為了方便 隨便賦值為 activity的資源id了入问。

小技巧1

在使用Live Templates我如果正在寫代碼丹锹,寫了半個小時,我發(fā)現(xiàn)此時正在鞋一段代碼已經寫了幾次并且很可能接下來也會寫芬失。難道我們copy下來再 打開setting找到Live Templates去添加嗎?你完全有更好的選擇!

選中你的代碼楣黍,點擊菜單攔Tools->Save as Live templates
之后直接指定縮寫等參數(shù)保存即可。

或者 打開設置 keymap棱烂,輸入過濾條件live template租漂,找到Save as Live templates設置快捷鍵

這里我設置為cmd+shift+s

就不用點菜單了,選中代碼直接cmd+shift+s

ps:由于我之前設置過快捷鍵颊糜,還以為有默認的快捷鍵哩治,想看看默認快捷鍵寫下來,所以點了下reset衬鱼,發(fā)現(xiàn)這個功能沒有提供默認快捷鍵业筏,然后最悲劇的來了,發(fā)現(xiàn)reset之后我沒有點apply尼瑪居然也生效了鸟赫,所有我修改過的快捷鍵全沒拉蒜胖。消别。。台谢。寻狂。

小技巧2

加入你想使用一個模版,但是忘記了它的縮寫朋沮,此時怎么辦呢?
快速的cmd+j,windows電腦我不清楚蛇券,大家設置技巧1的時候會看到一個insert live templates,就可以看到快捷鍵了朽们。該功能可以提示出所有適合當前場景的模版怀读。

當然Live Templates的知識很有很多,比如定義變量里的expression有好多骑脱,各自代表什么意思菜枷,但是這些不是本篇文章的重點,所以就不做討論了叁丧。

快捷鍵

Android Studio提供的快捷鍵功能非常強大啤誊,個人覺得只要你對快捷鍵熟悉至極,從打開Android Studio那一刻拥娄,你就可以把鼠標扔了蚊锹。。稚瘾。

個人常用快捷鍵介紹

先來一波常用功能快捷鍵效果演示牡昆,沒圖我也是不能服眾啊(由于快捷鍵很多這里只做部分演示),ps:這里的快捷鍵是基于as自帶的快捷鍵類型摊欠,如果你選擇了其它的快捷鍵類型(如eclipse)丢烘,你只需要打開設置,keymap些椒,通過輸入過濾條件找到對應的功能查看快捷鍵播瞳。

以下格式為

描述/Windows/Linux的快捷鍵/Mac 快捷鍵

介紹

圖片

Find action (Control + Shift + A/Command + Shift + A)

查找as所有操作功能(超級強大)

Find next (F3/Command + G)

查找下一個


Find previous

查找上一個


Find class(Control + N/Command + O)

直接通過類名過濾打開類文件,有了這個基本我很少用鼠標去找開類文件了免糕。


Duplicate current line or selection(Control + D/Command + D)

快速產生一個單行或者選中行的copy


Go to implementations( Control + Alt + B/Command + Alt + B)

找到當前接口的實現(xiàn)類赢乓,或接口方法的實現(xiàn)方法,在mvp模式里最常用


Extract method( Control + Alt + M/Command + Option + M)

為選中代碼生產一個方法石窑,超級智能牌芋,甚至能識別處是否要參數(shù)和返回值,如果有多個相似代碼尼斧,會提示是否要統(tǒng)一替換姜贡,吊到沒朋友。


Extract variable(Control + Alt + V/Command + Option + V)

為選中表達式生成臨時變量棺棵,如果有多個地方會提示是否需要統(tǒng)一替換楼咳。


Extract field(Control + Alt + F/Command + Option + F)

為選中表達式生成全局變量熄捍,如果有多個地方會提示是否需要統(tǒng)一替換。


Next highlighted error(F2 / F2)

你一定有過在一個很長代碼文件中找一個錯誤的時候母怜,很麻煩余耽,有了這個功能,光標直接移到錯誤的地方苹熏。


篇幅有限碟贾,就介紹這么多了,其它的系統(tǒng)快捷鍵我以表格的形式整理下來轨域,許多功能需要自己去嘗試才能發(fā)現(xiàn)它的強大袱耽。

系統(tǒng)默認快捷鍵

以表格形式列出個人覺得比較常用得系統(tǒng)快捷鍵,ps:這里列出得是系統(tǒng)默認的快捷鍵干发,如果你快捷鍵類型選定為eclipse或者其它朱巨,你需要找到對應的描述進行查看或者修改。

普通類型

description 解釋 Windows/Linux Mac
Open settings dialogue 快速打開設置 Control + Alt + S Command + , (comma)
Open project structure dialog 打開項目結構 Control + Alt + Shift + S Command + ; (semicolon)
Switch between tabs and tool window Control + Alt + Shift + S Command + ; (semicolon)

追蹤和搜索

description 解釋 Windows/Linux Mac
Find 查找 Control + Alt + S Command + , (comma)
Search everything (including code and menus) 查找所有 點擊shift兩次即可搜索 點擊shift兩次即可搜索
Find next 順序向下查找 F3 Command + G
Find action 查找功能枉长,超級強大冀续,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 在項目下的所有路徑查找 Control + Shift + F Command + Shift + F
Find action
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 關閉當前編輯的文件 Control + F4 Command + W
Open type hierarchy 打開類型層次關系 Control + H Control + H
Open method hierarchy 打開方法層次關系 Control + Shift + H Command + Shift + H
Open call hierarchy 打開調用層次關系 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 顯示所有可以實現(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 刪除光標所在行 Control + Y Command + Backspace
Duplicate current line or selection 快速產生新的當前行必峰,或者新的多行代碼 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 找到一個接口的實現(xiàn)類洪唐,接口方法的是實現(xiàn)處 Control + Alt + B Command + Alt + B
Go to super-method/super-class 找到父類或父類方法 Control + U Command + U
Toggle project tool window visibility 顯示或隱藏as左邊的項目窗口 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) 給出當前問題的多種解決方法(該方法非常常用) Alt + Enter Option + Enter
Reformat code 格式化代碼 Control + Alt + L Command + Option + L
Next/previous highlighted error 格式化代碼 F2 / Shift + F2 F2 / Shift + F2

編譯運行

description 解釋 Windows/Linux Mac
Build 編譯 Control + F9 Command + F9
Build and run 編譯 Shift + F10 Control + R

調試

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 打開版本控制設置窗口 Alt + ` (backquote) Control + V

擴展

自定義快捷鍵

看到這里相信大家對快捷鍵有了更深的認識,我們可以通過簡單的幾個鍵就實現(xiàn)強大的功能吼蚁,但是有時候許多系統(tǒng)提供的快捷鍵也許和你本身系統(tǒng)的快捷鍵沖突凭需,或者說某些強大的功能as并沒有提供你快捷鍵,此時就涉及到快捷鍵的自定義(修改或者添加)肝匆。

比如上面提到的 找到并高亮錯誤代碼 as提供的是F2鍵功炮,但是在Mac上是功能鍵并且我也想保留,我就修改為了command+shift+2

關于快捷鍵的自定義我就不細提了术唬,大家百度一下有很多文章。

發(fā)現(xiàn)更多功能

keyMap里列出的功能眾多滚澜,篇幅和精力有限粗仓,不能一一列出,
各位有時間的時候可以打開設置->KeyMap设捐,去看里面的快捷鍵借浊,不確定的就自己親自按了試一下,你會發(fā)現(xiàn)原來可以那么方便萝招。

插件

這里推薦幾個個人使用中覺得的確很好的插件,這些插件的介紹文章都很多蚂斤,我就不詳細介紹了。

Android ButterKnife Zelezny

能夠方便快速初始化槐沼,免去了findById等繁瑣的操作曙蒸。


image

Gsonformat

可根據json數(shù)據快速生成java實體類作捌治。


image

Android Material Design Icon Generator

快速生成Material Design圖標趣斤,對于在小公司土至,設計要求不那么嚴格的同學可以方便生成合適的圖標。

Android Wifi ADB

是不是很討厭調試總是要把手機放在電腦旁烦绳,有了這個插件你可以不用挨著電腦調試了臂港。

由于時間關系森枪,插件的圖沒有制作,上面兩張圖的地址出處:http://www.jcodecraeer.com/a/anzhuokaifa/Android_Studio/2015/1009/3557.html

Tip of the day

不知道大家有沒有注意审孽,每天當你第一次打開Android Studio的時候县袱,總是先彈出一個對話框,相信大多數(shù)同學都是果斷關閉然后開始今天的工作佑力,被猜中的給我點贊!haha

Tip of the day會推薦給你一些使用Android Studio的技巧式散,快捷鍵等等功能,所以希望大家能夠花一分鐘看一看搓萧,每天一個積累杂数,半年一年之后你就是開發(fā)效率之王了!

你可以隨時菜單選擇help->tip of the day進行查看


結語

花了一個周末給大家總結的快速開發(fā)到這里就結束了,由于時間關系瘸洛,肯定有很多方面不足或者沒有提及到揍移,請見諒!該篇文章會持續(xù)更新,喜歡我的文章反肋,歡迎關注我!

點贊只需一秒那伐,動力確是永恒,點個贊唄!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末石蔗,一起剝皮案震驚了整個濱河市罕邀,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌养距,老刑警劉巖诉探,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異棍厌,居然都是意外死亡肾胯,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進店門耘纱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來敬肚,“玉大人,你說我怎么就攤上這事束析⊙蘼” “怎么了?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵员寇,是天一觀的道長弄慰。 經常有香客問我第美,道長,這世上最難降的妖魔是什么曹动? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任斋日,我火速辦了婚禮,結果婚禮上墓陈,老公的妹妹穿的比我還像新娘恶守。我一直安慰自己,他們只是感情好贡必,可當我...
    茶點故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布兔港。 她就那樣靜靜地躺著,像睡著了一般仔拟。 火紅的嫁衣襯著肌膚如雪衫樊。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天利花,我揣著相機與錄音科侈,去河邊找鬼。 笑死炒事,一個胖子當著我的面吹牛臀栈,可吹牛的內容都是我干的。 我是一名探鬼主播挠乳,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼权薯,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了睡扬?” 一聲冷哼從身側響起盟蚣,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎卖怜,沒想到半個月后屎开,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡马靠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年牍戚,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片虑粥。...
    茶點故事閱讀 40,146評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖宪哩,靈堂內的尸體忽然破棺而出娩贷,到底是詐尸還是另有隱情,我是刑警寧澤锁孟,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布彬祖,位于F島的核電站茁瘦,受9級特大地震影響,放射性物質發(fā)生泄漏储笑。R本人自食惡果不足惜甜熔,卻給世界環(huán)境...
    茶點故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望突倍。 院中可真熱鬧腔稀,春花似錦、人聲如沸羽历。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽秕磷。三九已至诵闭,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間澎嚣,已是汗流浹背疏尿。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留易桃,地道東北人褥琐。 一個月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像颈抚,于是被迫代替她去往敵國和親踩衩。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,107評論 2 356

推薦閱讀更多精彩內容