Android Studio 使用技巧

[TOC]

1.編輯器

1.1 編輯

操作名 快捷鍵 備注
復(fù)制行 ?+D
刪除行 ?+?
從復(fù)制歷史中粘貼 ?+?+V 設(shè)置歷史記錄數(shù):<br />Maximum number of contents to keep in clipboard
(取消)縮進(jìn) (?+)?
合并行 ?+J

1.2 編碼

操作名 快捷鍵 備注
補(bǔ)全 ?:只補(bǔ)全<br />?:補(bǔ)全替換<br />!:取反補(bǔ)全<br />.:點(diǎn)號(hào)補(bǔ)全<br />
image
(Call)代碼補(bǔ)全 ?+?+? <img src="https://jaeger.itscoder.com/assets/img/studio_tips/class_name_completion.gif" style="zoom:50%" />
補(bǔ)全當(dāng)前狀態(tài) ?+?+? <img src="https://camo.githubusercontent.com/acb8bd2b87c8f6df86b998f71204290c2f22b0ae/68747470733a2f2f6a61656765722e697473636f6465722e636f6d2f6173736574732f696d672f73747564696f5f746970732f31362d636f6d706c65746573746174656d656e742e676966"/>
覆蓋方法 ?+O Override
實(shí)現(xiàn)方法 ?+I implement
生成 ?+N getter/setter<br />toString<br />constructor<br />equals()/hashcode()<br />copyright
格式化代碼 ?+?+L
重排代碼 \color{RED}{?+?+R} 刪除Resume Program 其中一個(gè)
優(yōu)化引用 ?+?+O
大小寫(xiě)轉(zhuǎn)換 ?+?+U

1.3 選擇

操作名 快捷鍵 備注
列選擇 ?+選擇
擴(kuò)大選擇 ?+↑
縮小選擇 ?+↓
增加選擇下一個(gè) \color{NavyBlue}{?+?+→} Add selection for next occurrence
取消選擇one by one \color{NavyBlue}{?+?+←} unselect occurrence

1.4 查找/替換

操作名 快捷鍵 備注
查找操作 ?+?+A \color{Red}{查找所有可選的操作}
查找 ?+F
快速查找 選中,?+F
指定路徑查找 ?+?+F
Next/previous查找匹配 \color{NavyBlue}{(?+)F3} Find Next/Previous
選中所有查找結(jié)果 \color{NavyBlue}{?+?+F3} Select all occurrences
替換 ?+R
指定路徑替換 ?+?+R

2.導(dǎo)航

2.1 面板導(dǎo)航

操作名 快捷鍵 備注
打開(kāi)面板(數(shù)字) ?+num 1:Project<br />3:Find<br />4:Run<br />5:Debug<br />6:Logcat<br />7:Structure<br />8:Hierarchy<br />9:Version Control
打開(kāi)內(nèi)置 Terminal \color{Red}{?+T} 修改 update project
打開(kāi) Gradle \color{Red}{?+G}
選擇目標(biāo)位置 \color{NavyBlue}{?+1} (alt + F1被系統(tǒng)占用:cry:)
切換器 ?+? 在已打開(kāi)的 tab 和 file 間切換<br />按住?鍵,鍵入?關(guān)閉 tab / file
(隱藏工具窗口并)回到編輯器 (?+)?
最近訪問(wèn)文件 ?+E
上一個(gè)工具窗口 F12

2.2 代碼導(dǎo)航

