Android傳感器開發與智能設備案例實戰

朱元波

  • 出版商: 人民郵電
  • 出版日期: 2024-01-01
  • 售價: $648
  • 語言: 簡體中文
  • 頁數: 741
  • ISBN: 7115414742
  • ISBN-13: 9787115414748
  • 相關分類: Android
  • 下單後立即進貨 (約4週~6週)

  • Android傳感器開發與智能設備案例實戰-preview-1
Android傳感器開發與智能設備案例實戰-preview-1

相關主題

商品描述

本書主要介紹Android傳感器和外設的開發,共29章,主要包括Android開發技術基礎、獲取並編譯源碼、Android技術核心框架分析、Android傳感器系統分析、使用地圖定位、光線傳感器詳解、接近警報傳感器詳解、磁場傳感器詳解、加速度傳感器詳解、方向傳感器詳解、陀螺儀傳感器詳解、旋轉向量傳感器詳解、距離傳感器詳解、氣壓傳感器詳解、溫度傳感器詳解、濕度傳感器詳解、Android藍牙系統概述、低功耗藍牙技術詳解、語音識別技術詳解、手勢識別技術詳解、NFC近場通信技術詳解、拍照解析條形碼技術詳解、基於圖像處理的人臉識別技術詳解、行走軌跡記錄器、手勢音樂播放器和智能家居系統等。本書幾乎涵蓋了Android傳感器和外設開發所需的所有主要內容,講解方法通俗易懂。

本書適合Android初學者、Android愛好者以及Android底層開發人員、傳感器開發人員、智能設備開發人員、Android外部設備開發工程師學習,也可以作為相關培訓學校和大專院校相關專業的教學用書。

作者簡介

曾就職於中國聯通開發部,從事信號采集開發工作。現就職於東軟軟件,負責三星電子產品的Android產品定制,從事Androd雲端系統開發和數據通信開發。51cto客座Android和iOS專家,定期參加火狐召開的開發專家會議。

目錄大綱

目 錄

第 1章 Android開發技術基礎 1

1.1 智能手機操作系統介紹 1

1.2 Android的巨大優勢 2

1.2.1 系出名 門 2

1.2.2 強大的開發團隊 2

1.2.3 Android系統開源 2

第 2章 搭建Android應用開發環境 3

2.1 安裝Android SDK的系統要求 3

2.2 安裝JDK 3

2.3 安裝Eclipse和Android SDK 6

2.3.1 獲取並安裝Eclipse和

Android SDK 6

2.3.2 快速安裝SDK 8

2.4 安裝ADT 8

2.5 驗證設置 10

2.5.1 設定Android SDK Home 10

2.5.2 驗證開發環境 10

2.5.3 創建Android虛擬設備

(AVD) 11

2.6 啟動AVD模擬器 12

2.6.1 模擬器和真機有何區別 13

2.6.2 啟動AVD模擬器的基本流程 13

第3章 獲取並編譯源碼 14

3.1 在Linux系統獲取Android源碼 14

3.2 在Windows平臺獲取Android源碼 15

3.3 分析Android源碼結構 17

3.3.1 應用程序 18

3.3.2 應用程序框架 19

3.3.3 系統服務 20

3.3.4 系統程序庫 22

3.3.5 系統運行庫 24

3.3.6 硬件抽象層 25

3.4 編譯源碼 26

3.4.1 搭建編譯環境 26

3.4.2 開始編譯 26

3.4.3 在模擬器中運行 28

3.4.4 常見的錯誤分析 28

3.4.5 實踐演練——演示兩種編譯

Android程序的方法 29

3.5 編譯Android Kernel 32

3.5.1 獲取Goldfish內核代碼 32

3.5.2 獲取MSM內核代碼 34

3.5.3 獲取OMAP內核代碼 35

3.5.4 編譯Android的Linux內核 35

3.6 編譯源碼生成SDK 36

