第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.............. 376
16.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
· · · · · · (
收起)