內容簡介
《Android 2.3套用開發實戰》以 Android作業系統架構為經,以開發 Android應用程式為緯,介紹 Android應用程式開發實戰技術,將會使開發人員學習到 Android作業系統的架構和原理,並最快掌握 Android的開發技能。書中完整介紹了 Android 2.3版的功能,相關範例程式所涉及的主題範圍廣泛,且有清楚的解說。
《Android 2.3套用開發實戰》包括 Android介紹、開發環境、套用開發平台、活動程式 Activity、意圖方法 Intent、Widget、Layout窗體布局、Menu選單、SQLite、Service服務程式、應用程式國際化、WebView、App Widget、GPS位置和 GoogleMaps、音頻和視頻、2D繪圖和 3D OpenGL繪圖、SurfaceView、動態壁紙、藍牙通信、觸控、感應檢測、Android 2.3特性、照相機、VoIP等內容。
《Android 2.3套用開發實戰》面向 Android初學者、想系統掌握 Android開發技能的開發人員,以及 Android開發的項目管理人員。
編輯推薦
《Android 2.3套用開發實戰》編輯推薦:全面介紹Android OS操作環境,包括SDK 2.3版最新內容;豐富的範例程式詳解Android套用開發,便於讀者快速掌握;每一章的主題都安排進階學習,滿足不同讀者的閱讀需求。
目錄
第1章 拓展Android市場的Java套用
1.1 Android來了.................................. 2
1.2 Android作業系統結構................... 3
1.2.1 Android應用程式........... 4
1.2.2 Android應用程式開發平台.................. 4
1.2.3 Android的各類程式庫 ... 5
1.2.4 Android運行時環境....... 6
1.2.5 Linux作業系統核心 ....... 7
1.3 OESF擴增功能............................. 7
1.3.1 OESF EM嵌入式項目.... 7
1.3.2 OESF針對的相關產業和設備.............. 8
1.3.3 OESF工作小組.............. 9
1.4 Android—Windows開發環境..................... 10
1.5 在 Android Market銷售你的套用軟體............... 12
1.5.1如何上傳套用軟體到 Android Market集市網站........ 13
1.5.2 如何從 Android Market集市網站下載套用軟體........ 14
第2章 安裝Android SDK開發環境
2.1 Android SDK開發環境................ 16
2.1.1 安裝 Android SDK開發環境.............. 16
2.1.2快速了解安裝 Android SDK開發環境程式............... 17
2.1.3符合安裝Android SDK的必要條件... 17
2.2 安裝 Android SDK開發環境........ 18
2.2.1 安裝 Android SDK軟體開發包 .......... 18
2.2.2 安裝 Android開發工具 ADT............... 20
2.2.3 設定 Android開發工具 ADT............... 24
2.2.4 創建 Android虛擬設備 AVD .............. 25
2.2.5 驗證 Android SDK軟體開發環境....... 28
2.2.6 安裝 Windows USB驅動程式............ 30
2.3 安裝 Android SDK前必要的軟體 32
2.3.1 安裝 Java開發包 JDK . 33
2.3.2 安裝 Eclipse集成開發環境 ................ 34
2.4更新到新版本 Android開發工具 ADT ............... 35
2.5 刪除 Android開發工具 ADT ........ 36
2.6 Android—“Hello World !”驗證.................... 36
2.6.1 生成 Android應用程式代碼............... 36
2.6.2 執行 Android應用程式. 39
第3章 Android SDK開發平台套用
3.1 Android SDK開發平台套用 ........ 43
3.2 Android仿真器............................ 43
3.2.1 控制 Android仿真器.... 45
3.2.2 Android仿真器啟動選項.................... 46
3.3 Android仿真器專用 SD存儲卡... 47
3.4 Android系統調試工具—ADB .................... 48
3.4.1 adb命令的標準格式 .... 49
3.4.2 偵測 adb伺服器的信息 49
3.4.3安裝與移除應用程式 apk套件........... 50
3.4.4 Android作業系統命令行模式............. 51
3.4.5上傳檔案到 /sdcard或自 /sdcard下載檔案............. 51
3.4.6 變更 TCP通信連線埠...... 52
3.4.7啟動和關掉 adb伺服器 52
3.4.8 Android仿真器的調試監控報告......... 52
3.5 Android調試監控服務系統 DDMS.................... 53
3.5.1 Eclipse開發環境提供 DDMS............. 53
3.5.2 ddms批處理檔案......... 55
第4章 認識Android基本單元—活動程式Activity
4.1 Android應用程式組成................. 59
4.1.1活動程式—Activity ..................... 59
4.1.2活動程式—Activity範例............. 59
4.2執行狀態遷移的生命周期(Lifecycle)............. 63
4.2.1 Android作業系統執行狀態遷移的生命周期.............. 64
4.2.2活動程式—Activity執行狀態遷移的生命周期範例..................... 66
4.3精通活動程式—Activity的控制功能.......... 69
4.3.1 finish() 方法................. 70
4.3.2 isfinishing() 方法.......... 70
4.3.3 onLowMemory() 方法.. 70
第5章 活動程式Activity的切換—意圖方法Intent
5.1活動程式 Activity和意圖方法 Intent ................. 72
5.1.1 Android如何切換顯示窗體................ 72
5.1.2 Chat Activities應用程式.................... 73
5.2 建立 Chat Activities應用程式..... 74
5.2.1 Chat Activities應用程式—窗體布局................. 74
5.2.2 Chat Activities應用程式—資源.. 75
5.2.3 Chat Activities應用程式—Manifest.................. 76
5.3 Chat Activities應用程式實現...... 77
5.4 標準意圖方法 Intent.................... 80
第6章 Android應用程式的Widget創作套件
6.1 Android應用程式的人機接口...... 84
6.1.1 視圖(View).............. 84
6.1.2 視圖組(ViewGroup)....... 84
6.2 Android應用程式窗體布局.......... 85
6.2.1 布局編輯器—Android Layout Editor.................. 85
6.2.2 資源編輯器—Android Resource Editor.............. 86
6.3 視圖(View)範例...................... 86
6.3.1 按鈕事件處理—Button............... 89
6.3.2 編輯框事件處理—EditText......... 93
6.3.3 時鐘事件處理—AnalogClock/DigitalClock ....... 96
6.3.4 進度條事件處理—ProgressBar .. 98
6.3.5 日期和時間事件處理—DatePicker/TimePicker....................... 101
6.3.6 計時錶事件處理—Chronometer ...................... 104
6.3.7 對話框事件處理—AlertDialog/Toast .............. 105
6.3.8 下拉列表事件處理—SpinnerSelect ................. 110
6.3.9 格線視圖事件處理—GridView.. 112
6.3.10 視頻播放事件處理 —Video ..... 114
6.3.11 相冊事件處理 —Gallery .......... 116
6.3.12 拖動條事件處理 —RatingBar/SeekBar ......... 118
第7章 Android應用程式的Layout窗體布局
7.1 Android應用程式的窗體布局.... 122
7.1.1 表格布局—Table Layout........... 123
7.1.2 線性布局—Linear Layout ......... 124
7.1.3 相對布局—Relative Layout ...... 126
7.1.4 絕對布局—Absolute Layout ..... 127
7.1.5 框架布局—Frame Layout ......... 129
7.2 建立窗體布局 Layout檔案........ 130
7.2.1 建立顯示窗體 XML檔案.................. 130
7.2.2 設計顯示窗體上的布局.................... 130
7.3 顯示窗體布局 Layout範例........ 131
7.3.1 表格布局範例—Table Layout ... 134
7.3.2 線性布局範例—Linear Layout .. 136
7.3.3 相對布局範例—Relative Layout ...................... 138
7.3.4 絕對布局範例—Absolute Layout..................... 140
7.3.5 窗體布局 Layout的範例程式........... 142
第8章 Android應用程式的Menu選單
8.1 Android應用程式的 Menu選單. 145
8.1.1 選項選單—Option Menu .......... 145
8.1.2 上下文選單—Context Menu..... 146
8.1.3 子選單—Submenu.................... 146
8.2 規劃選項選單............................ 146
8.2.1 如何規劃選項選單 ..... 146
8.2.2 如何處理選項選單的選項 ................ 147
8.2.3 處理選項選單範例 ..... 148
8.3 規劃上下文選單 ........................ 150
8.3.1 如何規劃上下文選單.. 151
8.3.2 如何處理上下文選單的選項............. 151
8.3.3 處理上下文選單範例.. 152
8.4 規划子選單................................ 154
8.4.1 如何規划子選單......... 155
8.4.2 如何處理子選單的選項.................... 155
8.4.3 處理子選單範例......... 155
第9章 Android數據存儲和數據公開—SQLite
9.1 Android數據存儲和共享 ........... 159
9.2 實現共享優先數據方法—Shared Preferences ............... 159
9.2.1 共享優先數據存取方法.................... 160
9.2.2 應用程式範例—離開時存儲優先數據.............. 165
9.3 資料庫存儲方法—SQLite Databases ...... 167
9.3.1 SQLite資料庫添加、更新、刪除、檢索方法......... 170
9.3.2 SQLite資料庫關聯操作方法............ 176
9.4 內容提供器方法—Content Providers....... 182
9.4.1 內容提供器公開數據方法 ................ 185
9.4.2 SQLite應用程式改用 Content Provider來公開數據 ........................ 190
9.5 檔案存儲方法—Files.......... 198
9.5.1 檔案寫入、讀出和拷貝方法 .............. 199
9.5.2 SQLite資料庫和應用程式一起發布 .. 204
9.6 網路存儲方法—Networks.. 206
第10章 認識Service服務程式
10.1 Android應用程式組成............. 219
10.1.1 服務程式 Service角色................... 219
10.1.2 廣播接收器 Broadcast Receiver角色 ................... 219
10.2 服務程式 Service..................... 220
10.2.1 啟動服務程式 Service.................... 221
10.2.2 服務程式 Service的執行狀態遷移. 221
10.2.3 創建一個服務程式 Service............. 223
10.3 廣播接收器 BroadcastReceiver..................... 223
10.3.1 實現廣播事件 ........... 223
10.3.2 使用 BroadcastReceiver廣播接收器 .................... 224
10.4 服務程式和廣播接收器整合.... 225
第11章 Android應用程式國際化
11.1 Android國際化........................ 235
11.2 Android資源規劃.................... 236
11.2.1 創建 Android資源.... 237
11.2.2 創建 Android多語言資源............... 237
11.3 Android多語言範例................. 238
第12章 Android的Web視圖—WebView
12.1 Android的 Web視圖............... 241
12.1.1 Android瀏覽器 WebView .............. 241
12.1.2 Android應用程式和 JavaScript互動.................... 241
12.2 瀏覽網頁 WebView.loadUrl實現方法 ........... 241
12.3 瀏覽網頁 WebView範例......... 243
12.3.1 直接下載 Yahoo或 Google網頁 .... 246
12.3.2 輸入網址再下載網頁 249
12.3.3 WebView網頁向前和向後瀏覽歷史管理—Back/Forward ................... 251
12.3.4 WebView網頁放大和縮小—Zoom in/Zoom out .......................... 255
12.4 觸控網頁 Motion Gesture........ 258
12.5 Android應用程式和 JavaScript腳本代碼互操作方法.......... 261
12.5.1 JavaScript腳本代碼調用 Android應用程式......... 262
12.5.2 JavaScript腳本代碼的警告信息.... 263
12.5.3 Android應用程式調用 JavaScript腳本代碼......... 264
12.6 JavaScript腳本代碼互聯範例. 266
12.6.1 JavaScript腳本代碼調用 Android應用程式範例.. 268
12.6.2 JavaScript腳本代碼的警告信息範例.................... 271
12.6.3 JavaScript腳本代碼的語言翻譯範例.................... 273
12.6.4 Android應用程式調用 JavaScript腳本代碼範例.. 276
第13章 Android常駐程式—App Widget
13.1 Android的常駐程式 App Widget體驗........... 280
13.1.1 調用常駐程式 App Widget............. 280
13.1.2 一般系統常駐程式和 Android系統常駐程式......... 281
13.2 Android常駐程式的可用功能.. 281
13.3 常駐程式的生命周期............... 282
13.4 建立 Android常駐程式方法..... 283
13.4.1 Android配置檔案..... 284
13.4.2 常駐程式信息檔案 ... 285
13.4.3 Layout窗體布局檔案..................... 285
13.4.4 AppWidgetProvider常駐程式........ 286
13.4.5 常駐程式配置 Activity.................... 287
13.4.6 實現常駐程式生命周期—AppWidgetProvider ....................... 288
13.5 Android常駐程式範例............. 289
13.5.1 常駐程式生命周期—LifeCycle範例 .............. 291
13.5.2 指定間隔時間執行—SlideShow常駐程式範例............................. 295
13.5.3 指定間隔時間執行—WhatTimeIsItNow常駐程式範例 ........................ 296
13.5.4 指定時刻時執行—AlarmManagerSample常駐程式範例........................ 298
13.5.5 單擊按鈕時執行—ClickSample常駐程式範例....................... 301
13.6 採用自定義的 thread 來處理常駐程式範例... 304
13.7 採用 timer task方式來處理常駐程式範例..... 306
第14章 Android應用程式GPS位置和GoogleMaps
14.1 GPS位置和 GoogleMaps........ 309
14.1.1 GPS定位服務.......... 309
14.1.2 Google地圖外部庫.. 309
14.2 取得 GPS位置信息................. 309
14.2.1 LocationManager類 310
14.2.2 LocationListener接口.................... 310
14.2.3 Location類............... 311
14.2.4 LocationProvider類. 311
14.2.5 LocationGPS應用程式範例—GPS位置信息 311
14.2.6 在仿真器測試 LocationGPS應用程式範例........... 314
14.3 取得 Google地圖外部庫 ......... 316
14.3.1 開發 Google地圖應用程式前的工作..................... 316
14.3.2 Google地圖應用程式範例—從 Google地圖服務系統獲得地圖................ 318
14.4 使用 MapView前先取得 Maps API Key ........ 320
14.4.1 使用 Maps API Key的重點 ............ 320
14.4.2 產生 keystore並取得認證指紋(MD5)碼 .......... 320
14.4.3 經 Google網站的簽署取得 Maps API Key............ 321
14.5 Google地圖上貼上標記 .......... 323
14.5.1 Google地圖應用程式範例—實現一個 ItemizedOverlay類...................... 323
14.5.2 Google地圖應用程式範例—Google地圖上貼上標記............................... 325
14.6 按 GPS位置來顯示 Google地圖................... 327
第15章 Android音頻和視頻
15.1 Android音頻和視頻................. 331
15.2 播放視頻在窗體布局上—VideoView...... 332
15.3 播放音頻和視頻—MediaPlayer.............. 334
15.3.1 播放媒體來自本地資源.................. 334
15.3.2 播放媒體來自系統檔案和數據流.... 335
15.4 播放媒體應用程式範例 MediaPlayer............. 335
15.4.1 MediaPlayerAudio應用程式範例... 338
15.4.2 MediaPlayerVideo應用程式範例... 342
15.5 播放 JET內容.......................... 349
15.6 捕捉音頻內容—MediaRecorder............. 350
15.7 Android文字到語音轉換—TextToSpeech..................... 351
第16章 Android 2D繪圖和3D OpenGL繪圖
16.1 Android作業系統的繪圖 ......... 355
16.1.1 二維繪圖.................. 355
16.1.2 三維繪圖.................. 355
16.2 繪製二維圖形的方法............... 355
16.3 圖像顯示對象—Drawable ........ 356
16.3.1 從項目資源來創建圖像 .................. 356
16.3.2 從項目資源來創建圖像的範例....... 358
16.3.3 從 XML檔案來定義圖像 ................ 359
16.3.4 從 XML檔案定義圖像—TransitionDrawable範例................... 361
16.3.5 形狀圖像繪製對象—ShapeDrawable ............ 362
16.4 創建二維動畫—Animation ..................... 364
16.4.1 補間動畫繪製對象—Tween Animation .......... 364
16.4.2 補間動畫繪製對象—Tween Animation範例.. 367
16.4.3 幀動畫繪製對象—Frame Animation .............. 371
16.4.4 幀動畫繪製對象—Frame Animation範例...... 372
16.5 直接在畫布描繪圖形—Canvas .............. 376
16.5.1 畫布描繪圖形—View.............. 3766.5.2 畫布描繪圖形—View範例...... 377
16.5.3 畫布高速描繪—SurfaceView.. 379
16.6 3D OpenGL繪圖..................... 380
第17章 Android高速描繪—SurfaceView
17.1 Android高速描繪 SurfaceView ..................... 382
17.1.1 高速描繪畫布 SurfaceView方法—SurfaceView.getHolder............................ 382
17.1.2 高速描繪畫布 SurfaceView方法—SurfaceHolder.Callback ............................ 382
17.1.3 SurfaceView類和方法................... 383
17.1.4 各類描繪方式和方法 ....... 384
17.1.5 SurfaceView類的按鍵輸入事件 .... 386
17.2 高速描繪 SurfaceView範例 .... 386
17.2.1 高速描繪畫布 SurfaceView方法—SurfaceView.getHolder範例....................... 388
17.2.2 高速描繪畫布 SurfaceView方法—SurfaceHolder.Callback範例...................... 390
17.2.3 平滑鋸齒方法—AntiAlias範例 ...................... 392
17.2.4 描繪方式和方法的範例—簡單 Game............. 395
17.2.5 描繪畫布的保存和回復範例—Canvas方法... 405
17.2.6 按鍵事件處理範例—Key ........ 408
17.2.7 觸控和軌跡球事件處理範例—Touch & Trackball ................... 410
17.2.8 透明事件範例—Transparent... 412
17.2.9 半透明事件範例—Translucent 415
第18章 Android動態壁紙—Live Wallpaper
18.1 Android動態壁紙 Live Wallpaper.................. 421
18.1.1 動態壁紙 Live Wallpaper架構....... 421
18.1.2 WallpaperService和 WallpaperService.Engine方法 ........................ 421
18.2 Android動態壁紙設定............. 422
18.2.1 簡單動態壁紙 Live Wallpaper設定 422
18.2.2 調整參數的動態壁紙 Live Wallpaper設定............ 424
18.3 Android動態壁紙應用程式設計 .................... 428
18.3.1 簡單動態壁紙 Live Wallpaper應用程式設計 ........ 428
18.3.2 調整參數的動態壁紙 Live Wallpaper應用程式設計..................... 430
18.4 Android動態壁紙應用程式範例—火焰之舞 .................. 430
18.5 Android動態壁紙應用程式範例—動畫參數設定........... 434
18.6 Android動態壁紙應用程式範例—照片自動切換........... 439
18.7 Android動態壁紙應用程式範例—觸控切換照片........... 444
第19章 Android藍牙通信—Bluetooth
19.1 Android藍牙通信 Bluetooth.... 450
19.1.1 Android藍牙通信 Bluetooth基本架構.................. 450
19.1.2 定義藍牙通信 Bluetooth許可權—Permission... 451
19.2 建立藍牙通信 Bluetooth.......... 451
19.2.1 設定藍牙通信—Setting up Bluetooth............ 452
19.2.2 發現藍牙設備—Finding Devices.................... 453
19.2.3 連線藍牙設備—Connecting Devices............. 455
19.2.4 管理藍牙連線—Managing a Connection ....... 459
第20章 Android觸控螢幕—Gesture
20.1 Android觸控螢幕 Gesture....... 463
20.2 Android觸控螢幕 Gesture處理順序............. 464
20.3 Android觸控螢幕 Gesture範例..................... 465
第21章 Android感應檢測—Sensor
21.1 Android感應檢測 Sensor ........ 469
21.2 Android感應檢測管理—SensorManager...................... 469
21.3 Android加速度感應檢測—Accelerometer .................... 471
21.4 Android磁場感應檢測—Magnetic ......... 472
21.5 Android方位感應檢測—Orientation ...... 472
21.6 Android溫度感應檢測—Temperature.... 473
21.7 Android感應檢測 Sensor範例 .... 473
21.7.1 做一個指北針—Compass範例...................... 475
21.7.2 Android方位感應檢測—Orientation範例...... 478
21.7.3 Android加速度感應檢測—Accelerometer範例....................... 483
21.7.4 Android磁場感應檢測—Magnetic範例......... 487
21.7.5 Android溫度感應檢測—Temperature範例... 490
第22章 Android OS 2.3薑餅報到
22.1 Android OS 2.3薑餅 Gingerbread 版本 ........ 495
22.1.1 更簡單的接口與更容易的操作....... 495
22.1.2 更直覺的文字輸入與更快的操作速度................... 495
22.1.3 多點觸控輸入........... 496
22.1.4 強化文字複製與剪貼 .........496
22.1.5 增強的電源管理功能 497
22.1.6 對應用程式的控制 ... 497
22.1.7 內建網路電話 VOIP 的 SIP stack... 498
22.1.8 支持近距離無線通信 NFC ............. 498
22.1.9 下載應用程式管理 ... 499
22.1.10 提供多個相機,可選擇前後相機拍攝 ................. 499
22.1.11 加強手機執行遊戲的性能 ............ 499
22.1.12 加入陀螺儀和數種新感測器的 API...................... 499
22.1.13 加強多媒體音場效果.................... 500
22.1.14 支持新的媒體格式 .......... 500
22.2 Android OS 2.3提供給開發人員的新功能..... 500
22.2.1 加強開發遊戲軟體的功能 .............. 501
22.2.2 提供豐富的多媒體功能.................. 502
22.2.3 提供通信的新方法和格式 .............. 502
22.3 Android OS 2.3版本新的類包.......... 503
第23章 Android手機必備的照相機
23.1 Android照相機原理................. 505
23.1.1 信息配置檔案“Androidmanifest.xml” .................... 505
23.1.2 相機應用程式拍攝的步驟 .............. 505
23.2 設計一個照相機軟體............... 507
23.2.1 預覽相機所拍攝影像 .........507
23.2.2 相機自動焦聚和拍攝照片 .............. 509
23.2.3 配置相機特性的參數 .........511
23.2.4 貼圖在拍攝的影像上 .........511
23.3 Android OS 2.3 所增加照相機新功能............ 512
23.3.1 讀取實體相機的號碼 .........512
23.3.2 讀取實體相機的信息 ......... 513
23.3.3 開啟指定的實體相機 .........513
23.4 照相機軟體基本操作範例........ 513
23.4.1 Camera 應用程式範例—Camera Preview..... 515
23.4.2 Camera應用程式範例—Camera Auto Focus 522
23.4.3 Camera應用程式範例—Camera Parameters Setting.................. 526
23.4.4 Camera應用程式範例—Over on Photo ........ 535
23.5 設計自己的相機套用軟體範例. .........537
第24章 設計Android網路電話VoIP-SIP
24.1 網路電話 VoIP......................... 544
24.1.1 第三方開發公司提供的網路電話 VoIP.................. 544
24.1.2 網路電話 VoIP基本概念 ................ 544
24.1.3 網路電話 VoIP 的運作方式............ 546
24.2 採用 SIP 設計 Android 網路電話 VoIP .......... 547
24.2.1 信息設定檔案 “Androidmanifest.xml” .................... 548
24.2.2 採用 SIP 設計網路電話 VoIP 的方法 .................... 548
24.3採用 SIP開發 Android無線電對講機應用程式範例 ............. 549
附錄A Android應用程式範例光碟使用說明
A.1 範例光碟 ................................... 565
A.2 Android SDK開發環境............. 565
A.3 進入 Eclipse集成開發環境 ....... 565
A.4 Android應用程式範例............... 566
A.4.1 生成 Android應用程式的項目......... 566
A.4.2 編譯和執行 Android應用程式範例.. 568