第4章 Android技術核心框架分析 40

4.1 分析Android的系統架構 40

4.1.1 Android體系結構介紹 40

4.1.2 Android應用工程文件組成 42

4.2 Android的五大組件 45

4.2.1 Activity界面組件 45

4.2.2 Intent切換組件 45

4.2.3 Service服務組件 45

4.2.4 用Broadcast/Receiver廣播

機制組件 46

4.2.5 ContentProvider存儲組件 46

4.3 進程和線程 46

4.3.1 什麼是進程 47

4.3.2 什麼是線程 47

4.3.3 應用程序的生命周期 47

4.4 Android和Linux的關系 49

4.4.1 Android繼承於Linux 50

4.4.2 Android和Linux內核

的區別 50

4.5 第 一段Android程序 52

4.5.1 新建Android工程 52

4.5.2 調試程序 54

4.5.3 運行程序 54

第5章 Android傳感器系統分析 56

5.1 Android傳感器系統概述 56

5.2 分析Java層 57

5.3 分析Frameworks層 62

5.3.1 監聽傳感器的變化 62

5.3.2 註冊監聽 62

5.4 分析JNI層 71

5.4.1 分析android_hardware_

SensorManager.cpp 72

5.4.2 處理客戶端數據 75

5.4.3 處理服務端數據 77

5.4.4 封裝HAL層的代碼 87

5.4.5 消息隊列處理 91

5.5 分析HAL層 94

第6章 Android傳感器系統概覽 102

6.1 Android設備的傳感器系統 102

6.1.1 包含的傳感器 102

6.1.2 檢測當前設備支持的傳感器 103

6.2 使用SensorSimulator 105

6.3 查看傳感器的相關信息 107

第7章 地圖定位 120

7.1 位置服務 120

7.1.1 android.location功能類 120

7.1.2 實現定位服務功能 121

7.1.3 實戰演練——在Android設備

中實現GPS定位 123

7.2 及時更新位置信息 125

7.2.1 Maps庫類 125

7.2.2 使用LocationManager

及時監聽 126

7.2.3 實戰演練——在Android

設備中顯示當前位置的

坐標和海拔 127

7.3 在Android設備中使用地圖 134

7.3.1 準備工作 134

7.3.2 使用Map API密鑰的

基本流程 135

7.3.3 實戰演練——在Android設備

中使用谷歌地圖實現定位 137

7.4 在Android設備中實現地址查詢 141

7.5 在Android設備中實現路徑導航 144

第8章 光線傳感器詳解 149

8.1 光線傳感器基礎 149

8.1.1 光線傳感器介紹 149

8.1.2 在Android中使用光線

傳感器的方法 150

8.2 實戰演練——獲取設備中光線

傳感器的值 151

8.3 實戰演練——顯示設備中光線

傳感器的強度 152

8.4 實戰演練——顯示設備名稱和

光線強度 154

8.5 實戰演練——智能樓宇燈光

控制系統 155

8.5.1 布局文件 156

8.5.2 實現程序文件 166

第9章 接近警報傳感器詳解 190

9.1 類Geocoder詳解 190

9.1.1 類Geocoder基礎 190

9.1.2 公共構造器 190

9.1.3 公共方法 190

9.1.4 Geocoder的主要功能 192

9.1.5 地理編碼和地理反編碼 193

9.2 實戰演練——在設備地圖中

快速查詢某個位置 195

9.3 實戰演練——接近某個位置時

實現自動提醒 197

第 10章 磁場傳感器詳解 207

10.1 磁場傳感器基礎 207

10.1.1 什麼是磁場傳感器 207

10.1.2 磁場傳感器的分類 207

10.2 Android系統中的磁場傳感器 208

10.3 實戰演練——獲取磁場傳感器

的3個分量 209

10.4 實戰演練——演示常用傳感器

的基本用法 210

10.4.1 實現布局文件 210

10.4.2 實現程序文件 210