2.2.1 文件內(nèi)跳轉(zhuǎn)
操作名 快捷鍵 備注
向后跳一個(gè)單詞 ?+→
向前跳一個(gè)單詞 ?+←
跳到行首 fn+←
跳到行尾 fn+→
跳到上/下一個(gè)方法/內(nèi)部類 ?+↑/↓ <img src="https://jaeger.itscoder.com/assets/img/studio_tips/02-move_between_methods.gif" style="zoom:50%" />
上一個(gè)光標(biāo)位置 ?+?+←
上一個(gè)編輯位置 ?+?+?
定位到行 ?+L
跳轉(zhuǎn)到錯(cuò)誤代碼 F2
文件結(jié)構(gòu) ?+F12
2.2.2 跨文件跳轉(zhuǎn)
操作名 快捷鍵 備注
跳轉(zhuǎn)到父類/父類方法 ?+U
跳轉(zhuǎn)到聲明 ?+B 沒(méi)在聲明處:跳轉(zhuǎn)到聲明
跳轉(zhuǎn)到實(shí)現(xiàn) ?+?+B 接口/抽象類/方法
跳轉(zhuǎn)到相關(guān)文件 ?+?+↑ 跳轉(zhuǎn)到布局與代碼相關(guān)文件,Kotlin 暫時(shí)無(wú)效
2.2.2 跨文件導(dǎo)航
操作名 快捷鍵 備注
導(dǎo)航到文件 ?+?+O FileName:lineNum 可導(dǎo)航到文件內(nèi)行數(shù)
導(dǎo)航到類 ?+O 同上
導(dǎo)航到symbol<br />(field,method,file) ?+?+O 對(duì)不知道文件名的方法和變量或者想一步到位很有效<br />(kotlin 擴(kuò)展方法)

3.分析

操作名 快捷鍵 備注
分析面板 \color{NavyBlue}{?+?+A}
查看使用 ?+F7
顯示使用 ?+?+F7
指定路徑查看使用 ?+?+?+F7
高亮一切 ?+?+F7 \color{NavyBlue}{(?+)F4}上/下一個(gè)<br />為
查看工程內(nèi)使用 ?+B \color{RedOrange}{當(dāng)光標(biāo)在聲明處}
查看類型層級(jí) ?+H
查看方法層級(jí) ?+?+H
查看Context信息 ?+?+Q 深入源碼不知道位置的時(shí)候
快速查看方法定義 ?+? 快速查看方法定義,不用跳轉(zhuǎn)
分析數(shù)據(jù)流傳入/出 Menu → Analyze → Analyze Data Flow to/from Here<br /><img src="https://jaeger.itscoder.com/assets/img/studio_tips/31-analyzedataflow.gif" style="zoom:50%" />
堆棧分析 Menu → Analyze → Analyze Stacktrace<br /><img src="https://jaeger.itscoder.com/assets/img/studio_tips/30-analyzestacktrace.gif" style="zoom:50%" />

4.運(yùn)行/調(diào)試

4.1 斷點(diǎn)

操作名 快捷鍵 備注
查看斷點(diǎn) ?+?+F8
單次斷點(diǎn) ?+鼠標(biāo)左鍵 觸發(fā)一次后刪除斷點(diǎn)
(取消)禁用斷點(diǎn) ?+鼠標(biāo)左鍵<br />?+F8 在已有斷點(diǎn)上操作,再次操作取消禁用
條件斷點(diǎn) 條件滿足時(shí)觸發(fā)<br /><img src="https://jaeger.itscoder.com/assets/img/studio_tips/22-conditionalbreakpoint.gif" style="zoom:50%" />
日志斷點(diǎn) <img src="https://jaeger.itscoder.com/assets/img/studio_tips/23-loggingbreakpoints.gif" style="zoom:50%" />
異常斷點(diǎn) View BreakPoints-><br />選擇 Java Exception Breakpoints-><br />add -> Java exception breakpoint
字段觀察斷點(diǎn) 在字段定義處打斷點(diǎn),可勾選<br />Field Initialization<br />Field access<br />Field modification<br />

4.2 執(zhí)行

