內容簡介
《Android開發案例驅動教程》既可作為高等學校計算機軟體技術課程的參考教材,也可作為社會培訓機構的培訓教程,還適合廣大Android初學者和Android套用開發的程式設計師參考。
編輯推薦
《Android開發案例驅動教程》幫助讀者從Java或C++程式設計師轉變成Android程式設計師,採用案例驅動模式展開講解知識點,即介紹案例→案例涉及技術→展開知識點→總結的方式,《Android開發案例驅動教程》作者從事多年一線開發和培訓工作,講解知識點力求細緻,深入淺出。
作者簡介
國內頂級系統架構師,金牌講師,技術顧問。擁有16年軟體開發經驗、8年培訓行業經驗。精通iOS、Android和Windows Phone 7及Html5等移動開發技術。曾先後參與開發北京公交一卡通系統、日本NEC委託開發系統、中國移動廣東分公司業務報表系統;主持開發大型網路遊戲神農訣Android和iOS 客戶端、國家農產品追溯系統iPad客戶端、大型團購網站移動端開發、金融系統微博iOS,WP7,Android客戶端開發,在App Store發布多款遊戲和套用軟體、發布多款Android套用,擅長移動平台的套用和遊戲類項目開發。著有《iPhone與iPad開發實戰——iOS 經典套用剖析》、《Android開發案例驅動教程》、 《JSP網路程式設計》等書籍,同時出版《iPhone與iPad開發實戰》系列視頻。即將出版的書籍有《iOS開發指南》、《Android網路遊戲開發實戰》。近期為中國移動、大唐電信、中石油等企事業單位授課。課程涵蓋iOS、Android、JAVA和.NET等方面。
目錄
前言
第1章 Android作業系統概述 1
1.1 Android歷史介紹 1
1.2 Android架構 1
1.3 Android平台介紹 2
1.4 現有智慧型手機作業系統比較 4
第2章 Android開發環境搭建 5
2.1 Eclipse和ADT外掛程式 5
2.1.1 Eclipse安裝 5
2.1.2 ADT外掛程式 6
2.2 Android SDK 8
2.2.1 Android SDK的獲得 8
2.2.2 Android SDK版本說明 10
2.2.3 ADT配置 10
2.3 Android開發模擬器 11
2.3.1 創建模擬器 11
2.3.2 啟動模擬器 13
2.3.3 鍵盤映射與模擬器控制 13
2.3.4 橫屏與豎屏切換 14
第3章 第一個Android程式 15
3.1 HelloAndroid 15
3.1.1 在Eclipse中創建項目 15
3.1.2 編寫程式項目代碼 17
3.1.3 運行HelloAndroid 18
3.1.4 Android工程目錄 19
3.1.5 AndroidManifest.xml檔案 21
3.2 Android中的組件介紹 22
3.3 使用Android SDK幫助 23
3.3.1 Android SDK API文檔 23
3.3.2 Android SDK開發指南 24
3.3.3 Android SDK samples 24
3.4 使用DDMS幫助調試程式 26
3.4.1 啟動DDMS 26
3.4.2 Device 28
3.4.3 Emulator Control 29
3.4.4 File Explorer 30
3.4.5 LogCat 31
3.5 使用ADB幫助調試程式 33
3.5.1 查詢模擬器實例和設備 34
3.5.2 進入shell 34
3.5.3 導入導出檔案 35
3.6 應用程式的打包、安裝和卸載 37
3.6.1 應用程式打包 37
3.6.2 應用程式安裝 40
3.6.3 應用程式卸載 40
本章小結 42
第4章 UI基礎知識 43
4.1 Android UI組件概述 43
4.1.1 View 43
4.1.2 ViewGroup 44
4.1.3 布局管理器 44
4.2 UI設計工具 44
4.2.1 DroidDraw工具 44
4.2.2 ADT外掛程式UI設計工具 46
4.3 事件處理模型 47
4.3.1 接口實現事件處理模型 47
4.3.2 內部類事件處理模型 49
4.3.3 匿名內部類事件處理模型 51
4.4 Activity中的常用事件 53
4.4.1 觸摸事件 53
4.4.2 鍵盤事件 55
4.5 選單 57
4.5.1 文本選單 57
4.5.2 圖片文本選單 59
本章小結 60
第5章 UI基礎控制項 61
5.1 按鈕 61
5.1.1 Button 62
5.1.2 ImageButton 63
5.1.3 ToggleButton 64
5.2 TextView 64
5.3 EditText 65
5.4 RadioButton和RadioGroup 66
5.4.1 RadioButton 66
5.4.2 RadioGroup 67
5.5 CheckBox 68
5.6 ImageView 70
5.7 Progress Bar 70
5.7.1 條狀進度條 71
5.7.2 圓形進度條 73
5.7.3 對話框進度條 74
5.7.4 標題欄中進度條 75
5.8 SeekBar 76
5.9 RatingBar 78
本章小結 82
第6章 UI高級控制項 83
6.1 列表類控制項 83
6.1.1 Adapter概念 83
6.1.2 AutoComplete 84
6.1.3 Spinner 87
6.1.4 ListView 90
6.1.5 GridView 96
6.1.6 Gallery 99
6.2 Toast 103
6.2.1 文本類型 103
6.2.2 圖片類型 104
6.2.3 複合類型 105
6.2.4 自定義顯示位置Toast 106
6.3 對話框 107
6.3.1 文本信息對話框 107
6.3.2 簡單列表項對話框 109
6.3.3 單選項列表項對話框 111
6.3.4 複選框列表項對話框 113
6.3.5 複雜布局列表項對話框 115
6.4 Android國際化和本地化 118
本章小結 121
第7章 UI布局 122
7.1 FrameLayout 122
7.1.1 TextSwitcher 124
7.1.2 ImageSwitcher 126
7.1.3 DatePicker 129
7.1.4 TimePicker 131
7.1.5 ScrollView 133
7.1.6 選項卡 134
7.2 LinearLayout 138
7.3 RelativeLayout 139
7.4 AbsoluteLayout 141
7.5 TableLayout 143
7.6 布局嵌套 146
7.7 螢幕旋轉 152
本章小結 154
第8章 多執行緒 155
8.1 多執行緒案例——計時器 155
8.2 執行緒概念 156
8.2.1 進程概念 156
8.2.2 執行緒概念 156
8.3 Java中的執行緒 157
8.3.1 Java中的實現執行緒體方式1 157
8.3.2 Java中的實現執行緒體方式2 160
8.3.3 Java中的實現執行緒體方式3 162
8.4 Android中的執行緒 163
8.4.1 Android執行緒套用中的問題與分析 164
8.4.2 Message和MessageQueue 169
8.4.3 Handler 169
8.4.4 Looper和HandlerThread 172
本章小結 178
第9章 Activity和Intent 179
9.1 Activity 179
9.1.1 創建Activity 179
9.1.2 Activity生命周期 180
9.2 Intent 183
9.2.1 顯式Intent 184
9.2.2 隱式Intent 186
9.2.3 匹配組件 186
9.3 多Activity之間跳轉 188
9.3.1 多個Activity之間數據傳遞 189
9.3.2 跳轉與返回 192
9.3.3 任務與標誌 196
9.4 Android系統內置Intent 199
本章小結 201
第10章 數據存儲 203
10.1 健康助手案例 203
10.2 Android數據存儲概述 205
10.3 本地檔案 205
10.3.1 訪問SD卡 207
10.3.2 訪問套用檔案目錄 212
10.4 SQLite資料庫 216
10.4.1 SQLite數據類型 216
10.4.2 Android平台下管理SQLite資料庫 216
10.5 編寫訪問SQLite資料庫組件 220
10.5.1 DBHelper類 220
10.5.2 數據插入 222
10.5.3 數據刪除 224
10.5.4 數據修改 224
10.5.5 數據查詢 227
10.6 案例重構 229
10.6.1 系統架構設計 229
10.6.2 重構數據訪問層 230
10.7 為案例增加參數設定功能 238
10.7.1 Shared Preferences 240
10.7.2 Preferences控制項介紹 243
10.7.3 使用Preferences控制項的案例 248
本章小結 250
第11章 Content Provider 251
11.1 Content Provider概述 251
11.2 Content URI 252
11.2.1 Content URI含義 252
11.2.2 內置的Content URI 253
11.3 通過Content Provider訪問聯繫人 253
11.3.1 查詢聯繫人 255
11.3.2 通過聯繫人ID查詢聯繫人的Email 258
11.3.3 按照過濾條件查詢Email 259
11.3.4 查詢聯繫人的電話 261
11.4 通過Content Provider訪問通話記錄 262
11.4.1 查詢通話記錄 262
11.4.2 按照過濾條件查詢通話記錄 264
11.5 通過Content Provider訪問簡訊 266
11.6 自定義Content Provider實現數據訪問 269
11.6.1 編寫Content Provider 269
11.6.2 在不同的套用中調用Content Provider 277
11.6.3 重構Content Provider調用 278
本章小結 281
第12章 多媒體 282
12.1 多媒體檔案介紹 282
12.1.1 音頻多媒體檔案介紹 282
12.1.2 視頻多媒體檔案介紹 283
12.2 Android音頻播放 284
12.2.1 Android音頻/視頻播放狀態 284
12.2.2 音頻播放案例介紹 286
12.2.3 資源音頻檔案播放 287
12.2.4 本地音頻檔案播放 291
12.2.5 網路音頻檔案播放 292
12.2.6 完善案例其他功能 293
12.3 Android音頻錄製 303
12.3.1 Android音頻/視頻錄製狀態 303
12.3.2 音頻錄製案例介紹 303
12.3.3 音頻錄製案例實現 305
12.4 Android視頻播放 309
12.4.1 視頻播放案例 309
12.4.2 採用Media Player類播放視頻 310
12.4.3 使用Video View控制項重構案例 315
本章小結 316
第13章 Service 317
13.1 Service概述 317
13.1.1 本地Service生命周期 317
13.1.2 遠程Service生命周期 318
13.2 本地Service 319
13.2.1 本地Service案例 319
13.2.2 編寫Audio Service 320
13.2.3 調用Service 322
13.2.4 重構案例 323
13.3 遠程Service 325
13.3.1 遠程Service調用原理 325
13.3.2 遠程Service案例 326
13.3.3 設計AIDL檔案 327
13.3.4 編寫Audio Service 331
13.3.5 調用遠程Service 336
13.3.6 組件間參數傳遞 343
本章小結 347
第14章 Broadcast Receiver和Notification 348
14.1 Broadcast Receiver 348
14.1.1 音頻播放案例 349
14.1.2 編寫音頻播放Broadcast Receiver 350
14.1.3 註冊音頻播放Broadcast Receiver 351
14.1.4 接收系統的廣播 353
14.1.5 MP3下載服務案例 353
14.2 Notification 358
14.2.1 完善MP3下載服務案例 358
14.2.2 完善音頻播放案例 363
14.2.3 其他形式的Notification 369
本章小結 371
第15章 雲端套用 372
15.1 典型雲端套用——城市天氣信息服務 372
15.2 網路通信技術與實現 374
15.2.1 網路通信技術介紹 376
15.2.2 Java URL類實現方式 377
15.2.3 Apache HttpClient實現方式 378
15.3 數據交換格式 380
15.3.1 純文本格式 381
15.3.2 XML格式 381
15.3.3 JSON格式 385
15.4 自定義伺服器端程式實例 387
15.4.1 Java Servlet概述 387
15.4.2 編寫城市信息服務的Servlet 388
15.4.3 編寫城市天氣服務的Servlet 393
15.4.4 再次探討HttpClient的POST請求 395
15.5 雲端套用案例最佳化 400
本章小結 404
第16章 Google Map和定位服務 405
16.1 My Map服務系統案例 405
16.2 Android Google Map 406
16.2.1 申請Google Map Android API Key 407
16.2.2 編寫Android Google Map骨架程式 409
16.2.3 控制地圖 412
16.2.4 地圖的顯示模式 416
16.2.5 地圖的圖層 419
16.2.6 查詢與定位 422
16.3 Android定位服務 430
16.3.1 開啟定位服務 431
16.3.2 模擬測試 433
16.3.3 GPS與Google Map結合 435
16.4 案例重構 437
16.4.1 重構“定位查詢”方法 438
16.4.2 重構“查詢周圍”方法 440
本章小結 443
第17章 Android通信套用 444
17.1 電話套用開發 444
17.1.1 撥打電話功能 444
17.1.2 呼入電話狀態 446
17.2 簡訊和彩信套用開發 450
17.2.1 Android內置的傳送簡訊/彩信功能 450
17.2.2 自己編寫傳送文本內容的簡訊 452
17.2.3 自己編寫接收文本內容的簡訊 458
17.2.4 自己編寫傳送二進制內容的簡訊 459
17.2.5 自己編寫接收二進制內容的簡訊 461
17.3 藍牙通信 463
17.3.1 Android 2 BluetoothChat案例 464
17.3.2 Android 2 藍牙API介紹 464
17.3.3 TCP Socket與藍牙Socket的區別 465
17.3.4 BluetoothChat中的類 466
17.3.5 初始化本地藍牙設備 467
17.3.6 查找藍牙設備 471
17.3.7 管理連線 476
17.3.8 互相之間的通信 480
17.4 WiFi通信 484
17.4.1 管理WiFi 484
17.4.2 掃描熱點 487
17.4.3 Socket通信 489
本章小結 491
參考文獻 492