第 11章 加速度傳感器詳解 217

11.1 加速度傳感器基礎 217

11.1.1 加速度傳感器的分類 217

11.1.2 加速度傳感器的主要

應用領域 218

11.2 Android系統中的加速度傳感器 219

11.2.1 實戰演練——獲取x、y、z軸

的加速度值 220

11.2.2 實戰演練——實現控件的

抖動效果 222

11.2.3 實戰演練——實現仿微信

“搖一搖”效果 224

11.3 線性加速度傳感器詳解 229

11.3.1 線性加速度傳感器的原理 229

11.3.2 實戰演練——測試小球

的運動 230

第 12章 方向傳感器詳解 235

12.1 方向傳感器基礎 235

12.1.1 方向傳感器必 備知識 235

12.1.2 Android中的方向傳感器 236

12.2 實戰演練——測試當前設備的

3個方向值 236

12.2.1 實現布局文件 236

12.2.2 實現主程序文件 237

12.3 實戰演練——開發一個指南針

程序 238

12.3.1 實現布局文件 238

12.3.2 實現程序文件 238

12.4 開發一個具有定位功能的指南針 240

12.4.1 實現布局文件 240

12.4.2 實現程序文件 242

第 13章 陀螺儀傳感器詳解 251

13.1 陀螺儀傳感器基礎 251

13.2 Android中的陀螺儀傳感器 252

13.2.1 陀螺儀傳感器和加速度

傳感器的對比 252

13.2.2 智能設備中的陀螺儀

傳感器 252

13.3 實戰演練——聯合使用互補濾波器

和陀螺儀傳感器 254

13.3.1 實現布局文件 255

13.3.2 實現主Activity文件 260

13.3.3 實現均值濾波器 266

13.3.4 測量各個平面的值 267

13.3.5 傳感器處理 278

第 14章 旋轉向量傳感器詳解 290

14.1 Android中的旋轉向量傳感器 290

14.2 實戰演練——確定設備當前的

具體方向 291

14.2.1 實現主Activity 291

14.2.2 獲取設備的旋轉向量 298

第 15章 距離傳感器詳解 301

15.1 距離傳感器基礎 301

15.1.1 距離傳感器介紹 301

15.1.2 Android系統中的距離

傳感器 302

15.2 實戰演練——使用距離傳感器

實現自動鎖屏功能 303

15.3 實戰演練——根據設備的距離

實現自動鎖屏功能 308

15.4 實戰演練——繪制運動曲線 310

15.4.1 實現布局文件 310

15.4.2 實現Activity程序文件 312

15.4.3 實現監聽事件處理 316

15.5 實戰演練——開發一個健身

計步器 319

15.5.1 系統功能模塊介紹 319

15.5.2 系統主界面 319

15.5.3 系統設置模塊 329

第 16章 氣壓傳感器詳解 347

16.1 氣壓傳感器基礎 347

16.1.1 什麼是氣壓傳感器 347

16.1.2 氣壓傳感器在智能手機

中的應用 347

16.2 實戰演練——開發一個Android

氣壓計系統 348

16.2.1 編寫插件調用文件 348

16.2.2 編寫Cordova插件文件 349

16.2.3 定義每個時間點的壓力值 351

16.2.4 監聽傳感器傳來的和存儲

的新壓力值 351

16.3 實戰演練——獲取當前相對海拔

和絕 對海拔的數據 355

16.3.1 實現布局文件 355

16.3.2 實現主Activity 357

第 17章 溫度傳感器詳解 364

17.1 溫度傳感器基礎 364

17.2 Android系統中的溫度傳感器 364

17.3 實戰演練——讓Android設備

變為溫度計 366

17.3.1 實現布局文件 367

17.3.2 檢測溫度傳感器的

溫度變化 367

17.4 實戰演練——電池溫度測試儀 368

17.4.1 實現布局文件 368

