Android Studio使用指南(Windows/Linux)

本文發(fā)表于KuTear's Blog,轉(zhuǎn)載請注明

Android Studio
Android Studio

by KuTear

注: keymap調(diào)為eclipse模式(File > Settings > Keymap > Eclipse)

基本的快捷鍵

搜索相關(guān)

  • 函數(shù)/變量的引用(Ctrl+G)
  • 字段搜索(Ctrl+H)
  • 文件名搜索(類,XML) (Ctrl+Shift+R)
  • 類名搜索(Ctrl+Shift+T)
  • 通用搜索(文件,字段,類) (Double Shift)
  • 文件內(nèi)字段搜索(Shift+f)
  • 文件內(nèi)方法/變量搜索(Ctrl+O)

調(diào)試相關(guān)

  • Debug模式運(yùn)行(Shift+Alt+D)
  • 對已運(yùn)行程序啟用調(diào)試(默認(rèn)無,需配置)
  • 執(zhí)行進(jìn)入函數(shù)內(nèi)部(F5)
  • 執(zhí)行不進(jìn)入函數(shù)內(nèi)部(F6)
  • 函數(shù)內(nèi)部直接跳到調(diào)用處(F7)
  • 跳到下一個(gè)斷點(diǎn)(F8)
  • 跳到光標(biāo)處(Ctrl+R)
  • 計(jì)算值(Ctrl+U)
    Android Debug
    Android Debug

Git相關(guān)

  • 添加文件追蹤(Ctrl+Alt+A) 注:同QQ截圖沖突
  • Push到服務(wù)器(Ctrl+Shift+K)

其他常用快捷鍵

  • 快速功能查找(Ctrl+Shitf+A)
  • 快速實(shí)現(xiàn)接口(Alt+Shift+P)
  • 復(fù)寫方法/構(gòu)造器/Setter And Getter等(Alt+Insert)
  • 運(yùn)行程序(Shift+Alt+X)
  • Android Studio全屏模式(需配置)
  • 拷貝光標(biāo)所在行到下一行(Ctrl+Win+Alt+↓)
  • 雙斜杠注釋(Ctrl+/)
  • (/* */)注釋(Ctrl+Shilt+/)
  • 快速導(dǎo)入包,實(shí)現(xiàn)接口(Alt+Enter)
  • 文件/字段/方法重命名(Ctrl+Shift+R)
  • 類繼承關(guān)系(F4)
  • 最近打開/最近編輯(Ctrl+E/Ctrl+Shift+E)
  • 關(guān)閉當(dāng)前文件/全部文件(Ctrl+F4/Ctrl+Shift+F4(Ctrl+Shift+W))
  • 在引用處查看方法/類的實(shí)現(xiàn)(Ctrl+Shift+i)
  • 去除無用導(dǎo)入(Ctrl+Shift+O)
  • 代碼格式化(Ctrl+Alt+L/Ctrl+Shitf+F) 注:Ctrl+Alt+L與Ubuntu鎖屏鍵沖突,Ctrl+Shitf+F與一般輸入法(搜狗)的簡繁切換沖突
  • 方法/字段的說明查看(Shift+Ctrl+Space/F2)
  • 返回至上次瀏覽的位置(Alt+Left/Right)
  • 大小寫切換(Ctrl+Shift+U)
  • 硬編碼提取到資源文件(Alt+Enter)
  • 類切換(Ctrl+Tab)
  • {}的切換(Ctrl+[/])

快捷鍵與Live template的定制

快捷鍵設(shè)置

  • 這里以前面的Android Studio全屏模式為例來說明

    根據(jù)名字搜索(full screen)



    添加快捷鍵,注意不要沖突



    保存設(shè)置

Live template

  • 自帶模板

在Eclipse編寫主函數(shù)

public static void main(String[] agrs){
  ...
}

的時(shí)候,我們只需要輸入main+Enter鍵就會生成以上代碼,因?yàn)樗褪且粋€(gè)模板,始終的都不會改變.在Android Studio/IDEA中同樣有該功能,只不過輸入的內(nèi)容有所改變.當(dāng)輸入psvm+Enter鍵就回生成以上代碼.
Android Studio中還內(nèi)置了很多模板



比如Log.X(...)系列,findViewById(...),以及for(...)等等.

  • 自定義模板

下面我以Log來做說明.
在我們的項(xiàng)目中一般不會直接使用Log來打印日志,而是需要給它一個(gè)可控的開關(guān),在正式版中把日志信息關(guān)掉,只在開發(fā)版中打開日志.

public class JLog{
 public static final boolean isDebug = true;
 public static void d(String tag,Object obj){
   if(isDebug){
   Log.d(tag,obj==null?"Null":obj.toString());
   }
 }
}

新建模板


在代碼中鍵入jlogd+Enter就會自動生成

JLog.d(TAG,);

自需要你添加obj對象即可,使用模板會大量減少代碼的輸入,減少程序員的工作量.

對于上文中的TAG對象,我習(xí)慣與在創(chuàng)建類的時(shí)候就通過模板自動生成了TAG常量,如果你不是很習(xí)慣這種方式,可以給TAG指定為當(dāng)前類的名字.