操作名 快捷鍵 備注
Attach debugger to Android Process ?+?+F8 無(wú)需重新 debug 運(yùn)行
運(yùn)行 Run ?+R
調(diào)試 Debug ?+D
Run 當(dāng)前文件 ?+?+R Run context configuration
Debug 當(dāng)前文件 ?+?+D Debug context configuration
Stop ?+F2
恢復(fù)執(zhí)行 F9
光標(biāo)返回到執(zhí)行點(diǎn) ?+F10
單步調(diào)試 F8
調(diào)試進(jìn)入方法 F7 只能進(jìn)入自己寫(xiě)的方法
強(qiáng)制調(diào)試進(jìn)入方法 ?+?+F7 進(jìn)入系統(tǒng)層級(jí)方法
跳出方法 ?+F8
debug 到光標(biāo)處 ?+F9 "恢復(fù)執(zhí)行"直到光標(biāo)行<br />(光標(biāo)等于一個(gè)臨時(shí)斷點(diǎn))
丟棄當(dāng)前幀(重新執(zhí)行方法) \color{NavyBlue}{F10} 重新執(zhí)行方法<br />\color{RedOrange}{入?yún)⒈3植蛔儅<br />\color{RedOrange}{Field 改變不會(huì)恢復(fù)}

4.3調(diào)試

操作名 快捷鍵 備注
設(shè)置(變量)值 F2 為變量賦值
計(jì)算表達(dá)式值 ?+F8
快速計(jì)算表達(dá)式值 ?+?+F8 光標(biāo)放在表達(dá)式上或者選中表達(dá)式
審查 ?+鼠標(biāo)左鍵<br />審查變量或代碼<br />當(dāng)審查表達(dá)式時(shí)≈快速計(jì)算表達(dá)式值
標(biāo)記對(duì)象 給變量打 Tag,便于從多個(gè)相似對(duì)象中辨認(rèn)
image
禁用全部斷點(diǎn) \color{NavyBlue}{F11} \color{RedOrange}{僅在 debug 過(guò)程中有效}

Debug 設(shè)置:

調(diào)試工具欄: Settings

  • Show Values Inline

選中后啟動(dòng)內(nèi)聯(lián)調(diào)試功能,允許在編輯器中觀察執(zhí)行過(guò)的變量的值.

  • Show Method Return Values

選中后會(huì)顯示上次執(zhí)行方法的返回值.

  • Sort values alphabetically

選中后窗口中的變量值按字母的順序排列.

  • Unmute breakpoints on session finish

當(dāng)一個(gè)調(diào)試會(huì)話完成后,會(huì)重新啟用所有禁用的斷點(diǎn).搭配"禁用全部斷點(diǎn)",達(dá)到某一次直接跳過(guò)接下來(lái)所有 Debug 的作用

5.重構(gòu)

操作名 快捷鍵 備注
重構(gòu)面板 ?+T 提取抽象類<br />提取接口<br />下放到子類<br />上提到父類<br />移除未使用資源
重命名 ?+F6
更改簽名 ?+F6 攺變方法的名稱,攺函數(shù)的可訪問(wèn)性<br />對(duì)參數(shù)進(jìn)行添加、刪除酱床、重命名和重新排序
移動(dòng)行 ?+?+↑/↓
移動(dòng)代碼塊 ?+?+↑/↓ 選中的代碼塊,或者掛光標(biāo)定位在頭部
提取方法 ?+?+M <img src="https://jaeger.itscoder.com/assets/img/studio_tips/53-extractmethod.gif" style="zoom:50%" />
提取參數(shù) ?+?+P <img src="https://jaeger.itscoder.com/assets/img/studio_tips/52-extractparam.gif" style="zoom:50%" />
提取變量 ?+?+V Java,按下?+?選擇具體類型<br />Kotlin 可勾選 Var,具體類型
提取全局變量(Field) ?+?+F kotlin 需先有variable 才能提取 Field
提取常量 ?+?+C kotlin 不可用
內(nèi)置inline ?+?+N 對(duì)方法,字段,參數(shù),變量都有效<br /><img src="https://jaeger.itscoder.com/assets/img/studio_tips/54-inline.gif" style="zoom:60%" />
移動(dòng)類/靜態(tài)字段/靜態(tài)方法 F6 移動(dòng)內(nèi)部類到單獨(dú)文件<br />移動(dòng)單獨(dú)文件類為內(nèi)部類<br />移動(dòng)文件到其他包
包裹代碼 ?+?+T if/try/{}/()<br /><img src="https://jaeger.itscoder.com/assets/img/studio_tips/13-surround_with.gif" style="zoom:100%" />
移除代碼/包裹 ?+?+? <img src="https://jaeger.itscoder.com/assets/img/studio_tips/20-unwrap.gif" style="zoom:80%" />