17.4.2 實現程序文件 369

17.5 實戰演練——測試溫度、濕度、

光照和壓力 377

17.5.1 實現Arduino文件 377

17.5.2 實現Android APP 385

第 18章 濕度傳感器詳解 388

18.1 濕度傳感器基礎 388

18.2 Android系統中的濕度傳感器 389

18.3 實戰演練——獲取遠程濕度

傳感器的數據 389

18.3.1 編寫布局文件 390

18.3.2 監聽用戶觸摸單擊屏幕

控件事件並處理 391

18.3.3 設置遠程濕度傳感器的

初始URL地址 393

18.4 實戰演練——開發一個濕度

測試儀 394

18.4.1 實現主界面 394

18.4.2 設置具體值 397

18.4.3 顯示當前的值 401

18.4.4 保存當前數值 404

18.4.5 圖形化顯示測試結果 405

18.4.6 濕度跟蹤器 414

第 19章 Android藍牙系統概述 416

19.1 藍牙概述 416

19.1.1 藍牙技術的發展歷程 416

19.1.2 藍牙的特點 416

19.2 Android系統中的藍牙模塊 416

19.3 分析藍牙模塊的源碼 418

19.3.1 初始化藍牙芯片 418

19.3.2 藍牙服務 418

19.3.3 管理藍牙電源 419

19.4 和藍牙相關的類 419

19.4.1 BluetoothSocket類 419

19.4.2 BluetoothServerSocket類 421

19.4.3 BluetoothAdapter類 421

19.4.4 BluetoothClass.Service類 428

19.4.5 BluetoothClass.Device類 428

19.5 在Android平臺開發藍牙

應用程序 429

19.6 實戰演練——開發一個控制玩具

車的藍牙遙控器 432

19.7 實戰演練——開發一個藍牙

控制器 438

19.7.1 界面布局 439

19.7.2 響應單擊按鈕 440

19.7.3 和指定的服務器建立連接 441

19.7.4 搜索附近的藍牙設備 442

19.7.5 建立和OBEX服務器的

數據傳輸 443

19.7.6 實現藍牙服務器端的

數據處理 446

第 20章 低功耗藍牙技術詳解 448

20.1 短距離無線通信技術概覽 448

20.1.1 ZigBee——低功耗、

自組網 448

20.1.2 Wi-Fi——大帶寬支持

家庭互聯 449

20.1.3 藍牙——4.0進入

低功耗時代 449

20.1.4 NFC——近場通信 449

20.2 藍牙4.0 BLE基礎 450

20.2.1 藍牙4.0的優勢 450

20.2.2 Bluetooth 4.0 BLE推動了

智能設備的興起 451

20.3 低功耗藍牙基礎 452

20.3.1 低功耗藍牙的架構 452

20.3.2 低功耗藍牙分類 452

20.3.3 集成方式 453

20.3.4 低功耗藍牙的特點 454

20.3.5 BLE和傳統藍牙BR/EDR

技術的對比 454

20.4 藍牙規範 455

20.4.1 Bluetooth系統中的

常用規範 455

20.4.2 藍牙協議體系結構 456

20.4.3 低功耗(BLE)藍牙協議 457

20.4.4 現有的基於GATT的

協議/服務 457

20.4.5 雙模協議棧 458

20.4.6 單模協議棧 458

20.5 低功耗藍牙協議棧詳解 459

20.5.1 藍牙協議棧基礎 459

20.5.2 藍牙協議體系中的協議 460

20.5.3 Android的低功耗藍牙

協議棧 461

20.6 TI公司的低功耗藍牙 462

20.6.1 獲取TI公司的低功耗

藍牙協議棧 462

20.6.2 分析TI公司的低功耗

藍牙協議棧 463

20.7 使用藍牙控制電風扇 469

20.7.1 準備DHT傳感器 469

20.7.2 實現Android測試APP 473

第 21章 語音識別技術詳解 479