具體步驟如下
<video id="video" controls="" preload="none" poster="https://o4dj02fnq.qnssl.com/2016/07/17/android_studio.png">
<source id="ogv" src="https://o4dj02fnq.qnssl.com/2016/07/17/android_stdio_template_6.ogv" type="video/ogg">
</video>
具體的變量名稱可以參考Live Template Variables

調(diào)試與分析

代碼調(diào)試

啟動調(diào)試的兩種方式

  • Debug模式啟動
  • app啟動之后attach

日志過濾

  • 等級過濾
  • tag名字過濾 [系統(tǒng)日志(如Activity的啟動會有ActivityManager)]

調(diào)試

在項(xiàng)目開發(fā)過程中,服務(wù)器返回的數(shù)據(jù)可能只是一個(gè)模擬的數(shù)據(jù),它覆蓋的面有限,比如一款產(chǎn)品包含預(yù)售,在售,缺貨等等狀態(tài),但是這是服務(wù)端開發(fā)人員并沒有完成整個(gè)開發(fā),而是僅提供一個(gè)模擬的數(shù)據(jù),而且僅是在售狀態(tài).客戶端會根據(jù)狀態(tài)設(shè)置不同的展示,比如在非在售是按鈕置灰等.

這時(shí)我們就可以在調(diào)試的時(shí)候改變某些字段的值來達(dá)到覆蓋各個(gè)情形.

斷點(diǎn)類型

  • 普通斷點(diǎn)
  • 條件斷點(diǎn)
  • 日志斷點(diǎn)
  • 方法斷點(diǎn)
  • 異常斷點(diǎn)

其他附帶工具的使用

Dump Java Heap

Lint

MAT

Lint

Shallow Size是對象本身占據(jù)的內(nèi)存的大小,不包含其引用的對象月腋。對于常規(guī)對象(非數(shù)組)的Shallow Size由其成員變量的數(shù)量和類型來定昼浦,而數(shù)組的ShallowSize由數(shù)組類型和數(shù)組長度來決定,它為數(shù)組元素大小的總和藻雌。
Retained Size=當(dāng)前對象大小+當(dāng)前對象可直接或間接引用到的對象的大小總和。(間接引用的含義:A->B->C,C就是間接引用) ,并且排除被GC Roots直接或者間接引用的對象

Allocation Tracking

Lint

Lint

代碼中標(biāo)黃的部分
啟動: Analyze>Inspect Code

Lint

插件推薦

ADB idea

Adds the following ADB commands to Android Studio and Intellij:
- ADB Uninstall App
- ADB Kill App
- ADB Start App
- ADB Restart App
- ADB Clear App Data
- ADB Clear App Data and Restart

提供app卸載,app數(shù)據(jù)清理,app重啟等功能,使得我們不再需要在手機(jī)上進(jìn)入app詳情頁面進(jìn)行數(shù)據(jù)清理等工作.

Android Parcelable code genertor

Plugin which generates Android Parcelable boilerplate code for you.
自動生成序列化相關(guān)函數(shù)

參考鏈接

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末潘酗,一起剝皮案震驚了整個(gè)濱河市瞭空,隨后出現(xiàn)的幾起案子揪阿,更是在濱河造成了極大的恐慌,老刑警劉巖咆畏,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件南捂,死亡現(xiàn)場離奇詭異,居然都是意外死亡旧找,警方通過查閱死者的電腦和手機(jī)溺健,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來钮蛛,“玉大人鞭缭,你說我怎么就攤上這事∥和牵” “怎么了岭辣?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長甸饱。 經(jīng)常有香客問我沦童,道長,這世上最難降的妖魔是什么叹话? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任偷遗,我火速辦了婚禮,結(jié)果婚禮上渣刷,老公的妹妹穿的比我還像新娘鹦肿。我一直安慰自己,他們只是感情好辅柴,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布箩溃。 她就那樣靜靜地躺著瞭吃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪涣旨。 梳的紋絲不亂的頭發(fā)上歪架,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天,我揣著相機(jī)與錄音霹陡,去河邊找鬼和蚪。 笑死,一個(gè)胖子當(dāng)著我的面吹牛烹棉,可吹牛的內(nèi)容都是我干的攒霹。 我是一名探鬼主播,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼浆洗,長吁一口氣:“原來是場噩夢啊……” “哼催束!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起伏社,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤抠刺,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后摘昌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體速妖,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年聪黎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了罕容。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,110評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡稿饰,死狀恐怖杀赢,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情湘纵,我是刑警寧澤,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布滤淳,位于F島的核電站梧喷,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏脖咐。R本人自食惡果不足惜铺敌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望屁擅。 院中可真熱鬧偿凭,春花似錦、人聲如沸派歌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至匾嘱,卻和暖如春斤斧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背霎烙。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工撬讽, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人悬垃。 一個(gè)月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓游昼,卻偏偏與公主長得像,于是被迫代替她去往敵國和親尝蠕。 傳聞我的和親對象是個(gè)殘疾皇子烘豌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評論 2 355

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