● 如何開始使用Android Studio IDE
● 如何導(dǎo)航及使用Android Studio
● 如何使用Git進(jìn)行版本控制
● 如何使用Gradle
● 如何使用嶄新的Android Wear框架
● 如何使用Android Studio調(diào)試代碼
● 如何管理應(yīng)用項(xiàng)目
● 如何測(cè)試應(yīng)用
● 如何分析并重構(gòu)代碼
● 如何定制Android Studio
● 如何開始使用Android Studio IDE
● 如何導(dǎo)航及使用Android Studio
● 如何使用Git進(jìn)行版本控制
● 如何使用Gradle
● 如何使用嶄新的Android Wear框架
● 如何使用Android Studio調(diào)試代碼
● 如何管理應(yīng)用項(xiàng)目
● 如何測(cè)試應(yīng)用
● 如何分析并重構(gòu)代碼
● 如何定制Android Studio
前 言
大約5.3億年前,在那個(gè)地質(zhì)學(xué)家稱之為“寒武紀(jì)大爆發(fā)”的時(shí)代,包括現(xiàn)存所有門在內(nèi)的大量物種在短短100萬年的時(shí)間迅速出現(xiàn)——而這對(duì)于地質(zhì)學(xué)時(shí)間來說僅僅是一眨眼工夫。科學(xué)家們對(duì)于此現(xiàn)象一直感到非常驚訝,達(dá)爾文自己都認(rèn)為“寒武紀(jì)大爆發(fā)”發(fā)生如此之快,甚至讓他的自然進(jìn)化論產(chǎn)生了疑點(diǎn)。今天,我們正在經(jīng)歷著科技領(lǐng)域的“寒武紀(jì)大爆發(fā)”。美國勞工統(tǒng)計(jì)局預(yù)測(cè)現(xiàn)在的高中畢業(yè)生在其一生中將從事11份工作,而這種職業(yè)生涯短暫現(xiàn)象主要?dú)w因于科技的快速變化1。
技術(shù)會(huì)衍生出更多的技術(shù),而新的技術(shù)也正在加速發(fā)展。有些新技術(shù)幾年之后依然會(huì)存在,但大多數(shù)將會(huì)消失。沒有比投入時(shí)間和精力去掌握一門已經(jīng)過時(shí)或者效用短暫的新技能更糟糕的事情了。我們編寫本書是因?yàn)橄嘈牌渲泻w的工具和技術(shù)將會(huì)留存下來,而且值得你為之投入。
小即是美
摩爾定律是無情的,它指出CPU的處理能力大約每18個(gè)月會(huì)翻一倍。在過去幾年里,筆記本電腦已經(jīng)達(dá)到了與體積更大的桌面電腦相同的性能。筆記本電腦和平板電腦占據(jù)了2014年P(guān)C銷售額的81%2,而且銷量還會(huì)繼續(xù)增長,相反桌面電腦的銷量將會(huì)下滑。沒有哪個(gè)人或組織能夠阻止或逆轉(zhuǎn)這種趨勢(shì)——這是經(jīng)濟(jì)規(guī)律的力量,是個(gè)體選擇集聚的結(jié)果。筆記本電腦在未來大約10年將會(huì)是腦力工作者的首選工具。然而,一場(chǎng)悄無聲息的革命正在發(fā)生,它將會(huì)很快推翻全能的筆記本電腦。大約到2025年,或者可能更早,我們的智能手機(jī)將會(huì)達(dá)到與筆記本電腦相同的性能——也就是說,更大體積的外形已經(jīng)不再具備任何性能優(yōu)勢(shì)了。最終,我們的移動(dòng)電腦(Mobile Computer,MC)將用于大多數(shù)計(jì)算應(yīng)用,即使是那些你我現(xiàn)在認(rèn)為只能在筆記本電腦上完成的應(yīng)用。這場(chǎng)變革是可預(yù)見的,與推翻桌面電腦的變革一樣確定。同時(shí),你可以期望MC(換句話說,智能手機(jī)或平板電腦)開始發(fā)揮出和筆記本電腦一樣的功能,包括連接諸如鍵盤、顯示器和鼠標(biāo)等外圍設(shè)備。
PC時(shí)代即將結(jié)束,但MC時(shí)代其實(shí)更具個(gè)性化。不久,一系列新型可穿戴設(shè)計(jì)即將可用,例如手表、眼鏡和鞋子。我們預(yù)見在不久后的某一天,我們將會(huì)在身上穿著自己的電腦,并在顯示器、鍵盤和鼠標(biāo)這些外圍設(shè)備可用的地方連接它們。這將會(huì)是一個(gè)真正的個(gè)人電腦時(shí)代,盡管我們不大可能再這樣稱呼它了。
Android的優(yōu)勢(shì)
如果渴望成為一名Android開發(fā)者,那么你已經(jīng)做出了極好的選擇。在未來的10年里,這個(gè)不斷發(fā)展的世界上的數(shù)十億人都會(huì)來到線上。對(duì)于這些人中的大多數(shù),他們的第一部電腦將會(huì)是智能手機(jī),而這些智能手機(jī)中的大部分將會(huì)搭載Android系統(tǒng)3。我們的樂觀是有充分原因的,因?yàn)橐呀?jīng)有了大量可供推算的歷史數(shù)據(jù)。Gartner Group公司指出2015年將售出12.5億部Android設(shè)備4。在撰寫本書時(shí),Android獨(dú)占了超過四分之三的中國市場(chǎng)份額5,而中國消費(fèi)者在移動(dòng)設(shè)備上的投入是驚人的,一些人會(huì)在新款移動(dòng)設(shè)備上花費(fèi)70%的月薪,因?yàn)榛ヂ?lián)是參與全球經(jīng)濟(jì)的先決條件6。在絕對(duì)數(shù)量上,中國是最大的市場(chǎng),但我們能夠在所有發(fā)展中國家觀察到類似的趨勢(shì)。更進(jìn)一步,由于Android操作系統(tǒng)是開源免費(fèi)的,因此它幾乎總是電視游戲機(jī)、游戲系統(tǒng)、增強(qiáng)現(xiàn)實(shí)系統(tǒng)以及大量其他電子設(shè)備廠商的首選。
出于多種原因,Android將繼續(xù)鞏固其在全球市場(chǎng)的主導(dǎo)地位。Android的模塊化架構(gòu)允許進(jìn)行各種各樣的配置和定制。Android設(shè)備標(biāo)配的所有核心應(yīng)用均可以被任意數(shù)量的第三方應(yīng)用替代,這包括類似電話撥號(hào)器、電子郵件客戶端、瀏覽器甚至操作系統(tǒng)導(dǎo)航器等應(yīng)用。可用的Android設(shè)備有著各種各樣令人驚訝的形狀和功能,有Android增強(qiáng)現(xiàn)實(shí)眼鏡、Android游戲機(jī)(Ouya是最著名的)、Android手表、各種尺寸的Android平板電腦,當(dāng)然還有Android智能手機(jī)。
Android的核心技術(shù)毫不遜色于它的主要競(jìng)爭(zhēng)者。Android的包容性和開源許可證已經(jīng)吸引了大量盟友,包括三星——全球最具創(chuàng)新性的公司之一。免費(fèi)7和可定制的操作系統(tǒng)意味著Android設(shè)備廠商可以專注于向市場(chǎng)上推出優(yōu)秀的產(chǎn)品,而高度競(jìng)爭(zhēng)的Android設(shè)備市場(chǎng)也會(huì)持續(xù)生產(chǎn)出廉價(jià)、高質(zhì)量且結(jié)構(gòu)上開放的設(shè)備。
Android Studio是革命性的
作為一名腦力勞動(dòng)者,工具的選擇極其重要。我們總是在尋求可以提高生產(chǎn)效率并能自動(dòng)完成工作的工具。某些工具有著顯而易見的好處,人們會(huì)立刻采納它。Android Studio就是一款這樣的工具。
2013年在Google I/O預(yù)發(fā)布Android Studio幾天之后,我們就接觸了它。在那以前,我們?cè)趯I(yè)領(lǐng)域和教學(xué)時(shí)均使用Android開發(fā)者工具(Android Developer Tool,ADT)。ADT是一個(gè)Android開發(fā)環(huán)境,內(nèi)置于一個(gè)稱為Eclipse的開源集成開發(fā)環(huán)境(IDE)中。雖然Android Studio仍處于早期預(yù)發(fā)布階段,但我們已開始在專業(yè)領(lǐng)域內(nèi)使用Android Studio。
Android Studio是JetBrains和Google合作的產(chǎn)物。Android Studio基于JetBrain的IntelliJ構(gòu)建,因此其功能是IntelliJ的超集。能夠使用IntelliJ做到的大多數(shù)事情,都可以在Android Studio中完成。Android Studio是革命性的,因?yàn)樗鞒袒薃ndroid開發(fā)過程并讓Android開發(fā)比以前更加容易接近8。Android Studio目前是Android的官方IDE。
Android工具生態(tài)系統(tǒng)
Android是一個(gè)有著自身工具生態(tài)系統(tǒng)支持的技術(shù)平臺(tái)。緊隨Android Studio之后,Git是Android生態(tài)系統(tǒng)中下一個(gè)最重要的工具。Git是一款分布式的源代碼管理工具,它正在迅速成為標(biāo)準(zhǔn),不僅是在移動(dòng)開發(fā)領(lǐng)域,而是在整個(gè)軟件工程領(lǐng)域。我們所有的移動(dòng)開發(fā)項(xiàng)目均使用Git來做版本控制,沒有例外。Git足可以用一本書來介紹,但幸運(yùn)的是,你無須了解Git的所有功能就可以熟練地使用它。Android Studio包含優(yōu)秀的、全功能的且已集成的Git工具,它有著令人印象深刻的圖形用戶界面。本書涵蓋了成為高效Git用戶所需要了解的特性,如果想要深入掌握關(guān)于這個(gè)不可或缺工具的知識(shí),我們?yōu)槟阒赋隽诉M(jìn)一步學(xué)習(xí)所需的資源。
Android生態(tài)系統(tǒng)中的另一個(gè)重要工具是Gradle。Gradle是一款類似于Ant和Maven的構(gòu)建工具,它允許你管理庫和庫項(xiàng)目、運(yùn)行儀器測(cè)試以及創(chuàng)建條件構(gòu)建。Android Studio在庫管理方面本身已經(jīng)很不錯(cuò)了,但Gradle使得此項(xiàng)任務(wù)更加便捷。與Git一樣,Gradle已經(jīng)完全集成到Android Studio,而且擁有令人印象深刻的界面,使得用戶能夠圖形化地檢查Gradle文件并監(jiān)測(cè)Gradle構(gòu)建過程的輸出。
Android和Java
如果在沒有充分了解Java的情況下嘗試在Android Studio中開發(fā)Android App,那么你將會(huì)遭遇挫折。出于諸多原因,Java是一門極其有用且流行的編程語言。或許Java流行的最重要原因是其內(nèi)存托管機(jī)制。內(nèi)存托管意味著程序員不必考慮釋放堆內(nèi)存,也不必?fù)?dān)心內(nèi)存泄漏。在內(nèi)存托管環(huán)境中進(jìn)行開發(fā)的程序員通常更高效,而且程序的運(yùn)行時(shí)錯(cuò)誤會(huì)更少。和Java類似,Android也是一種內(nèi)存托管的編程環(huán)境。托管內(nèi)存被證明是一個(gè)非常好的思路,使得微軟和蘋果公司均在各自的移動(dòng)開發(fā)平臺(tái)中采用了此模型9。
從ADT/Eclipse轉(zhuǎn)型
如果你是一位有經(jīng)驗(yàn)的Android開發(fā)者而且習(xí)慣使用ADT編程,那么你會(huì)收獲驚喜。幸運(yùn)的是,所有SDK工具(例如DDMS和Hierarchy Viewer)都依然可用,你將發(fā)現(xiàn)在Android Studio中很容易就可以訪問到它們。如果你是一位ADT用戶,那么你可能需要不斷地清理并重新構(gòu)建項(xiàng)目,以便資源能夠與源代碼同步(可怕的R.java同步錯(cuò)誤)。在使用Android Studio的這些日子里,我們一直沒有被這個(gè)問題困擾過。如果你是一位有經(jīng)驗(yàn)的ADT用戶,那么為了提升使用Android Studio的效率,你將需要學(xué)習(xí)一些鍵盤快捷鍵、熟悉Gradle以及適應(yīng)Android Studio的表現(xiàn)邏輯。總而言之,享受Android Studio帶來的強(qiáng)大功能和樂趣只需付出很小的代價(jià)。
本書約定
Android Studio在操作系統(tǒng)之間保持了高度的一致性。事實(shí)上,Windows和Linux中的用戶界面幾乎就是一樣的。不過,Mac OS用戶將會(huì)發(fā)現(xiàn)部分菜單的位置和鍵盤快捷鍵是不同的。當(dāng)涉及需要系統(tǒng)導(dǎo)航的內(nèi)容時(shí),我們使用Windows。不過,當(dāng)給出鍵盤快捷鍵時(shí),我們將同時(shí)包含Windows-Linux和Mac快捷鍵,中間使用豎線分隔(例如,Ctrl+K | Cmd+K)。我們會(huì)適時(shí)為Mac用戶給出提示、鏈接和其他資源。
源代碼
讀者在學(xué)習(xí)本書中的示例時(shí),可以手動(dòng)輸入所有的代碼,也可以使用本書附帶的源代碼文件。本書使用的所有源代碼都可以從http://www.apress.com下載,還可訪問www.tupwk.com.cn/downpage來下載源代碼。下載代碼后,只需要用自己喜歡的解壓縮軟件進(jìn)行解壓縮即可。
Adam Gerber,是Android Studio的早期使用者之一,他使用Android Studio開發(fā)專業(yè)的Android應(yīng)用并將其用于自己在芝加哥大學(xué)開設(shè)的Android應(yīng)用開發(fā)和技術(shù)創(chuàng)業(yè)等課程的教學(xué)。Adam是“芝加哥創(chuàng)新交流”的成員并從事技術(shù)和創(chuàng)業(yè)領(lǐng)域的咨詢工作。Adam擁有伊利諾伊大學(xué)工業(yè)設(shè)計(jì)本科學(xué)位以及位于巴黎的法國國立工藝學(xué)院管理科學(xué)博士學(xué)位。Adam的郵箱是gerber@uchicago.edu。
Clifton Craig,從事軟件工程師的工作已逾16載。他的經(jīng)驗(yàn)涵蓋了J2ME/BlackBerry、Android和iOS,以及基于JEE的后端系統(tǒng)。他參與過一些備受矚目的項(xiàng)目,包括MapQuest天然氣價(jià)格門戶網(wǎng)站、基于J2ME和Android的MapQuest移動(dòng)版、基于iOS的MapQuest移動(dòng)版以及Skype的iOS和Android版。他維護(hù)著一個(gè)技術(shù)博客(cliftoncraig.com),其中涵蓋各種軟件主題,從Android和Linux到iOS和OS X。他有著從軍經(jīng)歷而且是一位狂熱的自行車迷、虔誠的基督徒以及兩個(gè)天才小女孩的父親。
第1章 Android Studio入門 1
1.1 在Windows上安裝Java開發(fā)
工具包 1
1.1.1 在Windows上下載JDK 2
1.1.2 在Windows上執(zhí)行JDK向?qū)?3
1.1.3 配置Windows環(huán)境變量 4
1.2 在Mac上安裝Java開發(fā)工具包 7
1.2.1 在Mac上下載JDK 7
1.2.2 在Mac上執(zhí)行JDK向?qū)?8
1.2.3 在Mac上配置JDK版本 9
1.3 安裝Android Studio 10
1.4 創(chuàng)建第一個(gè)項(xiàng)目:HelloWorld 12
1.5 使用Android虛擬設(shè)備管理器 15
1.6 在AVD上運(yùn)行HelloWorld 16
1.7 在Andriod設(shè)備上運(yùn)行HelloWorld 17
1.8 小結(jié) 19
第2章 在Android Studio中遨游 21
2.1 編輯器 22
2.1.1 Editor選項(xiàng)卡 22
2.1.2 折疊線 23
2.1.3 標(biāo)記欄 23
2.1.4 工具按鈕 23
2.1.5 默認(rèn)布局 24
2.2 導(dǎo)航工具窗口 24
2.2.1 Project工具窗口 25
2.2.2 Stucture工具窗口 26
2.2.3 Favorites工具窗口 26
2.2.4 TODO工具窗口 27
2.2.5 Commander工具窗口 27
2.3 主菜單欄 27
2.4 工具欄 28
2.5 導(dǎo)航欄 28
2.6 狀態(tài)欄 28
2.7 常用操作 29
2.7.1 選擇文本 29
2.7.2 使用Undo和Redo 29
2.7.3 找到最近的文件 30
2.7.4 遍歷最近的導(dǎo)航操作 30
2.7.5 剪切、復(fù)制和粘貼 30
2.8 上下文菜單 31
2.9 獲取幫助 32
2.10 使用鍵盤導(dǎo)航 32
2.10.1 Select In命令 32
2.10.2 Class命令 33
2.10.3 File命令 33
2.10.4 Line命令 33
2.10.5 Related File命令 33
2.10.6 Last Edit Location命令 33
2.10.7 Type Hierarchy命令 34
2.10.8 Declaration命令 34
2.11 查找和替換文本 34
2.11.1 Find命令 34
2.11.2 Find in Path命令 34
2.11.3 Replace命令 35
2.11.4 Replace in Path命令 35
2.12 小結(jié) 35
第3章 在Android Studio中編程 37
3.1 使用代碼折疊 37
3.2 執(zhí)行代碼補(bǔ)全 39
3.3 注釋代碼 42
3.4 使用代碼生成 42
3.4.1 構(gòu)造函數(shù) 43
3.4.2 getter/setter 44
3.4.3 重載方法 44
3.4.4 toString()方法 45
3.4.5 代理方法 46
3.5 插入動(dòng)態(tài)模板 47
3.6 移動(dòng)代碼 48
3.7 設(shè)計(jì)代碼風(fēng)格 50
3.7.1 Auto-Indent Lines選項(xiàng) 51
3.7.2 Rearrange Code選項(xiàng) 51
3.7.3 Reformat Code選項(xiàng) 52
3.7.4 Surround With 52
3.8 小結(jié) 53
第4章 重構(gòu)代碼 55
4.1 重命名 56
4.2 修改簽名 57
4.3 類型遷移 58
4.4 移動(dòng) 58
4.5 復(fù)制 59
4.6 安全刪除 60
4.7 抽取 60
4.7.1 抽取變量 61
4.7.2 抽取常量 61
4.7.3 抽取字段 62
4.7.4 抽取參數(shù) 62
4.7.5 抽取方法 63
4.8 高級(jí)重構(gòu) 65
4.8.1 下推成員和上拉成員 65
4.8.2 使用代理代替繼承 66
4.8.3 封裝字段 67
4.8.4 封裝方法返回值 68
4.8.5 使用工廠方法代替構(gòu)造函數(shù) 69
4.8.6 將匿名類轉(zhuǎn)換為內(nèi)部類 69
4.9 小結(jié) 70
第5章 備忘錄實(shí)驗(yàn):第1部分 71
5.1 啟動(dòng)新項(xiàng)目 73
5.2 初始化Git倉庫 74
5.3 構(gòu)建用戶界面 77
5.3.1 使用可視化設(shè)計(jì)器 78
5.3.2 編輯布局的原始XML 78
5.3.3 添加視覺增強(qiáng)效果 83
5.3.4 向ListView添加條目 84
5.3.5 設(shè)置操作欄溢出菜單 86
5.4 持久化備忘錄 87
5.4.1 數(shù)據(jù)模型 87
5.4.2 SQLite API 89
5.5 小結(jié) 95
第6章 備忘錄實(shí)驗(yàn):第2部分 97
6.1 添加/刪除備忘 97
6.2 響應(yīng)用戶交互 100
6.3 提供多選上下文菜單 102
6.3.1 兼容較早的SDK 104
6.3.2 添加上下文操作模式 105
6.4 實(shí)現(xiàn)添加、編輯和刪除 107
6.4.1 設(shè)計(jì)自定義對(duì)話框 108
6.4.2 將設(shè)計(jì)轉(zhuǎn)換為代碼 108
6.4.3 創(chuàng)建自定義對(duì)話框 110
6.4.4 添加自定義圖標(biāo) 113
6.5 小結(jié) 115
第7章 Git入門 117
7.1 安裝Git 117
7.2 忽略文件 119
7.3 添加文件 120
7.4 克隆參考App:Reminders 121
7.4.1 分叉和克隆 121
7.4.2 使用Git日志 124
7.4.3 分支 125
7.5 在分支上開發(fā) 125
7.5.1 Git提交和分支 131
7.5.2 回退在哪里? 132
7.5.3 合并 136
7.5.4 Git重置修改歷史 138
7.5.5 Git變基 142
7.5.6 分離頭部 144
7.5.7 相對(duì)引用 146
7.5.8 在變基時(shí)解決沖突 148
7.5.9 Git遠(yuǎn)端 153
7.6 小結(jié) 154
第8章 設(shè)計(jì)布局 155
8.1 Activity 155
8.2 View和ViewGroup 156
8.2.1 預(yù)覽面板 157
8.2.2 寬度和高度 159
8.2.3 設(shè)計(jì)器模式 161
8.2.4 幀布局 161
8.2.5 線性布局 164
8.2.6 相對(duì)布局 166
8.2.7 嵌套布局 169
8.2.8 列表視圖 173
8.3 布局設(shè)計(jì)指導(dǎo)原則 180
8.3.1 覆蓋各種顯示尺寸 180
8.3.2 組合在一起 183
8.4 Fragment 190
8.5 小結(jié) 200
第9章 貨幣實(shí)驗(yàn):第1部分 201
9.1 Currencies規(guī)范 201
9.2 初始化Git倉庫 205
9.3 修改MainActivity的布局 207
9.4 定義顏色 211
9.5 為布局應(yīng)用顏色 212
9.6 創(chuàng)建并應(yīng)用樣式 213
9.7 創(chuàng)建JSONParser類 216
9.8 創(chuàng)建啟動(dòng)界面 217
9.9 獲取JSON格式的活動(dòng)貨幣代碼 220
9.10 啟動(dòng)MainActivity 223
9.11 小結(jié) 224
第10章 貨幣實(shí)驗(yàn):第2部分 225
10.1 定義MainActivity的成員 225
10.2 從bundle中解壓出貨幣代碼 226
10.3 創(chuàng)建選項(xiàng)菜單 227
10.4 實(shí)現(xiàn)選項(xiàng)菜單行為 229
10.5 創(chuàng)建spinner_closed布局 230
10.6 將mCurrencies綁定到選擇列表 231
10.7 將選擇列表行為代理給MainActivity 232
10.8 創(chuàng)建偏好管理器 234
10.9 根據(jù)給定代碼查找位置 235
10.10 從貨幣字符串中抽取代碼 236
10.11 實(shí)現(xiàn)共同偏好 237
10.12 按鈕單擊行為 239
10.13 保存開發(fā)者密鑰 240
10.14 獲取開發(fā)者密鑰 241
10.15 CurrencyConverterTask 242
10.15.1 onPreExecute() 246
10.15.2 doInBackground() 246
10.15.3 onPostExecute() 246
10.16 按鈕選擇器 247
10.17 啟動(dòng)圖標(biāo) 248
10.18 小結(jié) 249
第11章 測(cè)試和分析 251
11.1 創(chuàng)建新的儀器測(cè)試 251
11.1.1 定義SetUp()和TearDown()方法 252
11.1.2 在MainActivity中定義回調(diào) 254
11.1.3 定義一些測(cè)試方法 255
11.1.4 運(yùn)行儀器測(cè)試 257
11.1.5 修改Bug 258
11.2 使用Monkey 259
11.3 使用分析工具 260
11.3.1 檢查代碼 260
11.3.2 分析依賴 261
11.3.3 分析棧軌跡 262
11.4 小結(jié) 264
第12章 調(diào)試 265
12.1 日志 265
12.1.1 使用logcat 266
12.1.2 寫入Android日志 268
12.2 捕捉Bug! 268
12.2.1 使用交互式調(diào)試器 272
12.2.2 表達(dá)式求值 275
12.2.3 使用棧軌跡 277
12.2.4 探索交互式調(diào)試的工具窗口 280
12.2.5 使用斷點(diǎn)瀏覽器 281
12.2.6 條件斷點(diǎn) 283
12.3 小結(jié) 285
第13章 Gradle 287
13.1 Gradle語法 288
13.2 IntelliJ核心構(gòu)建系統(tǒng) 289
13.3 Gradle構(gòu)建概念 290
13.3.1 Gradle Android結(jié)構(gòu) 290
13.3.2 項(xiàng)目依賴 291
13.4 案例研究:使用Gradle的天氣預(yù)報(bào)項(xiàng)目 292
13.5 Android庫依賴 299
13.5.1 Java庫依賴 303
13.5.2 第三方庫 311
13.6 打開較舊的項(xiàng)目 313
13.7 小結(jié) 314
第14章 更多SDK工具 315
14.1 Android設(shè)備監(jiān)視器 315
14.1.1 線程監(jiān)視器 316
14.1.2 堆監(jiān)視器 317
14.1.3 分配跟蹤器 318
14.1.4 網(wǎng)絡(luò)統(tǒng)計(jì) 319
14.1.5 層次查看器 320
14.2 Android監(jiān)視器 323
14.2.1 內(nèi)存監(jiān)視器 323
14.2.2 方法跟蹤工具 324
14.2.3 分配跟蹤器 325
14.2.4 屏幕抓取 325
14.3 導(dǎo)航編輯器 327
14.3.1 設(shè)計(jì)用戶界面 328
14.3.2 導(dǎo)航編輯器初步 328
14.3.3 連接Activity 330
14.3.4 編輯菜單 331
14.4 終端 333
14.4.1 查詢?cè)O(shè)備 333
14.4.2 安裝APK 333
14.4.3 下載文件 333
14.4.4 上傳文件 333
14.4.5 端口轉(zhuǎn)發(fā) 334
14.5 Google云工具 334
14.5.1 創(chuàng)建HelloCloud前端 335
14.5.2 創(chuàng)建Java后臺(tái)模塊 337
14.5.3 組合在一起 339
14.5.4 部署到App Engine 343
14.6 小結(jié) 346
第15章 Android可穿戴設(shè)備實(shí)驗(yàn) 347
15.1 設(shè)置可穿戴設(shè)備環(huán)境 347
15.1.1 安裝設(shè)備驅(qū)動(dòng)程序 347
15.1.2 設(shè)置SDK工具 350
15.1.3 設(shè)置可穿戴虛擬設(shè)備 350
15.1.4 設(shè)置Android可穿戴設(shè)備硬件 353
15.2 創(chuàng)建MegaDroid項(xiàng)目 353
15.2.1 針對(duì)屏幕的優(yōu)化技術(shù) 355
15.2.2 構(gòu)建watch-face服務(wù) 356
15.2.3 初始化可繪制資源和樣式 358
15.2.4 管理手表更新 359
15.2.5 繪制界面 363
15.3 小結(jié) 367
第16章 定制Android Studio 369
16.1 代碼風(fēng)格 370
16.2 外觀、顏色和字體 372
16.3 鍵盤映射 374
16.4 宏 375
16.5 文件和代碼模板 375
16.6 菜單和工具欄 377
16.7 插件 378
16.8 小結(jié) 380