21.1 語音識別技術基礎 479

21.1.1 語音識別的發展歷史 479

21.1.2 技術發展歷程 480

21.2 Text-To-Speech技術詳解 480

21.2.1 Text-To-Speech基礎 480

21.2.2 Text-To-Speech的

實現流程 481

21.2.3 實戰演練——使用Text-To-Speech技術實現

語音識別 483

21.3 Voice Recognition技術詳解 484

21.3.1 Voice Recognition技術

基礎 484

21.3.2 實戰演練——使用

Voice Recognition技術

實現語音識別 486

21.4 實戰演練——開發一個語音

識別系統 489

21.4.1 驗證是否支持所需要

的語言 489

21.4.2 實現TTS的初始化工作 489

21.4.3 開啟語言檢查功能 491

21.4.4 跟蹤語言數據的安裝狀況 492

21.4.5 轉換語言並處理結果 493

21.4.6 實現語音閱讀測試 495

21.4.7 保證系統可以實現正確

的語音識別 499

21.4.8 顯示語音識別的結果 501

21.4.9 處理回調 502

第 22章 手勢識別技術詳解 508

22.1 手勢識別技術基礎 508

22.1.1 類GestureDetector基礎 508

22.1.2 使用類GestureDetector 509

22.1.3 手勢識別處理事件和方法 511

22.2 實戰演練——通過觸摸方式

移動圖片 512

22.2.1 實例說明 512

22.2.2 具體實現 512

22.3 實戰演練——實現各種手勢

識別 515

22.4 實戰演練——實現手勢拖動和

縮放圖片效果 517

22.4.1 實現布局文件 518

22.4.2 監聽用戶選擇的設置選項 518

22.4.3 獲取並設置移動位置和

縮放值 519

22.4.4 在不同的縮放狀態下

繪制圖像視圖 520

22.4.5 根據監聽到的手勢實現

圖片縮放 522

第 23章 NFC近場通信技術詳解 524

23.1 近場通信技術基礎 524

23.1.1 NFC技術的特點 524

23.1.2 NFC的工作模式 524

23.1.3 NFC和藍牙的對比 525

23.2 射頻識別技術詳解 525

23.2.1 RFID技術簡介 526

23.2.2 RFID技術的組成 526

23.2.3 RFID技術的特點 526

23.2.4 RFID技術的工作原理 527

23.3 Android系統中的NFC 528

23.3.1 分析Java層 528

23.3.2 分析JNI部分 548

23.3.3 分析底層 556

23.4 編寫NFC程序 556

23.4.1 在Android系統編寫

NFC APP的方法 556

23.4.2 實戰演練——使用NFC

發送消息 558

23.4.3 實戰演練——使用NFC

讀寫Mifare Tag 562

第 24章 拍照解析條形碼技術詳解 566

24.1 Android拍照系統介紹 566

24.1.1 分析拍照系統的底層程序 568

24.1.2 分析拍照系統的硬件

抽象層 574

24.1.3 分析拍照系統的Java部分 577

24.2 開發拍照應用程序 582

24.2.1 通過Intent調用系統的

照相機Activity 583

24.2.2 調用Camera API拍照 583

24.2.3 總結Camera拍照的流程 584

24.2.4 實戰演練——獲取系統現

有相機拍攝的圖片 586

24.2.5 實戰演練——使用Camera

預覽並拍照 590

24.2.6 實戰演練——使用Camera

API方式拍照 594

24.3 使用拍照方式解析二維碼 596

24.3.1 QR Code碼的特點 596

24.3.2 實戰演練——使用Android

相機解析二維碼 597

第 25章 麥克風音頻錄制技術詳解 604

25.1 使用MediaRecorder接口

錄制音頻 604

25.1.1 類MediaRecorder詳解 604

25.1.2 實戰演練——使用MediaRecorder錄制音頻 605

25.2 使用AudioRecord接口錄制音頻 609

