Android感測器開發與智慧型設備案例實戰

《Android感測器開發與智慧型設備案例實戰》是2016年5月人民郵電出版社出版的圖書,作者是朱元波。

基本介紹

  • 書名:Android感測器開發與智慧型設備案例實戰
  • 作者朱元波 
  • ISBN:978-7-115-41474-8
  • 頁數:741頁
  • 定價:108元
  • 出版社人民郵電出版社
  • 出版時間:2016-05
  • 開本:16
  • 字數:1203千字
內容簡介,目錄,

內容簡介

本書主要介紹Android感測器和外設的開發,共29章,主要包括Android開發技術基礎、獲取並編譯源碼、Android技術核心框架分析、Android感測器系統分析、使用地圖定位、光線感測器詳解、接近警報感測器詳解、磁場感測器詳解、加速度感測器詳解、方向感測器詳解、陀螺儀感測器詳解、旋轉向量感測器詳解、距離感測器詳解、氣壓感測器詳解、溫度感測器詳解、濕度感測器詳解、Android藍牙系統概述、低功耗藍牙技術詳解、語音識別技術詳解、手勢識別技術詳解、NFC近場通信技術詳解、拍照解析條形碼技術詳解、基於圖像處理的人臉識別技術詳解、行走軌跡記錄器、手勢音樂播放器和智慧型家居系統等。本書幾乎涵蓋了Android感測器和外設開發所需的所有主要內容,講解方法通俗易懂。
本書適合Android初學者、Android愛好者以及Android底層開發人員、感測器開發人員、智慧型設備開發人員、Android外部設備開發工程師學習,也可以作為相關培訓學校和大專院校相關專業的教學用書。

目錄

第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

相關詞條

熱門詞條

聯絡我們