第1章 Android系統(tǒng)介紹
1.1 智能手機系統(tǒng)概述 1
1.1.1 昨日王者——Symbian(塞班) 1
1.1.2 谷歌公司的Android 2
1.1.3 Mac公司的iOS 3
1.1.4 微軟公司的Windows Phone 3
1.1.5 黑莓公司的Blackberry OS 4
1.2 總結Android的核心優(yōu)勢 5
1.2.1 強有力的業(yè)界支持 5
1.2.2 研發(fā)陣容強大 5
1.2.3 為開發(fā)人員“精心定制” 5
1.2.4 開源 6
1.3 Android系統(tǒng)架構概覽 6
1.3.1 底層操作系統(tǒng)層(OS) 7
1.3.2 運行庫(Libraries)和Android 運行環(huán)境(RunTime) 7
1.3.3 Application Framework(應用程序框架) 8
1.3.4 頂層應用程序(Application) 8
1.4 核心組件 8
1.4.1 Activity界面 8
1.4.2 Intent和Intent Filters 9
1.4.3 Service服務 9
1.4.4 Broadcast Receiver發(fā)送廣播 10
1.4.5 用Content Provider存儲數(shù)據(jù) 10
1.5 物聯(lián)網技術改變未來 11
1.5.1 什么是物聯(lián)網 11
1.5.2 發(fā)展歷程 11
1.5.3 Android正在成為物聯(lián)網標準操作系統(tǒng) 12
1.6 Android智能設備蓬勃發(fā)展 13
1.6.1 常見的Android智能設備 13
1.6.2 新興熱點——可穿戴設備 15
1.6.3 可穿戴設備的發(fā)展前景分析 18
1.6.4 Android對穿戴設備的支持——Android Wear 19
第2章 搭建Android開發(fā)環(huán)境
2.1 獲取Android源碼 20
2.1.1 在Linux系統(tǒng)獲取Android源碼 20
2.1.2 在Windows平臺獲取Android源碼 21
2.2 編譯源碼 27
2.2.1 常見的錯誤分析 28
2.2.2 實踐演練——演示兩種編譯Android程序的方法 29
2.3 搭建Android 應用開發(fā)環(huán)境 33
2.3.1 安裝JDK 34
2.3.2 獲取并安裝Eclipse和Android SDK 37
2.3.3 快速安裝SDK 39
2.3.4 安裝ADT 40
2.3.5 驗證設置 42
2.3.6 創(chuàng)建Android虛擬設備(AVD) 44
2.3.7 啟動AVD模擬器 46
第3章 傳輸網絡數(shù)據(jù)
3.1 HTTP通信 48
3.1.1 使用HTTP傳輸數(shù)據(jù) 48
3.1.2 使用Apache接口傳輸數(shù)據(jù) 49
3.1.3 使用java.net傳輸數(shù)據(jù) 54
3.1.4 使用Android網絡接口傳輸數(shù)據(jù) 56
3.1.5 實例3-1:在物聯(lián)網設備屏幕中傳遞HTTP參數(shù) 57
3.1.6 實例3-2:在物聯(lián)網設備中訪問HTTP地圖 60
3.2 使用Socket傳輸數(shù)據(jù) 62
3.2.1 Socket Java網絡開發(fā)基礎 63
3.2.2 使用TCP協(xié)議傳輸數(shù)據(jù) 64
3.3 下載遠程數(shù)據(jù) 66
3.3.1 實例3-3:在物聯(lián)網設備中下載網絡服務器中的圖片 67
3.3.2 實例3-4:下載并播放網絡MP3 67
3.4 遠程上傳數(shù)據(jù) 73
3.4.1 實例3-5:上傳物聯(lián)網設備中的文件到遠程服務器 73
3.4.2 實例3-6:在物聯(lián)網設備中采用GET方式向服務器傳遞數(shù)據(jù) 75
3.5 處理XML數(shù)據(jù) 79
3.5.1 XML的概述 79
3.5.2 XML的語法 79
3.5.3 實例3-7:在物聯(lián)網中使用SAX解析XML數(shù)據(jù) 80
3.5.4 實例3-8:在物聯(lián)網中使用DOM解析XML數(shù)據(jù) 83
第4章 使用藍牙傳輸數(shù)據(jù)
4.1 藍牙傳輸技術介紹 85
4.2 BLE藍牙傳輸技術介紹 86
4.2.1 低功耗藍牙的架構 86
4.2.2 低功耗藍牙分類 87
4.2.3 低功耗藍牙的特點 88
4.2.4 BLE和傳統(tǒng)藍牙BR/EDR的對比 88
4.3 藍牙規(guī)范 89
4.3.1 Bluetooth常用規(guī)范 89
4.3.2 藍牙協(xié)議體系結構 90
4.3.3 低功耗(BLE)藍牙協(xié)議 91
4.4 低功耗藍牙協(xié)議棧 92
4.4.1 什么是低功耗藍牙協(xié)議棧? 92
4.4.2 藍牙協(xié)議體系中的協(xié)議 93
4.5 TI公司的低功耗藍牙解決方案 95
4.5.1 獲取藍牙協(xié)議棧 95
4.5.2 BLE藍牙協(xié)議棧結構 96
4.5.3 BLE低功耗藍牙系統(tǒng)架構 98
4.5.4 硬件抽象層HAL和BLE低功耗藍牙協(xié)議棧 99
第5章 Android藍牙系統(tǒng)詳解
5.1 Android系統(tǒng)中的藍牙模塊 104
5.2 和藍牙相關的接口類 106
5.2.1 BluetoothSocket類 106
5.2.2 BluetoothServerSocket類 107
5.2.3 BluetoothAdapter類 108
5.2.4 BluetoothClass.Service類 115
5.2.5 BluetoothClass.Device類 115
5.3 Android中的低功耗藍牙協(xié)議棧 116
5.3.1 低功耗藍牙協(xié)議?;A 116
5.3.2 低功耗藍牙API詳解 116
5.4 實例5-1:使用藍牙控制電風扇的轉動 127
第6章 物聯(lián)網語音識別開發(fā)詳解
6.1 語音識別技術概述 140
6.1.1 語音識別技術的發(fā)展歷史 140
6.1.2 語音識別技術的發(fā)展歷程 141
6.2 Text-To-Speech語音識別技術 141
6.2.1 Text-To-Speech基礎 141
6.2.2 總結Text-To-Speech開發(fā)流程 142
6.2.3 實例6-1:使用Text-To-Speech實現(xiàn)語音識別 145
6.2.4 實例6-2:物聯(lián)網中文語音識別 147
6.3 Voice Recognition語音識別技術 151
6.3.1 Voice Recognition技術基礎 152
6.3.2 實例6-3:使用Voice Recognition實現(xiàn)語音識別 154
6.4 實例6-4:將物聯(lián)網設備中的提醒文字轉換為語音 157
第7章 物聯(lián)網設備手勢識別
7.1 Android事件監(jiān)聽機制詳解 162
7.1.1 總結Android中的監(jiān)聽事件 162
7.1.2 Android事件偵聽器的回調方法 163
7.1.3 Android事件處理模型 165
7.1.4 基于自定義監(jiān)聽器的事件處理 166
7.2 手勢識別開發(fā)詳解 168
7.2.1 手勢識別類GestureDetector 168
7.2.2 手勢檢測器類GestureDetector 169
7.2.3 手勢識別處理事件和方法 172
7.3 實例7-1:通過單擊的方式移動圖片 172
7.4 實例7-2:實現(xiàn)常用的手勢識別操作 176
7.5 實例7-3:實現(xiàn)手勢翻頁效果 179
第8章 在物聯(lián)網設備中處理多媒體數(shù)據(jù)
8.1 Android多媒體系統(tǒng)架構基礎 186
8.1.1 OpenMax框架介紹 187
8.1.2 OpenCore框架介紹 188
8.1.3 Stagefright框架介紹 189
8.2 Graphics類詳解 190
8.2.1 Graphics類基礎 190
8.2.2 使用Graphics類 190
8.2.3 實例8-1:在物聯(lián)網設備中使用矩形類Rect和RectF 191
8.3 二維動畫 194
8.3.1 類Drawable 194
8.3.2 實現(xiàn)Tween動畫效果 196
8.3.3 實例8-2:在物聯(lián)網設備中實現(xiàn)Tween動畫效果 196
8.3.4 實例8-3:演示Tween動畫的四種動畫效果 198
8.3.5 實現(xiàn)Frame動畫效果 202
8.4 OpenGL ES詳解 203
8.4.1 OpenGL ES基礎 203
8.4.2 Android用到OpenGL ES 204
8.4.3 OpenGL ES的基本操作 204
8.4.4 實例8-4:使用OpenGL ES繪制一個正方形 208
8.5 音頻開發(fā) 211
8.5.1 音頻接口類 211
8.5.2 AudioManager控制鈴聲 213
8.5.3 實例8-5:設置短信提示鈴聲 215
8.6 錄音詳解 221
8.6.1 使用MediaRecorder接口錄制音頻 221
8.6.2 使用AudioRecord接口錄音 224
8.7 在物聯(lián)網設備中播放音樂 226
8.7.1 使用AudioTrack播放音頻 227
8.7.2 使用MediaPlayer播放音頻 227
8.7.3 使用SoundPool播放音頻 228
第9章 Android傳感器系統(tǒng)架構詳解
9.1 Android傳感器系統(tǒng)概述 229
9.2 Android傳感器應用開發(fā)基礎 231
9.2.1 查看包含的傳感器 231
9.2.2 模擬器測試工具——
SensorSimulator 232
9.2.3 實例9-1:檢測當前設備支持的傳感器 236
第10章 光線傳感器和磁場傳感器開發(fā)詳解
10.1 光線傳感器詳解 239
10.1.1 光線傳感器介紹 239
10.1.2 使用光線傳感器的方法 240
10.1.3 實例10-1:獲取物聯(lián)網設備中光線傳感器的值 241
10.1.4 實例10-2:顯示物聯(lián)網設備中光線傳感器的強度 243
10.2 磁場傳感器詳解 245
10.2.1 Android系統(tǒng)中的磁場傳感器 246
10.2.2 實例10-3:獲取物聯(lián)網設備中磁場傳感器的三個分量 246
10.2.3 實例10-4:在物聯(lián)網設備中使用磁場傳感器 248
第11章 加速度傳感器、方向傳感器和陀螺儀傳感器
11.1 加速度傳感器詳解 258
11.1.1 Android系統(tǒng)中的加速度傳感器 258
11.1.2 實例11-1:獲取X、Y、Z軸的加速度值 259
11.1.3 實例11-2:在物聯(lián)網設備中實現(xiàn)仿微信“搖一搖”效果 261
11.2 方向傳感器詳解 266
11.2.1 Android中的方向傳感器 266
11.2.2 實例11-3:測試當前物聯(lián)網設備的三個方向值 267
11.2.3 實例11-4:在物聯(lián)網設備中開發(fā)指南針程序 269
11.3 陀螺儀傳感器開發(fā)詳解 271
11.4 實例11-5:在物聯(lián)網設備中使用加速度傳感器和陀螺傳感器 272
第12章 旋轉向量傳感器、距離傳感器和氣壓傳感器
12.1 旋轉向量傳感器開發(fā)詳解 286
12.1.1 Android中的旋轉向量傳感器 286
12.1.2 實例12-1:確定當前物聯(lián)網設備的方向 287
12.2 距離傳感器開發(fā)詳解 295
12.2.1 Android系統(tǒng)中的距離傳感器 295
12.2.2 實例12-2:實現(xiàn)自動鎖屏功能 297
12.3 氣壓傳感器開發(fā)詳解 303
12.3.1 氣壓傳感器在智能手機中的應用 303
12.3.2 實例12-3:實現(xiàn)一個Android氣壓計 303
第13章 溫度傳感器和濕度傳感器
13.1 溫度傳感器開發(fā)詳解 312
13.1.1 Android系統(tǒng)中溫度傳感器 312
13.1.2 實例13-1:開發(fā)一個物聯(lián)網溫度計 314
13.1.3 實例13-2:測試設備電源的溫度 316
13.2 濕度傳感器開發(fā)詳解 329
13.2.1 Android系統(tǒng)中的濕度傳感器 329
13.2.2 實例13-3:獲取遠程濕度傳感器的數(shù)據(jù) 330
第14章 物聯(lián)網條形碼識別開發(fā)詳解
14.1 Android拍照系統(tǒng)結構基礎 336
14.2 Camera系統(tǒng)底層架構分析 339
14.2.1 V4L2 API介紹 339
14.2.2 總結操作V4L2的流程 340
14.2.3 V4L2驅動框架 342
14.2.4 實現(xiàn)Video核心層 343
14.3 Camera系統(tǒng)的硬件抽象層 346
14.3.1 Android 2.1及其以前的版本 347
14.3.2 Android 2.2及其以后的版本 348
14.3.3 實現(xiàn)Camera硬件抽象層 349
14.4 Camera系統(tǒng)的Java部分 350
14.5 開發(fā)拍照應用程序 357
14.5.1 通過Intent調用系統(tǒng)的照相機Activity 357
14.5.2 調用Camera API拍照 358
14.5.3 總結Camera拍照的流程 359
14.6 解析二維碼 361
14.6.1 QR Code碼的特點 361
14.6.2 實例14-1:使用Android設備解析二維碼 362
第15章 物聯(lián)網NFC近場通信開發(fā)詳解
15.1 近場通信技術基礎 371
15.1.1 NFC技術的特點 371
15.1.2 NFC的工作模式 372
15.1.3 NFC和藍牙的對比 372
15.2 射頻識別開發(fā)技術概覽 373
15.2.1 RFID技術簡介 373
15.2.2 RFID技術的組成 373
15.2.3 RFID技術的特點 374
15.2.4 RFID技術的工作原理 375
15.3 Android系統(tǒng)中的NFC 375
15.3.1 分析Java層 376
15.3.2 分析JNI部分 392
15.3.3 分析底層 397
15.4 總結開發(fā)NFC APP的方法 397
15.5 綜合實例:在物聯(lián)網設備中使用NFC發(fā)送消息 401
第16章 物聯(lián)網穿戴開發(fā)技術詳解
16.1 Google Now開發(fā)基礎 406
16.1.1 Google Now介紹 406
16.1.2 Google Now的用法 407
16.2 Android Wear詳解 409
16.2.1 什么是Android Wear 409
16.2.2 搭建Android Wear開發(fā)環(huán)境 411
16.3 開發(fā)Android Wear程序 415
16.3.1 創(chuàng)建通知 415
16.3.2 創(chuàng)建聲音 418
16.3.3 給通知添加頁面 421
16.3.4 通知堆 422
16.3.5 通知語法介紹 423
16.4 實例16-1:開發(fā)一個Android Wear
程序 424
16.5 實例16-2:實現(xiàn)手機和Android Wear的交互 431
第17章 Android智能家居系統(tǒng)
17.1 需求分析 445
17.1.1 背景介紹 445
17.1.2 傳感技術的推動 446
17.1.3 Android與智能家居的
緊密聯(lián)系 446
17.2 系統(tǒng)功能模塊介紹 447
17.3 系統(tǒng)主界面 447
17.3.1 實現(xiàn)布局文件 447
17.3.2 實現(xiàn)程序文件 448
17.4 系統(tǒng)設置 450
17.4.1 總體配置 450
17.4.2 系統(tǒng)總體配置 450
17.4.3 構建數(shù)據(jù)庫 453
17.5 家用電器控制模塊 455
17.5.1 家用電器控制主界面 456
17.5.2 溫度控制界面 458
17.5.3 電燈控制界面 459
17.6 快速預案管理模塊 462
17.6.1 天氣情況 462
17.6.2 歷史數(shù)據(jù) 467
17.6.3 系統(tǒng)設置 470
第18章 Android健康心率計系統(tǒng)
18.1 系統(tǒng)介紹 476
18.1.1 什么是心率 476
18.1.2 系統(tǒng)功能 477
18.2 具體實現(xiàn) 477
18.2.1 掃描藍牙設備 477
18.2.2 藍牙控制界面 480
18.2.3 藍牙BLE設備適配器 489
18.2.4 藍牙BLE服務適配器 491
18.2.5 傳感器測試心率 494
18.2.6 圖形化顯示心率值 495
第19章 Android行車記錄儀
19.1 選擇線路規(guī)劃目的地 498
19.1.1 系統(tǒng)主Activity界面 498
19.1.2 布局文件capture.xml 501
19.2 Adapter適配器處理 503
19.3 生成騎行路線圖 506
19.3.1 實時導航服務 506
19.3.2 線路計劃監(jiān)聽服務 507
19.3.3 線路任務服務 507
19.3.4 在地圖中顯示行駛線路 509
19.3.5 生成導航視圖 509
19.4 街道分析 511
19.5 海拔數(shù)據(jù)分析 513
第20章 Android多功能電視盒子
20.1 Android TV介紹 515
20.2 系統(tǒng)模塊結構 516
20.3 系統(tǒng)主界面 517
20.3.1 系統(tǒng)主界面布局 517
20.3.2 系統(tǒng)主界面Activity 518
20.4 本地服務 526
20.4.1 本地服主務界面 526
20.4.2 應用程序管理界面 530
注:以下內容讀者可在源代碼下載包中學習使用。
附錄A
A.1 編譯Android Kernel 534
A.1.1 獲取Goldfish內核代碼 534
A.1.2 獲取MSM內核代碼 537
A.1.3 獲取OMAP內核代碼 537
A.1.4 編譯Android的Linux內核 537
附錄B
B.1 Android藍牙系統(tǒng)架構分析 540
B.1.1 初始化藍牙芯片 540
B.1.2 藍牙服務 541
B.1.3 管理藍牙電源 542
B.2 Android BlueDroid架構詳解 542
B.2.1 Android系統(tǒng)中BlueDroid的架構 542
B.2.2 Application Framework層分析 542
B.2.3 分析Bluetooth System
Service層 550
B.2.4 JNI層詳解 551
B.2.5 HAL層詳解 556
附錄C
C.1 傳感器之Java層詳解 557
C.2 傳感器之Frameworks層詳解 563
C.2.1 監(jiān)聽傳感器的變化 563
C.2.2 注冊監(jiān)聽 563
C.3 傳感器之JNI層詳解 575