25.2.1 AudioRecord的常量 609

25.2.2 AudioRecord的構造函數 610

25.2.3 AudioRecord的公共方法 610

25.2.4 AudioRecord的受保護

方法 612

25.2.5 實戰演練——使用

AudioRecord錄制音頻 612

25.3 實戰演練——麥克風錄音

綜合實例 614

25.3.1 獲取錄音源的**大振幅 614

25.3.2 實現異步音頻錄制功能 616

25.3.3 監聽是否超越**大值 618

25.3.4 錄制音頻 618

25.3.5 巨響檢測 621

25.3.6 檢測一致性頻率 622

第 26章 基於圖像處理的人臉識別

技術詳解 624

26.1 二維圖形處理詳解 624

26.1.1 類Graphics基礎 624

26.1.2 實戰演練——使用

Graphics類 624

26.1.3 實戰演練——使用Color類

和Paint類實現繪圖處理 626

26.2 二維動畫處理詳解 628

26.2.1 類Drawable詳解 628

26.2.2 實現Tween Animation

動畫 629

26.2.3 實戰演練——實現Tween

動畫效果 630

26.2.4 實戰演練——使用Tween Animation實現Tween

動畫效果 631

26.2.5 實現Frame Animation

動畫效果 632

26.2.6 實戰演練——播放

GIF動畫 633

26.3 Android人臉識別技術詳解 634

26.3.1 分析人臉識別模塊的源碼 634

26.3.2 實戰演練——使用內置

模塊實現人臉識別 635

26.3.3 實戰演練——實現

人臉識別 636

26.3.4 實戰演練——從照片中

取出人臉 640

第 27章 行走軌跡記錄器 642

27.1 系統功能模塊介紹 642

27.2 系統主界面 642

27.2.1 布局文件 642

27.2.2 實現主Activity 645

27.3 系統設置 658

27.3.1 選項設置 659

27.3.2 生成GPX文件和

KML文件 661

27.4 郵件分享提醒 665

27.4.1 基本郵箱設置 665

27.4.2 實現郵件發送功能 668

27.5 上傳OSM地圖 671

27.5.1 授權提示布局文件 671

27.5.2 實現文件上傳 673

第 28章 手勢音樂播放器 675

28.1 系統功能模塊介紹 675

28.2 系統主界面 675

28.3 系統列表界面 678

28.3.1 布局文件 678

28.3.2 程序文件 680

28.4 實現公共類 691

28.4.1 核心公共類Jamendo

Application 691

28.4.2 緩存圖片資源 694

28.4.3 類RequestCache 694

28.5 手勢操作 695

28.5.1 Android提供的手勢

操作API 695

28.5.2 使用命令模式構建手勢

識別系統 698

28.5.3 實現抽象命令角色

Command 698

28.5.4 實現具體命令角色ConcreteCommand 698

28.5.5 實現命令接收者角色

Receiver 699

28.5.6 實現調用者角色Invoker 700

28.5.7 實現裝配者角色Client 701

28.6 播放處理 701

28.6.1 設計播放界面 702

28.6.2 分析播放流程 702

第 29章 智能家居系統 710

29.1 需求分析 710

29.1.1 背景介紹 710

29.1.2 傳感技術的推動 710

29.1.3 Android與智能家居的

緊密聯系 711

29.2 系統功能模塊介紹 711

29.3 系統主界面 711

29.3.1 實現布局文件 711

29.3.2 實現程序文件 712

29.4 系統設置 714

29.4.1 總體配置 714

29.4.2 系統總體配置 714

29.4.3 構建數據庫 719

29.5 電器控制模塊 721

29.5.1 電器控制主界面 721

29.5.2 溫度控制界面 723

29.5.3 電燈控制界面 724

29.6 預案管理模塊 727

29.6.1 天氣情況 727

29.6.2 歷史數據 735

29.6.3 系統設置 737