本書結(jié)合Android應(yīng)用開發(fā)的一些具體案例,由淺入深地闡述Android應(yīng)用開發(fā)的基礎(chǔ)知識、常用技巧和關(guān)鍵技術(shù),例如對一般Android書籍中難以見到的實現(xiàn)消息推送(不利用第三方平臺)、即時通信、服務(wù)器端接口編程等市場急需的重要開發(fā)技能進(jìn)行了較為細(xì)致的講解,以達(dá)到快速提升讀者編程水平和實際項目開發(fā)能力之目的。 全書分為基礎(chǔ)篇、提高篇、開發(fā)篇和拓展篇四個部分,共23章。 基礎(chǔ)篇(第1~9章),主要包含Android開發(fā)環(huán)境搭建(包括*新的Android Studio安裝與配置)、用戶界面設(shè)計、組件通信等內(nèi)容。 提高篇(第10~12章),包含百度地圖開發(fā)、ViewPager和PageAdapter等內(nèi)容。 開發(fā)篇(第13~18章),包含在手機客戶端解析JSON、消息推送、Android賬戶管理、MyBatis框架原理、Maven和Gradle等內(nèi)容。 拓展篇(第19~23章),包含即時通信、友盟統(tǒng)計及社會化組件、Android客戶端程序架構(gòu)、版本控制工具SVN和Git等內(nèi)容。
本書詳細(xì)介紹了Android Studio和Eclipse ADT兩種不同開發(fā)環(huán)境搭建(針對Google網(wǎng)站不易訪問);對Android客戶端程序架構(gòu)、實現(xiàn)消息推送、即時通信、服務(wù)器端json接口編程(Restful API)、在手機客戶端解析json、網(wǎng)絡(luò)多圖片異步下載、移動應(yīng)用數(shù)據(jù)統(tǒng)計分析等移動互聯(lián)網(wǎng)重要開發(fā)技術(shù)進(jìn)行了較為細(xì)致的講解。配套教學(xué)資源豐富,包含所有章節(jié)的PPT、程序源碼、習(xí)題解答、教學(xué)視頻、所需軟件工具及一個幫助學(xué)習(xí)本書的手機APP。
“北冥有魚,其名為鯤,鯤之大,不知其幾千里也。化而為鳥,其名為鵬,鵬之背,不知其幾千里也;怒而飛,其翼若垂天之云……天之蒼蒼,其正色邪?其遠(yuǎn)而無所至極邪?其視下也,亦若是則已矣。”
移動互聯(lián)網(wǎng)時代,Android為王。移動設(shè)備的市場份額中Android排名第一,應(yīng)用的下載次數(shù)達(dá)到近600億,每天有近幾十萬臺的Android設(shè)備售出。
移動計算帶來的社會巨變史無前例。蘋果以其天才的創(chuàng)新,使得iPhone在全球迅速有了數(shù)百萬名忠實“粉絲”,而Android作為第一個完整、開放、免費的手機平臺,使開發(fā)者在為其開發(fā)程序時擁有更大的自由。
由于Android發(fā)展迅速,導(dǎo)致了就業(yè)市場對Android開發(fā)人員的需求量猛增。然而更多企業(yè)需要的是擁有實踐經(jīng)驗的開發(fā)人員,同時高校Android教學(xué)相關(guān)書籍也非常缺乏。
本書的編者參與了多個Android商業(yè)項目的開發(fā),并將商業(yè)項目進(jìn)行精簡,成為高校教學(xué)更易用的實訓(xùn)項目,以達(dá)到培養(yǎng)高校學(xué)生提升Android開發(fā)實踐能力的目的。
本教材的特色之一是“行動體系的課程”向“學(xué)科體系課程”的滲透。從“學(xué)習(xí)情境”(問題情景)的假設(shè),到自己動手解決問題,應(yīng)該說是更多地帶有“行動體系課程”的特點。在思維層次上,由“感性認(rèn)識”到“理性認(rèn)識”的認(rèn)知方式更容易讓學(xué)生接受。(“行動體系的課程”提出源于德國高等教育領(lǐng)域,主張學(xué)生在行動中思考、學(xué)習(xí)、總結(jié),再上升為經(jīng)驗(理論)。)
本書的另一特色是項目課程設(shè)計。“項目課程”可追溯到17世紀(jì)和18世紀(jì),最早出現(xiàn)在意大利羅馬的建筑師學(xué)院,現(xiàn)已成為一種有著深厚理論基礎(chǔ)的課程模式。但實際往往是,源于企業(yè)的項目過大,無法遵照學(xué)習(xí)規(guī)律,因此需要重新按從易到難的順序設(shè)計項目系列。只有對實際項目進(jìn)行壓縮、簡化,而又具備一定程度的綜合性、針對性和復(fù)雜性,才能使學(xué)生獲得真實化、綜合化的職業(yè)能力。現(xiàn)在公開出版的眾多Android書籍中,所涉及的Android項目案例與真實的商業(yè)項目還是有相當(dāng)大的區(qū)別的。
本教材的特色之三是實訓(xùn)項目來源于真實的商業(yè)項目。
本教材的特色之四是配套教學(xué)資源豐富。
本書編者根據(jù)自身實際參與的真實商業(yè)項目,經(jīng)過精簡和提煉,精心編寫了2個教學(xué)案例:“3G商城”和“掌上蘇大”。本書主要以這兩個項目的教學(xué)貫穿整個課程教學(xué)的始末。為了教學(xué)方便,其間也穿插有其他小的項目,例如“開發(fā)百度地圖”、“Android客戶端實現(xiàn)推送”、“實現(xiàn)即時通信”、“課程表”等。實際上,這些小項目都可作為模塊,集成到“掌上蘇大”項目中。
需要說明的是,本書的定位是卓越工程師培養(yǎng)創(chuàng)新教材。不僅面向在校學(xué)生,而且面向廣大Android程序員、技術(shù)人員和培訓(xùn)機構(gòu)等。
編者也衷心希望廣大高校學(xué)生,通過精心閱讀和認(rèn)真學(xué)習(xí)本書內(nèi)容,能夠在一定程度上提高自身的就業(yè)能力。
給授課教師的教學(xué)建議
如下表所示,標(biāo)注“*”號的章節(jié)可作為可選章節(jié)。如果要針對高校學(xué)生實施教學(xué),正常教學(xué)課時可安排在48~82課時之間,根據(jù)具體情況,可靈活安排。
具體章節(jié) 建議課時 是否可選章節(jié) 可選章節(jié)
建議課時
第1章 開發(fā)環(huán)境搭建和程序開發(fā)基礎(chǔ) 2
第2章 用戶界面設(shè)計 6
第3章 組件通信 2
第4章 后臺服務(wù)與廣播消息 4
第5章 數(shù)據(jù)存儲與訪問 4
第6章 Android網(wǎng)絡(luò)應(yīng)用 4
第7章 圖形圖像處理 2
第8章 Fragment 2
第9章 Java并發(fā)編程 6
第10章 百度地圖開發(fā) 4
第11章 ViewPager和PageAdapter 2
*第12章 PostgreSQL 9 可選 6
第13章 在手機客戶端解析JSON 4
第14章 消息推送 4
*第15章 Android賬戶管理 可選 2
*第16章 MyBatis框架原理 可選 6
第17章 Maven和Gradle 2
*第18章 服務(wù)器端接口編程 可選 4
*第19章 即時通信 可選 4
*第20章 友盟統(tǒng)計及社會化組件 可選 2
*第21章 Android客戶端程序架構(gòu) 可選 4
*第22章 Java設(shè)計模式 可選 4
*第23章 版本控制工具——SVN和Git 可選 2
合計 48 34
給讀者的學(xué)習(xí)建議
若要成為高水平的Android程序員,編者給出的建議如下:
(1)首先將Java語言基礎(chǔ)打牢。可以認(rèn)真研讀《SCJP考試指南(考試號310-065)》(電子工業(yè)出版社)一書,把書上的題目盡可能都做一遍。
(2)認(rèn)真把本書的第9章Java并發(fā)編程搞清楚。因為Android客戶端編程一般都是并 發(fā)的。
(3)限于篇幅,本書對Java設(shè)計模式并未展開詳盡的闡述,推薦《設(shè)計模式之禪(第2版)》,通過該書比較深入地學(xué)習(xí)Java設(shè)計模式。同時多翻看項目源碼,但腦子里要琢磨設(shè)計模式。
(4)多看開源代碼。本書的第14章消息推送和第19章即時通信都涉及開源代碼。實際上,一些開源代碼比商業(yè)軟件代碼更復(fù)雜。
(5)在編程水平得到一定提高的基礎(chǔ)上,可學(xué)習(xí)Android系統(tǒng)源代碼。為更清楚、透徹地理解Java的自動內(nèi)存管理機制,可對Java虛擬機規(guī)范加以研究。
祝您早日成為Android編程高手!
編者分工與致謝
本書由韓冬負(fù)責(zé)擬定提綱和統(tǒng)稿,并編寫了第1章、第4章、第8~11章、第13~15章、第17章、第19~22章,魏慧編寫了第2~3章、第5~6章、第18章,胡沁涵編寫了第7章、第12章和第16章,張建編寫了第23章,賈俊鋮負(fù)責(zé)編寫附錄部分。蘇州大學(xué)計算機學(xué)院學(xué)生崔益欣、李昕、徐磊、任偉榮、朱銳、倪劍飛、王敦文、朱燦、李家強、崔盼盼、徐旺、夏鳴等協(xié)助負(fù)責(zé)該書稿的PPT、源代碼、習(xí)題解答和教學(xué)視頻的建設(shè),書稿中及程序中用到的圖片多由崔益欣同學(xué)提供。在這里向他們表示衷心的感謝!
本書提供了豐富的網(wǎng)絡(luò)教學(xué)資源包,包含所有章節(jié)的PPT、程序源碼、習(xí)題解答、教學(xué)視頻、所需軟件工具及一個幫助學(xué)習(xí)本書的手機APP。讀者可在華信教育資源網(wǎng)進(jìn)行下載。
鑒于作者水平有限,書中難免存在不足和錯誤之處,懇望讀者提出寶貴意見和建議,以便再版時改進(jìn)。
韓冬
2015年9月
韓冬,蘇州大學(xué)計算機學(xué)院副教授,同濟(jì)大學(xué)軟件碩士,所教授學(xué)生多名入職名企,其中包括阿里巴巴、華為、中科院電子所蘇州研究院、網(wǎng)易等。
第一部分 基 礎(chǔ) 篇
第1章 開發(fā)環(huán)境搭建和程序開發(fā)基礎(chǔ) 2
1.1 Android簡介 2
1.1.1 Android傳奇 2
1.1.2 Android體系結(jié)構(gòu) 3
1.2 搭建Android應(yīng)用開發(fā)環(huán)境 4
1.2.1 Android 4.4安裝 4
1.2.2 如何解決Android SDK無法
下載Package的問題 6
1.3 第一個Android程序 7
1.4 Android程序結(jié)構(gòu) 8
1.5 Android應(yīng)用的基本組件介紹 9
1.6 Activity的生命周期 10
1.7 程序調(diào)試 12
1.8 Android Studio 1.2正式版安
裝與配置 13
1.8.1 Windows 7 64位系統(tǒng)安裝
JDK并配置環(huán)境變量 13
1.8.2 Android Studio環(huán)境搭建 14
1.8.3 創(chuàng)建HelloWorld項目 19
1.9 相關(guān)閱讀材料 23
1.9.1 未來的夏娃 23
1.9.2 Andy Rubin的黯然離場:
他為何非走不可? 23
1.9.3 Andy Rubin早年歲月 24
1.10 本章小結(jié) 25
習(xí)題1 26
第2章 用戶界面設(shè)計 27
2.1 用戶界面基礎(chǔ) 27
2.2 常用控件 31
2.2.1 TextView和EditText 32
2.2.2 Button與ImageButton 33
2.2.3 單選按鈕RadioButton和
復(fù)選按鈕CheckBox 33
2.2.4 ImageView 33
2.2.5 ProgressBar 34
2.2.6 ScrollView 36
2.2.7 ListView 37
2.2.8 GridView 42
2.2.9 AlertDialog 42
2.3 界面布局 43
2.3.1 線性布局及android:
layout_weight屬性設(shè)置 43
2.3.2 幀布局 45
2.3.3 表格布局 45
2.3.4 相對布局 46
2.3.5 絕對布局 47
2.3.6 網(wǎng)格布局 48
2.4 消息提示 48
2.5 Handler消息傳遞機制 49
2.6 項目實戰(zhàn)――“3G商城”(一) 52
2.6.1 任務(wù)說明 52
2.6.2 項目講解 52
2.6.3 典型代碼及技術(shù)實現(xiàn) 53
2.7 相關(guān)閱讀材料:Android用戶界
面中單位的使用 59
2.8 本章小結(jié) 60
習(xí)題2 60
第3章 組件通信 61
3.1 Activity 61
3.1.1 Activity配置 61
3.1.2 啟動和關(guān)閉Activity 62
3.1.3 使用Bundle在Activity之間
交換數(shù)據(jù) 62
3.1.4 調(diào)用另一個Activity并
返回結(jié)果 63
3.2 Intent對象 64
3.3 發(fā)送并返回短信內(nèi)容舉例 67
3.4 本章小結(jié) 68
習(xí)題3 68
第4章 后臺服務(wù)與廣播消息 69
4.1 Service應(yīng)用 69
4.1.1 簡介 69
4.1.2 進(jìn)程內(nèi)服務(wù) 69
4.1.3 跨進(jìn)程服務(wù) 74
4.2 接收廣播消息 77
4.2.1 簡介 77
4.2.2 發(fā)送廣播 79
4.2.3 有序廣播 82
4.2.4 接收系統(tǒng)廣播消息 83
4.3 相關(guān)閱讀材料:Android開源庫
EventBus 83
4.4 本章小結(jié) 89
習(xí)題4 91
第5章 數(shù)據(jù)存儲與訪問 92
5.1 使用SharedPreferences 92
5.1.1 簡介 92
5.1.2 SharePreferences舉例 94
5.2 文件存儲 94
5.2.1 簡介 94
5.2.2 讀寫SD卡上的文件 95
5.2.3 文件存儲舉例 96
5.3 SQLite數(shù)據(jù)庫 96
5.3.1 簡介 96
5.3.2 手動創(chuàng)建SQLite數(shù)
據(jù)庫 96
5.3.3 SQLiteDatabase 98
5.4 數(shù)據(jù)共享 101
5.4.1 ContentProvider 101
5.4.2 創(chuàng)建數(shù)據(jù)提供者 102
5.4.3 使用數(shù)據(jù)提供者 103
5.4.4 ContentProvider舉例 103
5.5 項目實戰(zhàn)――課程表 104
5.5.1 任務(wù)說明 104
5.5.2 項目講解 105
5.5.3 典型代碼及技術(shù)要點 106
5.6 本章小結(jié) 109
習(xí)題5 109
第6章 Android網(wǎng)絡(luò)應(yīng)用 110
6.1 HTTP通信 110
6.2 Socket通信 115
6.3 使用WebView顯示網(wǎng)頁 119
6.4 項目實戰(zhàn)――查詢員工信息 123
6.4.1 任務(wù)說明 123
6.4.2 項目講解 123
6.4.3 典型代碼及技術(shù)要點 124
6.5 本章小結(jié) 126
習(xí)題6 127
第7章 圖形圖像處理 128
7.1 基本繪圖 128
7.1.1 準(zhǔn)備畫布(Canvas) 128
7.1.2 準(zhǔn)備畫筆(Paint) 129
7.1.3 位圖處理(Bitmap和
BitmapFactory) 129
7.2 2D繪圖 130
7.2.1 幾何圖形 130
7.2.2 文本 132
7.2.3 路徑 133
7.2.4 圖片 133
7.3 圖形特效處理 134
7.3.1 平移、旋轉(zhuǎn)、縮放、傾斜 134
7.3.2 扭曲 136
7.3.3 位圖著色器 137
7.4 綜合練習(xí) 138
7.4.1 任務(wù)說明 138
7.4.2 代碼實現(xiàn) 138
7.5 本章小結(jié) 140
習(xí)題7 140
第8章 Fragment 141
8.1 Fragment概述 141
8.2 Fragment的生命周期 141
8.3 Fragment使用 142
8.4 將Fragment加入Activity中 143
8.5 使用Fragment舉例 144
8.6 本章小結(jié) 146
習(xí)題8 147
第9章 Java并發(fā)編程 148
9.1 Java線程池簡介 148
9.2 Executor與ExecutorService 149
9.3 ThreadPoolExecutor 153
9.4 Future模式 157
9.5 項目實戰(zhàn)――“3G商城”(二) 161
9.5.1 任務(wù)說明 161
9.5.2 項目講解 161
9.5.3 典型代碼及技術(shù)要點 163
9.6 本章小結(jié) 173
習(xí)題9 173
第二部分 提 高 篇
第10章 百度地圖開發(fā) 176
10.1 Android地圖SDK 176
10.1.1 概述 176
10.1.2 申請密鑰 176
10.1.3 SimpleMapDemo 180
10.1.4 基礎(chǔ)地圖 183
10.1.5 事件監(jiān)聽 183
10.2 Android定位SDK 187
10.3 Android導(dǎo)航SDK 187
10.4 項目實戰(zhàn)――“開發(fā)百度地圖” 187
10.4.1 任務(wù)說明 187
10.4.2 項目講解 187
10.4.3 典型代碼及技術(shù)要點 190
10.5 本章小結(jié) 196
習(xí)題10 196
第11章 ViewPager和PageAdapter 198
11.1 ViewPager和PageAdapter 198
11.2 FragmentPageAdapter實現(xiàn)仿
QQ界面 200
11.3 仿網(wǎng)易新聞客戶端Tab標(biāo)簽實現(xiàn) 205
11.4 本章小結(jié) 208
習(xí)題11 208
第12章 PostgreSQL 9 209
12.1 PostgreSQL簡介 209
12.2 PostgreSQL 9的安裝與配置 209
12.2.1 安裝 209
12.2.2 使用pgAdmin III連接
PostgreSQL 209
12.3 數(shù)據(jù)庫的基本操作 210
12.3.1 創(chuàng)建數(shù)據(jù)庫 210
12.3.2 修改數(shù)據(jù)庫 211
12.3.3 刪除數(shù)據(jù)庫 211
12.4 數(shù)據(jù)表的基本操作 211
12.4.1 創(chuàng)建數(shù)據(jù)表 211
12.4.2 修改數(shù)據(jù)表 212
12.4.3 刪除數(shù)據(jù)表 212
12.5 插入、更新與刪除數(shù)據(jù) 212
12.5.1 插入 212
12.5.2 更新 213
12.5.3 刪除 214
12.6 數(shù)據(jù)查詢 214
12.6.1 查詢語句 214
12.6.2 單表查詢 215
12.6.3 集合函數(shù)查詢 217
12.6.4 連接查詢 218
12.6.5 子查詢 219
12.6.6 正則表達(dá)式查詢 220
12.6.7 別名 221
12.7 綜合練習(xí) 221
12.7.1 任務(wù)說明 221
12.7.2 具體實現(xiàn) 221
12.8 相關(guān)閱讀材料:數(shù)據(jù)備份
與還原 224
12.9 本章小結(jié) 225
習(xí)題12 225
第三部分 開 發(fā) 篇
第13章 在手機客戶端解析JSON 228
13.1 JSON簡介 228
13.2 服務(wù)器端生成JSON數(shù)據(jù) 228
13.3 在手機客戶端解析JSON 231
13.4 項目實戰(zhàn)――“3G商城”(三) 233
13.4.1 任務(wù)說明 233
13.4.2 項目講解 233
13.4.3 典型代碼及技術(shù)要點 235
13.5 本章小結(jié) 239
習(xí)題13 239
第14章 消息推送 240
14.1 Android消息推送機制 240
14.1.1 推送方式基礎(chǔ) 240
14.1.2 消息推送實現(xiàn)原理 240
14.2 Android平臺的消息推送實現(xiàn) 241
14.2.1 Push在Android平臺上
長連接的實現(xiàn) 241
14.2.2 使用Androidpn實現(xiàn)消
息推送 242
14.3 項目實戰(zhàn)――“Android客
戶端實現(xiàn)推送” 246
14.3.1 任務(wù)說明 246
14.3.2 項目講解 246
14.3.3 典型代碼及技術(shù)要點 249
14.4 相關(guān)閱讀材料 262
14.4.1 幾種常見的消息推送解決
方案 262
14.4.2 Androidpn所存在的一些
問題 263
14.5 本章小結(jié) 264
習(xí)題14 264
第15章 Android賬戶管理 265
15.1 賬戶管理相關(guān)類 265
15.2 使用OAuth 2.0來進(jìn)行鑒定 267
15.3 應(yīng)用程序如何將一個賬號注冊到
系統(tǒng)中 270
15.4 創(chuàng)建自定義賬戶示例 273
15.5 本章小結(jié) 275
習(xí)題15 275
第16章 MyBatis框架原理 276
16.1 MyBatis框架簡介 276
16.2 從JDBC到MyBatis 277
16.3 使用MyBatis進(jìn)行一次簡單
的SQL查詢 278
16.3.1 準(zhǔn)備工作 278
16.3.2 主要步驟 279
16.3.3 小結(jié) 282
16.4 配置文件說明 282
16.4.1 主配置文件 282
16.4.2 接口文件 285
16.4.3 SQL映射文件 286
16.4.4 動態(tài)SQL 288
16.5 MyBatis應(yīng)用 290
16.5.1 數(shù)據(jù)的增、刪、改、查 290
16.5.2 關(guān)聯(lián)數(shù)據(jù)的查詢 292
16.5.3 分頁數(shù)據(jù)的查詢 295
16.5.4 與Spring3集成 296
16.5.5 與Spring MVC集成 299
16.6 本章小結(jié) 301
習(xí)題16 301
第17章 Maven和Gradle 303
17.1 初識Maven 303
17.2 Maven的安裝和配置 305
17.3 Maven使用 308
17.4 坐標(biāo)和依賴 310
17.5 構(gòu)建支持Servlet 3.0的Maven Web
應(yīng)用 311
17.6 Gradle來了 314
17.7 本章小結(jié) 315
習(xí)題17 316
第18章 服務(wù)器端接口編程 317
18.1 JNDI數(shù)據(jù)源配置 317
18.2 Log4J與SLF4J 320
18.3 項目實戰(zhàn)――“3G商城”(四) 324
18.3.1 任務(wù)說明 324
18.3.2 項目講解 324
18.3.3 典型代碼及技術(shù)要點 325
18.4 MyBatis VS Hibernate 329
18.5 相關(guān)閱讀材料:Flexjson 334
18.6 本章小結(jié) 335
習(xí)題18 335
第四部分 拓 展 篇
第19章 即時通信 338
19.1 XMPP協(xié)議 338
19.2 openfire 341
19.2.1 openfire簡介 341
19.2.2 openfire安裝與配置 341
19.3 Smack簡介 343
19.4 項目實戰(zhàn)――“實現(xiàn)即時通信” 347
19.4.1 登錄openfire服務(wù)器 347
19.4.2 獲取好友列表 350
19.4.3 客戶端接收服務(wù)器發(fā)送的
消息 352
19.4.4 初步實現(xiàn)兩個客戶端通信 354
19.5 相關(guān)閱讀材料 359
19.5.1 將openfire源代碼導(dǎo)入
Eclipse 359
19.5.2 openfire插件開發(fā) 364
19.6 本章小結(jié) 367
習(xí)題19 367
第20章 友盟統(tǒng)計及社會化組件 368
20.1 友盟應(yīng)用統(tǒng)計分析 368
20.1.1 集成準(zhǔn)備 368
20.1.2 友盟統(tǒng)計分析示例 368
20.2 友盟社會化分享組件 372
20.3 本章小結(jié) 373
習(xí)題20 373
第21章 Android客戶端程序架構(gòu) 374
21.1 概述 374
21.2 項目實戰(zhàn)――“掌上蘇大” 374
21.2.1 任務(wù)說明 375
21.2.2 整體框架和運行主界面 375
21.2.3 Android全局對象
Application 376
21.2.4 整個應(yīng)用的線程終止異常
處理 377
21.2.5 程序執(zhí)行主要流程 378
21.2.6 推送的實現(xiàn) 381
21.2.7 整個應(yīng)用的后臺服務(wù)和廣播
接收機制 382
21.2.8 使用友盟第三方平臺對用戶
行為進(jìn)行分析 384
21.2.9 Android系統(tǒng)賬戶實現(xiàn) 385
21.2.10 其他 385
21.3 本章小結(jié) 385
習(xí)題21 385
第22章 Java設(shè)計模式 386
22.1 設(shè)計模式(Design Pattern)的分類
和設(shè)計原則 386
22.1.1 設(shè)計模式的分類 386
22.1.2 設(shè)計原則 386
22.2 創(chuàng)建模式(CreationalPattern) 387
22.2.1 工廠方法模式(Factory Method)和抽象工廠模式(Abstract
Factory) 387
22.2.2 單例模式(Singleton) 388
22.2.3 建造者模式(Builder) 388
22.2.4 原型模式(Prototype) 388
22.3 結(jié)構(gòu)模式(StructuralPattern) 389
22.3.1 適配器模式(Adapter)和裝飾
模式(Decorator) 389
22.3.2 代理模式(Proxy)和外
觀模式(Fa?ade) 390
22.3.3 橋接模式(Bridge)和組
合模式(Composite) 390
22.3.4 享元模式(Flyweight) 391
22.4 行為模式(BehavioralPattern) 391
22.4.1 策略模式(Strategy)和模板方法模式(TemplateMethod) 391
22.4.2 觀察者模式(Observer)、迭代器模式(Iterator)、責(zé)任鏈模式
(Chain of Responsibility)和命
令模式(Command) 392
22.4.3 備忘錄模式(Memento)和狀態(tài)
模式(State) 392
22.4.4 訪問者模式(Visitor)、中介者模式(Mediator)和解釋器模式
(Interpreter) 393
22.5 本章小結(jié) 394
習(xí)題22 394
第23章 版本控制工具――SVN
和Git 396
23.1 版本控制基礎(chǔ)知識 396
23.2 SVN 396
23.2.1 SVN服務(wù)端 396
23.2.2 SVN客戶端 397
23.2.3 Android Studio中使用SVN 398
23.3 Git和GitHub 398
23.3.1 Git安裝 398
23.3.2 遠(yuǎn)程倉庫 399
23.3.3 分支管理 400
23.3.4 使用GitHub 401
23.3.5 Android Studio中使用Git 401
23.4 比較SVN和Git 401
23.5 本章小結(jié) 402
習(xí)題23 402
附錄A Eclipse中編碼問題
(包括ADT) 403
附錄B Eclipse自動部署項目到
Tomcat的webapps 405
附錄C ADB命令 408
參考文獻(xiàn) 409