6.版本控制

操作名 快捷鍵 備注
版本控制彈窗 ?+V <img src="https://jaeger.itscoder.com/assets/img/studio_tips/37-vcspopup.gif" style="zoom:60%" />
update project \color{RED}{?+?+T} 修改 Navigate to test
commit ?+K
push project ?+?+K
顯示 歷史 \color{NavyBlue}{?+?+H} Git show history
顯示"選中"歷史 \color{NavyBlue}{?+?+?+H} Git show history for selection
對(duì)比不同 ?+D 在 Local Changes 界面選中文件->?+D
與分支對(duì)比 右鍵-git-compare with branch<br /><img src="https://jaeger.itscoder.com/assets/img/studio_tips/38-comparewithbranch.gif" style="zoom:50%" />
與提交的版本對(duì)比 Git —> Compare with the Same Repository Version
還原修改 ?+?+Z

commit 設(shè)置勾選:

  • optimize imports
  • reformat code(\color{RedOrange}{多人協(xié)作需保持相同代碼格式化規(guī)則})
  • rearrange code(\color{RedOrange}{多人協(xié)作需保持相同代碼格式化規(guī)則})
  • perform code analysis
  • Alibaba Code Guidelines(需安裝插件)

7.其他

操作名 快捷鍵 備注
隱藏/顯示所有面板 ?+?+F12 源碼查看模式
與剪貼板對(duì)比 右鍵-compare with clipboard<br /><img src="https://jaeger.itscoder.com/assets/img/studio_tips/34-comparewithclipboard.gif" style="zoom:70%" />

設(shè)置:

  • 右下角顯示內(nèi)存使用

    Appearance -> Show memory indicator

  • 顯示行號(hào)

    Editor -> General -> Appearance -> Show line numbers

參考

  1. 你所不知道的Android Studio調(diào)試技巧
  2. Android Studio 小技巧/快捷鍵 合集
  3. Android Studio 使用藝術(shù)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市靡挥,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌芹血,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件幔烛,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡令蛉,警方通過(guò)查閱死者的電腦和手機(jī)狡恬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)祷安,“玉大人,你說(shuō)我怎么就攤上這事汇鞭∮棺罚” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵读整,是天一觀的道長(zhǎng)咱娶。 經(jīng)常有香客問(wèn)我,道長(zhǎng)膘侮,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮困曙,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蹦哼。我一直安慰自己要糊,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布局劲。 她就那樣靜靜地躺著,像睡著了一般鱼填。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上愤惰,一...
    開(kāi)封第一講書(shū)人閱讀 52,255評(píng)論 1 308
  • 那天赘理,我揣著相機(jī)與錄音,去河邊找鬼商模。 笑死,一個(gè)胖子當(dāng)著我的面吹牛凉倚,可吹牛的內(nèi)容都是我干的嫂沉。 我是一名探鬼主播,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼趟章,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了宏侍?” 一聲冷哼從身側(cè)響起蜀漆,我...
    開(kāi)封第一講書(shū)人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎绷耍,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體褂始,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡崎苗,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了胆数。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡宋欺,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出齿诞,到底是詐尸還是另有隱情骂租,我是刑警寧澤,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布但汞,位于F島的核電站,受9級(jí)特大地震影響私蕾,放射性物質(zhì)發(fā)生泄漏胡桃。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一翠胰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧斤富,春花似錦、人聲如沸满力。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)桐磁。三九已至讲岁,卻和暖如春衬以,著一層夾襖步出監(jiān)牢的瞬間看峻,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工互妓, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留坤塞,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓灼狰,卻偏偏與公主長(zhǎng)得像浮禾,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子盈电,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容