前言
致謝
第1章 Android的系統架構 1
1.1 Android系統架構概況 2
1.1.1 應用層 4
1.1.2 框架層 5
1.1.3 運行時 5
1.1.4 核心類庫 7
1.1.5 硬件抽象層和Linux內核 7
1.2 Android的核心功能模塊 8
1.2.1 界面框架 8
1.2.2 數據存儲 9
1.2.3 網絡通信 10
1.2.4 地理信息 11
1.2.5 圖形和多媒體處理 11
1.2.6 外部設備 12
1.2.7 特色功能模塊 13
1.3 Android的架構特征和設計思想 13
1.3.1 平臺開放性 14
1.3.2 基于組件的應用設計 14
1.3.3 基于網絡服務的平臺 15
1.4 小結 15
第2章 Android源代碼的下載和編譯 16
2.1 Android源代碼的獲取和編譯 17
2.1.1 環境搭建 18
2.1.2 源代碼獲取 18
2.1.3 源代碼的編譯 21
2.2 Android源代碼結構 22
2.2.1 框架層源代碼目錄frameworks 22
2.2.2 應用層源代碼目錄packages 24
2.2.3 其他源代碼目錄 24
2.3 Android源代碼的閱讀和編輯 25
2.3.1 用Eclipse閱讀源代碼 25
2.3.2 反饋Bug 26
2.3.3 提交修改 27
2.4 小結 27
第3章 Android組件模型解析 28
3.1 基于Mashup的應用設計 29
3.1.1 Android中的Mashup 29
3.1.2 基于Mashup的Android應用模型 30
3.1.3 基于Mashup的應用架構特征 32
3.2 界面組件Activity解析 34
3.2.1 界面組件的功能和特征 34
3.2.2 界面組件的開發 35
3.2.3 界面組件的數據結構 39
3.3 服務組件Service解析 40
3.3.1 服務組件的功能和特征 41
3.3.2 服務組件的開發和使用 43
3.3.3 服務組件的進程間通信模型 45
3.4 觸發器組件Broadcast Receiver解析 49
3.4.1 觸發器組件的功能和特征 49
3.4.2 觸發器組件的使用 50
3.4.3 廣播事件的發送 52
3.5 數據源組件Content Provider解析 52
3.5.1 數據源組件的定位和操作 53
3.5.2 數據源組件的開發 55
3.5.3 數據源組件的實現細節 57
3.6 應用配置文件解析 59
3.6.1 權限配置 61
3.6.2 環境配置 63
3.6.3 應用和組件配置 65
3.7 小結 66
第4章 Android的Intent機制 67
4.1 Intent對象的作用和構成 68
4.1.1 Intent對象的作用 69
4.1.2 Intent對象的構成 70
4.1.3 Intent對象解析 75
4.1.4 Intent Filter對象 76
4.2 意圖匹配 78
4.2.1 意圖匹配的算法流程 79
4.2.2 匹配組件的選擇 84
4.2.3 意圖匹配的優化 85
4.3 意圖機制的應用 86
4.3.1 意圖機制在界面組件中的應用 86
4.3.2 意圖機制在服務組件中的應用 88
4.3.3 意圖機制在觸發器組件中的應用 89
4.4 小結 90
第5章 組件生命周期解析 91
5.1 應用進程模型 92
5.1.1 應用、組件和進程 92
5.1.2 組件的應用進程配置 94
5.2 應用進程托管 96
5.2.1 為什么需要進程托管 97
5.2.2 進程優先級 97
5.2.3 進程回收算法 100
5.2.4 進程的強行終止 103
5.2.5 掌控進程的優先級 105
5.3 組件的生命周期模型 106
5.3.1 界面組件的生命周期 107
5.3.2 服務組件的生命周期 115
5.3.3 觸發器組件的生命周期 119
5.3.4 數據源組件的生命周期 120
5.3.5 應用環境的生命周期 120
5.4 任務和界面組件棧 120
5.4.1 界面組件的運行模式 122
5.4.2 組件的任務黏度 126
5.4.3 實際應用中的任務控制 127
5.5 小結 128
第6章 組件間的數據傳輸 129
6.1 利用Intent對象進行數據傳輸 130
6.1.1 利用Intent對象回傳數據 131
6.1.2 利用Intent對象傳遞數據的優缺點 133
6.2 利用文件進行數據共享 134
6.2.1 利用文件進行數據共享的實現 134
6.2.2 利用文件進行數據共享的優缺點 135
6.3 利用應用環境的全局數據共享 136
6.3.1 利用應用環境對象共享數據的實現 137
6.3.2 利用應用環境對象共享數據的優缺點 138
6.4 利用組件共享數據 139
6.4.1 利用數據源組件共享數據 139
6.4.2 利用服務組件共享數據 140
6.5 小結 140
第7章 Android控件解析 141
7.1 Android的控件框架 142
7.1.1 Android控件構成 142
7.1.2 Android交互事件傳輸 143
7.1.3 Android控件屬性 145
7.1.4 控件的丈量和繪制 150
7.2 Android的窗口機制 150
7.2.1 窗口機制的基本原理 151
7.2.2 界面組件和窗口 152
7.2.3 對話框 154
7.2.4 彈出窗口 156
7.3 Android的基本控件介紹 158
7.3.1 文本控件 159
7.3.2 圖像控件 163
7.3.3 Surface控件 164
7.3.4 Layout控件 164
7.3.5 適配器控件 167
7.3.6 選項卡控件 172
7.3.7 瀏覽器控件 173
7.4 自定義控件 175
7.4.1 控件的定制 175
7.4.2 復合控件 180
7.4.3 自繪控件 183
7.5 Android界面新發展 188
7.5.1 動作欄 188
7.5.2 界面片段 191
7.5.3 重新定制選項卡 197
7.5.4 交互界面的適配 200
7.6 小結 204
第8章 應用資源 205
8.1 Android應用資源體系 206
8.1.1 Android的應用資源構成 206
8.1.2 應用資源的適配 208
8.1.3 應用資源的動態匹配 209
8.2 應用資源的調用 213
8.2.1 應用資源的編譯和R類 213
8.2.2 應用資源的管理 215
8.2.3 使用應用資源 216
8.3 應用資源的類型 217
8.3.1 界面和樣式 217
8.3.2 字符串和常量 221
8.3.3 圖像、圖形和動畫 223
8.3.4 其他資源文件 225
8.4 小結 225
第9章 數據存儲 226
9.1 Android的文件系統 227
9.1.1 Android的目錄結構 229
9.1.2 Android的應用數據存儲 229
9.1.3 Android的文件操作 231
9.2 使用設置文件 233
9.2.1 設置文件的存儲和使用 234
9.2.2 設置界面組件 235
9.3 使用數據庫 238
9.3.1 Android數據庫實現 238
9.3.2 Android數據庫的使用 240
9.4 存儲在云端 243
9.4.1 云端存儲的架構 244
9.4.2 云端存儲的使用 245
9.5 小結 247
第10章 網絡通信 248
10.1 Web通信 249
10.1.1 基于HTTP的網絡連接 249
10.1.2 聯網方式的選擇 252
10.1.3 WiFi的管理 254
10.2 藍牙 256
10.2.1 Android的藍牙實現 256
10.2.2 基于藍牙的通信 257
10.3 近場通信 259
10.3.1 基于NFC的識別和通信 259
10.3.2 基于NFC的點對點通信 263
10.4 基于WiFi連接的P2P通信 263
10.4.1 Android 4.0的P2P連接實現 264
10.4.2 使用Socket進行數據傳輸 266
10.5 小結 268
第11章 地理信息服務 269
11.1 Android的定位服務 270
11.1.1 定位服務框架 270
11.1.2 位置信息源 272
11.1.3 定位選擇 273
11.1.4 定位實例 274
11.2 Android的地址服務 277
11.2.1 地址服務的框架 277
11.2.2 使用地址服務 278
11.3 Android的地圖服務 279
11.3.1 使用地圖 279
11.3.2 其他使用地圖服務的方式 282
11.4 小結 283
第12章 多媒體處理 284
12.1 Android的圖像處理 285
12.1.1 圖像的表示 285
12.1.2 圖像的讀取和輸出 286
12.1.3 圖像的呈現 288
12.1.4 圖像的管理 290
12.2 Android的音視頻處理 291
12.2.1 Android音視頻的支持框架 291
12.2.2 Android音視頻的播放 292
12.2.3 Android音視頻的錄制 294
12.3 Android中相機的使用 296
12.4 小結 300
第13章 其他重要模塊 301
13.1 通話和短信 302
13.1.1 Android的通話和短信框架 302
13.1.2 通話的處理 303
13.1.3 短信的發送和接收 305
13.2 App Widget的使用和實現 308
13.2.1 Android的App Widget框架 309
13.2.2 App Widget的界面構造和Remote Views 311
13.2.3 App Widget的事件處理和Pending Intent 313
13.3 Android的應用內搜索 317
13.3.1 Android應用內搜索實現框架 317
13.3.2 為應用定制搜索功能 318
13.3.3 全局搜索功能 322
13.4 Android的全局通知機制 323
13.4.1 全局通知的類型和實現 324
13.4.2 Toast的使用 325
13.4.3 狀態欄通知 327
13.5 Android聯系人處理 331
13.5.1 Android聯系人數據存儲框架 331
13.5.2 Android聯系人操作 332
13.6 小結 334