內容介紹
《Android開發實戰》從初學者的角度講述使用Android進行套用開發所需掌握的各項技術,內容突出“基礎”、“全面”、“深入”的特點,強調“實戰”效果。書中在介紹技術的同時,都會提供示例或稍大一些的實例,同時在各章的結尾安排有實戰,通過2~6個實戰來綜合套用本章所講解的知識,做到理論聯繫實際;前4篇的最後一章都有一個綜合實驗,通過一個模組綜合套用本篇所講解的知識內容;在本書的最後一篇中提供了兩個完整的項目實例,講述從前期規劃、設計流程到項目最終實施的整個實現過程。全書共分26章,主要內容包括走進Android,Android模擬器,用戶界面設計,Android常用組件,綜合實驗 (一)——猜猜雞蛋放在哪只鞋子裡,基本程式單元Activity,Intent和BroadcastReceiver的套用,使用資源,Android事件處理,對話框、通知與鬧鐘,Action Bar,Android程式的調試,綜合實驗(二)——迷途奔跑的野豬,數據存儲技術,Content Provider實現數據共享,執行緒與訊息處理,Service套用,綜合實驗(三)——簡易打地鼠遊戲,圖像與動畫處理技術,利用OpenGL實現3D圖形,多媒體技術,定位服務,網路通信技術,綜合實驗(四)——簡易塗鴉板,基於Android的數獨遊戲和基於Android的家庭理財通。所有知識都結合具體實例進行介紹,對涉及的程式代碼給出了詳細的注釋,讀者可以輕鬆領會Android程式開發的精髓,快速提高開發技能。本書特色及豐富的學習資源包如下:
黃金學習搭配、專業學習視頻、重難點精確打擊、學習經驗分享、學習測試診斷、有趣實踐任務、專業資源庫、學習排憂解難、獲取源程式、提供習題答案、贈送開發案例。
本書適合有志於從事Android套用開發的初學者、高校計算機相關專業學生和畢業生,也可作為軟體開發人員的參考手冊,或者高校的教學參考書。
作品目錄
目 錄第1篇新 手 入 門
第1章走進Android 2
視頻講解:78分鐘
1.1認識Android 3
1.1.1Android的體系結構 3
1.1.2Android的特性 5
1.1.3Android的版本 5
1.1.4Android市場 6
1.2搭建Android的開發環境 6
1.2.1系統需求 6
1.2.2JDK的下載 7
1.2.3JDK的安裝與配置 8
1.2.4Android SDK的下載與安裝 10
1.2.5Eclipse的下載與安裝 15
1.2.6Eclipse的漢化 17
1.2.7ADT外掛程式的下載與安裝 18
1.3開發第一個Android程式 20
1.3.1了解Android應用程式的開發流程 20
1.3.2創建Android應用程式 21
1.3.3創建AVD模擬器 23
1.3.4運行Android程式 25
1.3.5調試Android應用程式 25
1.4實戰 26
1.4.1使用ADT Bundle搭建開發環境 26
1.4.2創建平板電腦式的模擬器 27
1.5本章小結 28
1.6學習成果檢驗 28
第2章Android模擬器 29
視頻講解:27分鐘
2.1模擬器概述 30
2.1.1Android虛擬設備和模擬器 30
2.1.2模擬器限制 31
2.1.3控制模擬器的按鍵 31
2.2創建和刪除Android模擬器 32
2.2.1創建並啟動Android模擬器 32
2.2.2刪除Android模擬器 33
2.3Android模擬器基本設定 33
2.3.1設定語言 33
2.3.2設定輸入法 35
2.3.3設定日期時間 35
2.4在Android模擬器上安裝和卸載程式 37
2.4.1使用adb命令安裝和卸載Android程式 37
2.4.2通過DDMS管理器安裝Android程式 39
2.4.3在Android模擬器中卸載程式 40
2.5實戰 41
2.5.1設定模擬器桌面背景 41
2.5.2使用模擬器撥打電話 42
2.5.3設定使用24小時格式的時間 42
2.6本章小結 43
2.7學習成果檢驗 43
第3章用戶界面設計 44
視頻講解:136分鐘
3.1控制UI界面 45
3.1.1使用XML布局檔案控制UI界面 45
3.1.2在Java代碼中控制UI界面 47
3.1.3使用XML和Java代碼混合控制UI
界面 49
3.1.4開發自定義的View 50
3.2布局管理器 52
3.2.1線性布局管理器 53
3.2.2表格布局管理器 55
3.2.3幀布局管理器 57
3.2.4相對布局管理器 59
3.3實戰 62
3.3.1簡易的圖片瀏覽器 62
3.3.2套用相對布局顯示軟體更新提示 63
3.3.3使用表格布局與線性布局實現分類
工具列 64
3.3.4開發自定義的View在窗體上繪製
一隻地鼠 68
3.4本章小結 69
3.5學習成果檢驗 69
第4章Android常用組件 70
視頻講解:125分鐘
4.1文本類組件 71
4.1.1文本框 71
4.1.2編輯框 73
4.1.3自動完成文本框 76
4.2按鈕類組件 78
4.2.1普通按鈕 78
4.2.2圖片按鈕 80
4.2.3單選按鈕 82
4.2.4複選框 85
4.3日期、時間類組件 87
4.3.1日期、時間選擇器 87
4.3.2計時器 89
4.4進度條類組件 90
4.4.1進度條 91
4.4.2拖動條 93
4.4.3星級評分條 95
4.5列表類組件 97
4.5.1列表選擇框 97
4.5.2列表視圖 99
4.6圖像類組件 103
4.6.1圖像視圖 103
4.6.2格線視圖 105
4.6.3圖像切換器 108
4.6.4畫廊視圖 111
4.7其他組件 114
4.7.1滾動視圖 114
4.7.2選項卡 116
4.8實戰 118
4.8.1實現我同意遊戲條款 118
4.8.2顯示在標題上的進度條 121
4.8.3實現帶圖示的ListView列表 123
4.8.4實現仿Windows 7圖片預覽窗格效果 124
4.9本章小結 127
4.10學習成果檢驗 127
第5章綜合實驗(一)——猜猜雞蛋放在
哪只鞋子裡 128
視頻講解:12分鐘
5.1概述 129
5.1.1功能描述 129
5.1.2系統流程 129
5.1.3主界面預覽 129
5.2關鍵技術 130
5.3實現過程 130
5.3.1搭建開發環境 130
5.3.2準備資源 131
5.3.3布局頁面 132
5.3.4實現遊戲規則代碼 133
5.4運行項目 135
5.5本章小結 136
第2篇進 階 提 高
第6章基本程式單元Activity 138
視頻講解:124分鐘
6.1Activity概述 139
6.1.1Activity的4種狀態 139
6.1.2Activity的生命周期 140
6.1.3Activity的屬性 141
6.2創建、啟動和關閉Activity 142
6.2.1創建Activity 142
6.2.2配置Activity 144
6.2.3啟動和關閉Activity 145
6.3多個Activity的使用 146
6.3.1使用Bundle在Activity之間交換數據 146
6.3.2調用另一個Activity並返回結果 154
6.4使用Fragment 156
6.4.1創建Fragment 156
6.4.2在Activity中添加Fragment 156
6.5實戰 162
6.5.1套用對話框主題的關於Activity 162
6.5.2根據輸入的生日判斷星座 163
6.5.3帶選擇頭像的用戶註冊界面 167
6.5.4仿QQ客戶端登錄界面 170
6.5.5帶查看原圖功能的圖像瀏覽器 173
6.6本章小結 176
6.7學習成果檢驗 176
第7章Intent和BroadcastReceiver的
套用 177
視頻講解:55分鐘
7.1Intent對象簡介 178
7.1.1Intent對象概述 178
7.1.23種不同的Intent傳輸機制 178
7.2Intent對象的組成 179
7.2.1組件名稱 179
7.2.2動作 180
7.2.3數據 182
7.2.4種類 184
7.2.5附加信息 186
7.2.6標誌 189
7.3解析Intent對象 191
7.3.1Intent過濾器 191
7.3.2通用情況 193
7.3.3使用Intent匹配 194
7.4BroadcastReceiver使用 194
7.4.1了解BroadcastReceiver 194
7.4.2套用BroadcastReceiver 195
7.5實戰 197
7.5.1使用Intent實現傳送簡訊 197
7.5.2使用包含預定義動作的隱式Intent 199
7.5.3使用包含自定義動作的隱式Intent 201
7.5.4使用BroadcastReceiver查看電池
剩餘電量 204
7.6本章小結 205
7.7學習成果檢驗 205
第8章使用資源 206
視頻講解:176分鐘
8.1字元串資源 207
8.1.1定義字元串資源檔案 207
8.1.2使用字元串資源 207
8.2顏色資源 209
8.2.1顏色值的定義 209
8.2.2定義顏色資源檔案 209
8.2.3使用顏色資源 210
8.3尺寸資源 211
8.3.1Android支持的尺寸單位 211
8.3.2定義尺寸資源檔案 212
8.3.3使用尺寸資源 212
8.4數組資源 215
8.4.1定義數組資源檔案 215
8.4.2使用數組資源 216
8.5Drawable資源 216
8.5.1圖片資源 217
8.5.2StateListDrawable資源 219
8.6使用布局資源 222
8.7樣式和主題資源 223
8.7.1樣式資源 223
8.7.2主題資源 224
8.8使用原始XML資源 227
8.9使用選單資源 228
8.9.1定義選單資源檔案 228
8.9.2使用選單資源 230
8.10Android程式國際化 234
8.11實戰 235
8.11.1通過字元串資源顯示遊戲對白 235
8.11.2使用數組資源和ListView顯示
聯繫人列表 236
8.11.3實現自定義複選框的樣式 237
8.11.4創建一組只能單選的選項選單 238
8.11.5實現國際化的上下文選單 240
8.12本章小結 242
8.13學習成果檢驗 242
第9章Android事件處理 243
視頻講解:36分鐘
9.1事件處理概述 244
9.2處理鍵盤事件 244
9.3處理觸摸事件 246
9.4手勢的創建與識別 247
9.4.1手勢的創建 247
9.4.2手勢的導出 248
9.4.3手勢的識別 249
9.5實戰 250
9.5.1提示音量增加事件 250
9.5.2使用手勢輸入數字 251
9.5.3查看手勢對應的分值 252
9.6本章小結 254
9.7學習成果檢驗 254
第10章對話框、通知與鬧鐘 255
視頻講解:50分鐘
10.1通過Toast顯示訊息提示框 256
10.2使用AlertDialog實現對話框 257
10.3使用Notification在狀態欄上顯示
通知 262
10.4使用AlarmManager設定鬧鐘 264
10.4.1AlarmManager簡介 265
10.4.2設定一個簡單的鬧鐘 265
10.5實戰 268
10.5.1彈出詢問是否退出的對話框 268
10.5.2彈出帶圖示的列表對話框 269
10.5.3仿手機QQ登錄狀態顯示功能 270
10.6本章小結 273
10.7學習成果檢驗 273
第11章Action Bar 274
視頻講解:26分鐘
11.1Action Bar概述 275
11.2Action Bar的使用 275
11.2.1添加Action Bar 275
11.2.2移除Action Bar 276
11.2.3添加Action Item選項 277
11.2.4Action Bar顯示選項 279
11.2.5Action Bar與Tab 281
11.2.6添加 Action View 285
11.2.7添加Action Provider 287
11.3實戰 289
11.3.1禁止Action Bar的使用 289
11.3.2顯示自定義視圖 290
11.3.3重新設定icon圖示 291
11.3.4不同的選項卡顯示不同時區的時間 292
11.4本章小結 294
11.5學習成果檢驗 294
第12章Android程式的調試 295
視頻講解:48分鐘
12.1輸出日誌信息的幾種方法 296
12.1.1Log.d方法——輸出故障日誌 296
12.1.2Log.e方法——輸出錯誤日誌 297
12.1.3Log.i方法——輸出程式日誌 298
12.1.4Log.v方法——輸出冗餘日誌 299
12.1.5Log.w方法——輸出警告日誌 300
12.2Android程式調試 301
12.3程式異常處理 302
12.3.1Android程式出現異常怎么辦 302
12.3.2如何捕捉Android程式異常 303
12.3.3拋出異常的兩種方法 304
12.3.4何時使用異常處理 306
12.4實戰 306
12.4.1向LogCat視圖中輸出程式Info日誌 306
12.4.2使用throw關鍵字在方法中拋出異常 307
12.5本章小結 308
12.6學習成果檢驗 308
第13章綜合實驗(二)——迷途奔跑的
野豬 309
視頻講解:10分鐘
13.1功能概述 310
13.2關鍵技術 310
13.3實現過程 310
13.3.1搭建開發環境 311
13.3.2準備資源 311
13.3.3布局頁面 311
13.3.4實現代碼 312
13.4運行項目 314
13.5本章小結 314
第3篇中 級 開 發
第14章數據存儲技術 316
視頻講解:43分鐘
14.1使用SharedPreferences對象存儲
數據 317
14.2使用Files對象存儲數據 324
14.2.1openFileOutput()和openFileInput()
方法 324
14.2.2對Android模擬器中的SD卡
進行操作 327
14.3Android資料庫編程——SQLite 328
14.4實戰 332
14.4.1遍歷Android模擬器的SD卡 332
14.4.2將圖片複製到SD卡上 333
14.4.3判斷獲得的SD卡內容是否是資料夾 335
14.4.4在SQLite資料庫中批量添加數據 336
14.4.5使用列表顯示數據表中全部數據 338
14.5本章小結 339
14.6學習成果檢驗 339
第15章Content Provider實現數據共享 340
視頻講解:42分鐘
15.1Content Provider概述 341
15.1.1數據模型 341
15.1.2URI的用法 341
15.2預定義Content Provider 342
15.2.1查詢數據 343
15.2.2增加記錄 343
15.2.3增加新值 344
15.2.4批量更新記錄 344
15.2.5刪除記錄 344
15.3自定義Content Provider 344
15.3.1繼承ContentProvider類 345
15.3.2聲明Content Provider 346
15.4實戰 347
15.4.1系統內置聯繫人的使用 347
15.4.2查詢聯繫人ID和姓名 347
15.4.3查詢聯繫人姓名和電話 348
15.4.4自動補全聯繫人姓名 350
15.5本章小結 352
15.6學習成果檢驗 352
第16章執行緒與訊息處理 353
視頻講解:50分鐘
16.1多執行緒的常見操作 354
16.1.1創建執行緒 354
16.1.2開啟執行緒 356
16.1.3執行緒的休眠 356
16.1.4中斷執行緒 357
16.2Handler訊息傳遞機制 357
16.2.1循環者Looper類 358
16.2.2訊息處理類Handler 359
16.2.3訊息類Message 360
16.3實戰 361
16.3.1開啟一個新執行緒播放背景音樂 361
16.3.2開啟新執行緒獲取網路圖片
並顯示到ImageView中 362
16.3.3開啟新執行緒實現電子廣告牌 364
16.3.4多彩的霓虹燈 366
16.3.5在螢幕上來回移動的氣球 368
16.4本章小結 370
16.5學習成果檢驗 370
第17章Service套用 371
視頻講解:48分鐘
17.1Service概述 372
17.1.1Service的分類 372
17.1.2Service類中重要方法 372
17.1.3Service的聲明 373
17.2創建Started Service 374
17.2.1繼承IntentService類 375
17.2.2繼承Service類 376
17.2.3啟動服務 377
17.2.4停止服務 378
17.3創建Bound Service 378
17.3.1繼承Binder類 379
17.3.2使用Messenger類 381
17.3.3綁定到服務 383
17.4管理Service的生命周期 383
17.5實戰 384
17.5.1繼承IntentService輸出當前時間 384
17.5.2繼承Service輸出當前時間 385
17.5.3繼承Binder類綁定服務顯示時間 387
17.5.4使用Messenger類綁定服務顯示時間 390
17.5.5視力保護程式 392
17.5.6查看當前運行服務信息 394
17.6本章小結 396
17.7學習成果檢驗 396
第18章綜合實驗(三)——簡易
打地鼠遊戲 397
視頻講解:15分鐘
18.1功能概述 398
18.2關鍵技術 398
18.3實現過程 399
18.3.1搭建開發環境 399
18.3.2準備資源 399
18.3.3布局頁面 400
18.3.4實現代碼 400
18.4運行項目 401
18.5本章小結 402
第4篇高 級 應 用
第19章圖像與動畫處理技術 404
視頻講解:176分鐘
19.1常用繪圖類 405
19.1.1Paint類 405
19.1.2Canvas類 406
19.1.3Bitmap類 408
19.1.4BitmapFactory類 408
19.2繪製2D圖像 409
19.2.1繪製幾何圖形 409
19.2.2繪製文本 411
19.2.3繪製路徑 413
19.2.4繪製圖片 415
19.3為圖形添加特效 417
19.3.1鏇轉圖像 417
19.3.2縮放圖像 419
19.3.3傾斜圖像 420
19.3.4平移圖像 421
19.3.5使用BitmapShader渲染圖像 422
19.4Android中的動畫 423
19.4.1實現逐幀動畫 424
19.4.2實現補間動畫 424
19.4.3Android動畫的套用 428
19.5實戰 431
19.5.1繪製Android的機器人 431
19.5.2實現帶描邊的圓角圖片 432
19.5.3實現放大鏡效果 432
19.5.4在GridView中顯示SD卡上的
全部圖片 434
19.5.5忐忑的精靈 436
19.6本章小結 438
19.7學習成果檢驗 438
第20章利用OpenGL實現3D圖形 439
視頻講解:56分鐘
20.1OpenGL簡介 440
20.2繪製3D圖形 440
20.2.1構建3D開發的基本框架 440
20.2.2繪製一個模型 442
20.3添加效果 446
20.3.1套用紋理貼圖 447
20.3.2鏇轉 448
20.3.3光照效果 449
20.3.4透明效果 450
20.4實戰 451
20.4.1繪製一個三稜錐 451
20.4.2為三稜錐添加鏇轉效果 453
20.4.3繪製一個不斷鏇轉的金字塔 455
20.4.4使用Android機器人對立方體進行
紋理貼圖 457
20.5本章小結 458
20.6學習成果檢驗 458
第21章多媒體技術 459
視頻講解:96分鐘
21.1播放音頻與視頻 460
21.1.1使用MediaPlayer播放音頻 460
21.1.2使用SoundPool播放音頻 464
21.1.3使用VideoView播放視頻 467
21.1.4使用MediaPlayer和SurfaceView
播放視頻 468
21.2控制相機拍照 472
21.3實戰 476
21.3.1播放SD卡上的全部音頻檔案 476
21.3.2帶音量控制的音樂播放器 480
21.3.3為遊戲界面添加背景音樂和按鍵音 482
21.3.4製作開場動畫 486
21.4本章小結 487
21.5學習成果檢驗 488
第22章定位服務 489
視頻講解:20分鐘
22.1定位基礎 490
22.1.1獲得位置源 490
22.1.2查看位置源屬性 491
22.1.3監聽位置變化事件 493
22.2谷歌地圖服務 496
22.2.1安裝谷歌API外掛程式 496
22.2.2使用谷歌API的Android項目 497
22.2.3使用谷歌API的Android虛擬設備 497
22.2.4獲得地圖API密鑰 497
22.3實戰 501
22.3.1顯示海拔信息 501
22.3.2顯示方向信息 502
22.3.3在地圖上標記天府廣場的位置 502
22.4本章小結 505
22.5學習成果檢驗 505
第23章網路通信技術 506
視頻講解:96分鐘
23.1通過HTTP訪問網路 507
23.1.1使用HttpURLConnection訪問網路 507
23.1.2使用HttpClient訪問網路 514
23.2使用WebView顯示網頁 519
23.2.1使用WebView組件瀏覽網頁 520
23.2.2使用WebView載入HTML代碼 521
23.2.3讓WebView支持JavaScript 522
23.3實戰 524
23.3.1從指定網站下載檔案 524
23.3.2訪問需要登錄後才能訪問的頁面 526
23.3.3打造功能實用的網頁瀏覽器 531
23.3.4獲取天氣預報 534
23.4本章小結 536
23.5學習成果檢驗 536
第24章綜合實驗(四)——簡易塗
鴉板 537
視頻講解:12分鐘
24.1功能概述 538
24.2關鍵技術 538
24.3實現過程 539
24.3.1搭建開發環境 539
24.3.2布局頁面 539
24.3.3實現代碼 540
24.4運行項目 544
24.5本章小結 544
第5篇項 目 實 戰
第25章基於Android的數獨遊戲 546
視頻講解:27分鐘
25.1需求分析 547
25.2程式開發及運行環境 547
25.3程式資料夾組織結構 547
25.4公共資源檔案 548
25.4.1字元串資源檔案 548
25.4.2數組資源檔案 548
25.4.3顏色資源檔案 549
25.5遊戲主窗體設計 549
25.5.1設計系統主窗體布局檔案 549
25.5.2為界面中的按鈕添加監聽事件 551
25.5.3繪製數獨遊戲界面 553
25.5.4數獨遊戲的實現算法 557
25.6虛擬鍵盤模組設計 562
25.6.1設計模擬鍵盤布局檔案 562
25.6.2在虛擬鍵盤中顯示可以輸入的數字 563
25.7遊戲設定模組設計 565
25.7.1設計遊戲設定布局檔案 565
25.7.2設定是否播放背景音樂和顯示提示 566
25.7.3控制背景音樂的播放與停止 566
25.8關於模組設計 567
25.8.1設計關於窗體布局檔案 567
25.8.2顯示關於信息 567
25.9將程式安裝到Android手機上 568
25.10本章小結 568
第26章基於Android的家庭理財通 569
視頻講解:48分鐘
26.1需求分析 570
26.2系統設計 570
26.2.1系統目標 570
26.2.2系統功能結構 570
26.2.3系統業務流程圖 570
26.2.4系統編碼規範 571
26.3系統開發及運行環境 572
26.4資料庫與數據表設計 573
26.4.1資料庫分析 573
26.4.2創建資料庫 573
26.4.3創建數據表 574
26.5系統資料夾組織結構 575
26.6公共類設計 575
26.6.1數據模型公共類 575
26.6.2Dao公共類 577
26.7登錄模組設計 582
26.7.1設計登錄布局檔案 582
26.7.2登錄功能的實現 583
26.7.3退出登錄視窗 584
26.8系統主窗體設計 584
26.8.1設計系統主窗體布局檔案 584
26.8.2顯示各功能視窗 585
26.8.3定義文本及圖片組件 587
26.8.4定義功能圖示及說明文字 587
26.8.5設定功能圖示及說明文字 588
26.9收入管理模組設計 589
26.9.1設計新增收入布局檔案 589
26.9.2設定收入時間 592
26.9.3添加收入信息 594
26.9.4重置新增收入視窗中的各個控制項 594
26.9.5設計收入信息瀏覽布局檔案 595
26.9.6顯示所有的收入信息 596
26.9.7單擊指定項時打開詳細信息 597
26.9.8設計修改/刪除收入布局檔案 597
26.9.9顯示指定編號的收入信息 601
26.9.10修改收入信息 602
26.9.11刪除收入信息 603
26.10便簽管理模組設計 603
26.10.1設計新增便簽布局檔案 603
26.10.2添加便簽信息 605
26.10.3清空“便簽”文本框 606
26.10.4設計便簽信息瀏覽布局檔案 606
26.10.5顯示所有的便簽信息 608
26.10.6單擊指定項時打開詳細信息 609
26.10.7設計修改/刪除便簽布局檔案 610
26.10.8顯示指定編號的便簽信息 612
26.10.9修改便簽信息 612
26.10.10刪除便簽信息 612
26.11系統設定模組設計 613
26.11.1設計系統設定布局檔案 613
26.11.2設定登錄密碼 614
26.11.3重置“密碼”文本框 615
26.12將程式安裝到Android手機上 615
26.13開發常見問題與解決 616
26.13.1程式在裝有Android系統的手機上
無法運行 616
26.13.2無法將最新修改在Android模擬器中
體現 616
26.13.3退出系統後還能使用記錄的密碼
登錄 616
26.14本章小結 616