第1章 android簡介 1
1.1 一些背景信息 2
1.1.1 不遠的過去 2
1.1.2 未來的前景 3
1.2 對android的誤解 3
1.3 開放的移動開發平颱 4
1.4 自帶的android應用程序 4
1.5 android sdk的特徵 5
1.5.1 訪問硬件(包括攝像頭、gps和加速計) 6
1.5.2 自帶的google地圖、地理編碼和基於位置的服務 6
1.5.3 後颱服務 6
1.5.4 sqlite 數據存儲和檢索數據庫 7
1.5.5 共享數據和應用程序間通信 7
1.5.6 使用小組件、live folder和live wallpaper增強主屏幕 7
1.5.7 廣泛的媒體支持和2d/3d圖形 8
1.5.8 優化的內存和進程管理 8
1.6 開放手機聯盟簡介 8
1.7 運行android的環境 8
1.8 從事移動開發的原因 9
1.9 從事android開發的原因 9
.1.9.1 推動android普及的因素 10
1.9.2 android的獨到之處 10
1.9.3 改變移動開發格局 11
1.10 開發框架簡介 11
1.10.1 開發包中的資源 12
1.10.2 理解android軟件棧 12
1.10.3 dalvik虛擬機 14
1.10.4 android應用程序架構 14
1.10.5 android庫 15
1.11 小結 15
第2章 開始入手 17
2.1 android開發 18
2.1.1 開始前的準備工作 18
2.1.2 創建第一個android應用程序 22
2.1.3 android應用程序的類型 27
2.2 麵嚮移動設備的開發 29
2.2.1 硬件限製帶來的設計考慮事項 29
2.2.2 考慮用戶環境 32
2.2.3 android開發 33
2.3 to-do list示例 36
2.4 android開發工具 40
2.4.1 android虛擬設備和sdk管理器 41
2.4.2 android模擬器 42
2.4.3 dalvik調試監控服務(ddms) 43
2.4.4 android調試橋(adb) 43
2.5 小結 44
第3章 創建應用程序和活動 45
3.1 android應用程序的組成部分 46
3.2 應用程序清單簡介 47
3.3 使用清單編輯器 52
3.4 android應用程序生命周期 53
3.5 理解應用程序的優先級和進程狀態 54
3.6 分離資源 55
3.6.1 創建資源 55
3.6.2 使用資源 62
3.6.3 to-do list資源示例 65
3.6.4 為不同的語言和硬件創建資源 66
3.6.5 運行時配置更改 67
3.7 application類簡介 69
3.7.1 擴展和使用application類 69
3.7.2 重寫應用程序的生命周期事件 70
3.8 深入探討android活動 71
3.8.1 創建一個活動 71
3.8.2 活動生命周期 73
3.8.3 android活動類 78
3.9 小結 78
第4章 創建用戶界麵 79
4.1 android ui基本設計 80
4.2 視圖簡介 80
4.2.1 使用視圖創建活動的用戶界麵 81
4.2.2 android widget工具箱 82
4.3 布局簡介 83
4.3.1 使用布局 83
4.3.2 優化布局 85
4.4 創建新視圖 85
4.4.1 修改現有的視圖 86
4.4.2 創建復閤控件 90
4.4.3 創建定製的視圖 93
4.4.4 使用定製的控件 103
4.5 drawable資源 104
4.5.1 形狀、顔色和漸變 104
4.5.2 復閤drawable 107
4.5.3 ninepatch drawable 110
4.6 分辨率和像素密度無關性 110
4.6.1 資源框架和分辨率無關性 111
4.6.2 分辨率無關性的最佳實踐 112
4.6.3 反復測試 114
4.7 創建和使用菜單 115
4.7.1 android菜單係統簡介 115
4.7.2 定義活動的菜單 117
4.7.3 菜單項選項 118
4.7.4 動態更新菜單項 119
4.7.5 處理菜單選擇 120
4.7.6 子菜單和上下文菜單 120
4.7.7 使用xml定義菜單 122
4.7.8 to-do list示例續 123
4.8 小結 128
第5章 意圖、廣播接收器、adapter和internet 131
5.1 意圖簡介 132
5.1.1 使用意圖來啓動活動 132
5.1.2 使用意圖過濾器來為隱式意圖提供服務 138
5.1.3 使用意圖過濾器作為插件和擴展 146
5.1.4 linkify簡介 148
5.1.5 使用意圖來廣播事件 151
5.2 待處理意圖簡介 155
5.3 adapter簡介 156
5.2.1 部分本地adapter簡介 156
5.2.2 定製arrayadapter 156
5.2.3 使用adapter綁定數據 157
5.4 使用internet資源 162
5.4.1 連接到internet資源 163
5.4.2 使用internet資源 164
5.5 對話框簡介 164
5.5.1 dialog類簡介 164
5.5.2 將活動用作對話框 166
5.5.3 管理和顯示對話框 167
5.6 創建一個地震查看器 168
5.7 小結 176
第6章 文件、保存狀態和首選項 179
6.1 保存簡單的應用程序數據 180
6.2 創建並保存首選項 180
6.3 檢索共享首選項 181
6.4 為地震查看器創建一個設置活動 181
6.5 首選項活動和首選項框架概述 189
6.5.1 在xml中定義一個首選項屏幕布局 190
6.5.2 首選項活動簡介 192
6.5.3 查找並使用首選項屏幕共享首選項 193
6.5.4 共享首選項變更監聽程序簡介 193
6.6 為地震查看器創建一個標準的首選項活動 194
6.7 保存活動狀態 195
6.7.1 保存並還原實例狀態 195
6.7.2 保存to-do list活動狀態 196
6.8 保存和加載文件 198
6.9 將靜態文件作為資源添加 199
6.10 文件管理工具 200
6.11 小結 200
第7章 數據庫和內容提供器 201
7.1 android數據庫簡介 201
7.1.1 sqlite數據庫簡介 202
7.1.2 內容提供器簡介 202
7.2 sqlite簡介 202
7.3 遊標和內容值 203
7.4 使用sqlite數據庫 203
7.4.1 使用sqliteopenhelper 206
7.4.2 在不使用sqlitehelper的情況下打開和創建數據庫 207
7.4.3 android數據庫設計注意事項 207
7.4.4 查詢數據庫 207
7.4.5 從cursor中提取結果 208
7.4.6 添加、更新和刪除行 209
7.4.7 保存to-do list 210
7.5 創建一個新的內容提供器 216
7.5.1 提供對數據源的訪問 217
7.5.2 注冊提供器 219
7.6 使用內容提供器 219
7.6.1 內容解析器簡介 219
7.6.2 查詢內容 219
7.6.3 添加、更新和刪除內容 220
7.6.4 在內容提供器中訪問文件 221
7.7 創建和使用地震內容提供器 222
7.7.1 創建內容提供器 222
7.7.2 使用提供器 227
7.8 本地android內容提供器 229
7.8.1 使用媒體庫提供器 230
7.8.2 使用聯係人提供器 231
7.9 小結 235
第8章 地圖、地理編碼和基於位置的服務 237
8.1 使用基於位置的服務 238
8.2 配置模擬器來測試基於位置的服務 238
8.3 更新模擬位置提供器中的位置 238
8.4 選擇一個位置提供器 239
8.4.1 查找可用的提供器 239
8.4.2 根據標準查找位置提供器 240
8.5 確定自己所在的位置 241
8.5.1 “where am i”示例 241
8.5.2 追蹤移動 244
8.5.3 更新“where am i”示例中的位置 245
8.6 使用鄰近提醒 247
8.7 使用地理編碼器 248
8.7.1 反嚮地理編碼 249
8.7.2 前嚮地理編碼 249
8.7.3 對“where am i”示例進行地理編碼 251
8.8 創建基於地圖的活動 252
8.8.1 mapview和mapactivity簡介 252
8.8.2 獲得地圖的api鍵 253
8.8.3 創建一個基於地圖的活動 254
8.8.4 配置和使用mapview 255
8.8.5 使用mapcontroller 256
8.8.6 對“where am i”示例使用地圖 256
8.8.7 創建和使用覆蓋(overlay) 260
8.8.8 mylocationoverlay簡介 267
8.8.9 itemizedoverlay和overlayitem簡介 267
8.8.10 將視圖固定到地圖和地圖的某個位置上 269
8.9 對earthquake示例添加地圖功能 271
8.10 小結 276
第9章 後颱工作 277
9.1 服務簡介 278
9.1.1 創建和控製服務 279
9.1.2 將活動和服務綁定 289
9.1.3 後颱服務的優先級 291
9.2 使用後颱綫程 292
9.2.1 使用asynctask運行異步任務 292
9.2.2 使用asynctask將earthquake service移動到後颱綫程 294
9.2.3 手動創建綫程和gui綫程同步 295
9.3 創建一個toast 297
9.3.1 定製toast 297
9.3.2 在工作綫程中使用toast 299
9.4 通知簡介 299
9.4.1 通知管理器簡介 300
9.4.2 創建通知 300
9.4.3 觸發通知 304
9.4.4 嚮地震監控器中添加通知 304
9.4.5 高級通知技術 307
9.4.6 持續的和連續的通知 310
9.5 使用警報 310
9.5.1 設置重復警報 312
9.5.2 使用重復警報更新earthquake 313
9.6 小結 315
第10章 個性化手機屏幕 317
10.1 主屏幕小組件簡介 318
10.2 創建app widgets 318
10.2.1 創建小組件布局 319
10.2.2 定義小組件設置 321
10.2.3 創建小組件意圖接收器並將其添加到應用程序清單中 321
10.2.4 remote views(遠程視圖)和app widget manager簡介 322
10.2.5 刷新小組件 327
10.2.6 創建並使用小組件配置活動 329
10.3 創建地震小組件 330
10.4 live folder簡介 335
10.4.1 創建live folder 336
10.4.2 創建earthquake live folder 338
10.5 將搜索添加到應用程序以及快速搜索框中 340
10.5.1 將搜索添加到應用程序中 341
10.5.2 在快速搜索框中顯示搜索結果 344
10.5.3 將搜索添加到earthquake示例中 344
10.6 創建live wallpaper 348
10.6.1 創建live wallpaper定義資源 348
10.6.2 創建wallpaper服務 348
10.6.3 創建wallpaper服務引擎 349
10.7 小結 350
第11章 音頻、視頻以及攝像頭的使用 351
11.1 播放音頻和視頻 352
11.1.1 media player簡介 352
11.1.2 準備音頻播放 353
11.1.3 準備視頻播放 354
11.1.4 控製播放 357
11.1.5 管理媒體播放輸齣 358
11.2 錄製音頻和視頻 358
11.2.1 使用意圖錄製視頻 358
11.2.2 使用媒體刻錄機 359
11.3 使用攝像頭並拍攝照片 362
11.3.1 使用意圖拍攝照片 362
11.3.2 控製攝像頭並拍攝照片 364
11.3.3 讀取並寫入jpeg exif圖像詳細信息 368
11.4 嚮媒體庫中添加新媒體 369
11.4.1 使用媒體掃描儀 369
11.4.2 嚮媒體庫中插入媒體 370
11.5 原始音頻操作 370
11.5.1 錄製帶有音頻記錄的聲音 370
11.5.2 使用音頻軌道播放聲音 372
11.6 語音識彆 373
11.7 小結 374
第12章 電話服務和sms 377
12.1 電話服務 378
12.1.1 啓動撥號程序以初始化電話呼叫 378
12.1.2 替換本機撥號程序 378
12.1.3 訪問電話和網絡屬性以及狀態 379
12.1.4 監視電話狀態、電話活動以及數據連接中的變化 382
12.2 sms和mms簡介 386
12.2.1 在應用程序中使用sms和mms 386
12.2.2 使用意圖和本機客戶端從應用程序中發送sms和mms 387
12.2.3 手動發送sms消息 388
12.2.4 監聽傳入的sms消息 391
12.2.5 緊急響應程序sms示例 393
12.2.6 自動化緊急響應程序 402
12.3 小結 410
第13章 藍牙、網絡和wi-fi 411
13.1 使用藍牙 411
13.1.1 訪問本地藍牙設備適配器 412
13.1.2 管理藍牙屬性和狀態 413
13.1.3 可發現性和遠程設備發現 415
13.1.4 藍牙通信 418
13.1.5 藍牙數據傳輸示例 424
13.2 管理網絡連接 433
13.2.1 connectivity manager(連接管理器)簡介 433
13.2.2 讀取用戶首選項用於後颱數據傳輸 434
13.2.3 監視網絡詳細信息 435
13.2.4 查找並配置網絡首選項以及控製硬件信號 435
13.2.5 監視網絡連接 436
13.3 管理wi-fi 436
13.3.1 監視wi-fi連接 437
13.3.2 監視活動連接詳細信息 437
13.3.3 掃描熱點 438
13.3.4 管理wi-fi配置 438
13.3.5 創建wi-fi網絡配置 439
13.4 小結 439
第14章 傳感器 441
14.1 使用傳感器和傳感器管理器 442
14.2 解釋傳感器數值 445
14.3 使用指南針、加速計和方嚮傳感器 445
14.3.1 加速計簡介 446
14.3.2 檢測加速度變化 447
14.3.3 創建一個g-forceometer(重力測力計) 448
14.3.4 確定設備方嚮 451
14.3.5 創建一個指南針和人工地平儀 454
14.4 控製設備振動 458
14.5 小結 459
第15章 android高級開發 461
15.1 android的安全性 462
15.1.1 linux內核安全 462
15.1.2 權限簡介 462
15.1.3 聲明和實施權限 463
15.1.4 為廣播意圖實施權限 464
15.2 使用wake lock 464
15.3 android text to speech簡介 465
15.4 使用aidl來支持服務的ipc 467
15.4.1 實現aidl接口 467
15.4.2 將類對象作為parcelable傳遞 468
15.4.3 實現和提供ipc接口 470
15.5 使用internet服務 472
15.6 構建內容豐富的用戶界麵 473
15.6.1 使用動畫 473
15.6.2 高級畫布繪圖 484
15.6.3 surfaceview簡介 499
15.6.4 創建交互式控件 502
15.7 小結 508
· · · · · · (
收起)