《 Android物聯網開發從入門到實戰》國內第一本開發書籍!
今天小編分享的這本書是國內第一本Android物聯網開發書籍,由42個全真實戰案例,環環相扣,深入解析Android物聯網開發。
《Android物聯網開發從入門到實戰》內容分為 5篇,共計 17章,循序漸進地講解了 Android物聯網開發的基本知識。本書從獲取源碼和搭建應用開發環境開始講起,依次講解了基礎知識篇、數據傳輸篇、信息識別篇、感測器應用篇和技術提高篇這 5大部分內容。在講解每一個知識時,都遵循了理論聯繫實際的講解方式,從內核分析到介面 API實現,再到實戰演練,最後到綜合實例演練,徹底剖析了物聯網項目開發的完整實現流程。
本書幾乎涵蓋了當下Android物聯網開發的絕大多數內容,講解方法通俗易懂並且詳細,不但適合應用高手們學習,也特別便於初學者學習和理解。
目 錄
第1篇 基礎知識篇
第1章 Android系統介紹 2
1.1 縱覽智能設備系統 2
1.1.1 Symbian(塞班) 2
1.1.2 Android(安卓) 2
1.1.3 iOS(蘋果系統) 3
1.1.4 Windows Phone(微軟系統) 4
1.1.5 BlackBerry OS(黑莓) 4
1.2 分析Android成功的秘訣 5
1.2.1 強有力的業界支持 5
1.2.2 研發陣容強大 6
1.2.3 為開發人員「精心定製」 6
1.2.4 開源 6
1.3 剖析Android系統架構 7
1.3.1 底層操作系統層(OS) 7
1.3.2 各種庫(Libraries)和Android
運行環境(RunTime) 8
1.3.3 Application Framework
(應用程序框架) 9
1.3.4 頂層應用程序(Application) 9
1.4 核心組件 9
1.4.1 Activity界面 9
1.4.2 Intent和Intent Filters 10
1.4.3 Service服務 10
1.4.4 Broadcast Receiver發送廣播 11
1.4.5 用Content Provider存儲數據 11
1.5 進程和線程 12
1.5.1 什麼是進程 12
1.5.2 什麼是線程 12
1.6 物聯網技術改變未來 13
1.6.1 什麼是物聯網 13
1.6.2 發展歷程 13 [1]
1.6.3Android正在成為物聯網標準操作系統 14
1.7智能設備兇猛來襲 15
1.7.1常見的Android智能設備 15
1.7.2新興熱點——可穿戴設備 17
1.7.3可穿戴設備的發展前景分析 19
1.7.4Android對穿戴設備的支持——
AndroidWear 120
第2章搭建Android開發環境 21
2.1在Linux系統獲取Android源碼 21
2.2在Windows平台獲取Android源碼 22
2.3編譯源碼 24
2.3.1搭建編譯環境 25
2.3.2開始編譯 26
2.3.3在模擬器中運行 27
2.3.4常見的錯誤分析 27
2.3.5實踐演練——演示兩種編譯Android
程序的方法 28
2.4編譯AndroidKernel 32
2.4.1獲取Goldfish內核代碼 34
2.4.2獲取MSM內核代碼 34
2.4.3獲取OMAP內核代碼 34
2.4.4編譯Android的Linux內核 34
2.5搭建Android應用開發環境 36
2.5.1安裝JDK 37
2.5.2獲取並安裝Eclipse和AndroidSDK 39
2.5.3快速安裝SDK 42
2.5.4安裝ADT 43
2.5.5驗證設置 45
2.5.6創建Android虛擬設備(AVD) 46
2.5.7啟動AVD模擬器 48
第2篇 數據傳輸篇
第3章基本數據通信 52
3.1HTTP通信 52
3.1.1Android中的HTTP 52
3.1.2使用Apache介面 53
3.1.3在Android中使用http://java.net 57
3.1.4使用Android網路介面 59
3.1.5實戰演練——在屏幕中傳遞HTTP參數 60
3.1.6實戰演練——在戶外運動過程中訪問
HTTP地圖 64
3.2使用Socket實現數據通信 67
3.2.1基於Socket的Java網路編程 67
3.2.2使用TCP協議傳輸數據 68
3.3下載數據 72
3.3.1實戰演練——下載遠程伺服器中的圖片 72
3.3.2實戰演練——下載網路中的JSON信息 73
3.3.3實戰演練——下載並播放網路MP3 78
3.4上傳數據 84
3.4.1實戰演練——上傳文件到遠程伺服器 84
[2]
3.4.2實戰演練——使用GET方式上傳數據 87
3.4.3實戰演練——使用POST方式上傳數據 91
3.5處理XML數據 94
3.5.1XML的概述 95
3.5.2XML的語法 95
3.5.3獲取XML文檔 96
3.5.4SAX常用的介面和類 98
3.5.5實戰演練——使用SAX解析XML數據 100
3.5.6實戰演練——使用DOM解析XML
數據 103
第4章藍牙技術詳解 106
4.1短距離無線通信技術概覽 106
4.1.1ZigBee——低功耗、自組網 106
4.1.2WiFi——大帶寬支持家庭互聯 107
4.1.3藍牙——4.0進入低功耗時代 107
4.1.4NFC——必將逐漸遠離歷史舞台 108
4.2低功耗藍牙基礎 108
4.2.1低功耗藍牙的架構 109
4.2.2低功耗藍牙分類 109
4.2.3低功耗藍牙的集成方式 110
4.2.4低功耗藍牙的特點 111
4.2.5BLE和傳統藍牙BR/EDR技術的對比 111
4.3藍牙4.0BLE基礎 112
4.3.1低功耗是最大特點 112
4.3.2推動了可穿戴設備的興起 112
4.4藍牙規範 113
4.4.1Bluetooth常用規範 114
4.4.2藍牙協議體系結構 114
4.4.3低功耗(BLE)藍牙協議 116
4.4.4基於GATT的協議/服務 116
4.4.5雙模協議棧和單模協議棧 117
4.5低功耗藍牙協議棧詳解 118
4.5.1什麼是藍牙協議棧 118
4.5.2藍牙協議體系中的協議 119
4.6TI公司的低功耗藍牙 121
4.6.1獲取藍牙協議棧 121
4.6.2BLE藍牙協議棧結構 123
4.6.3BLE低功耗藍牙系統架構 124
4.6.4硬體抽象層HAL和BLE低功耗藍牙
協議棧 125
4.7實戰演練——使用藍牙控制電風扇 129
第5章Android藍牙系統詳解 142
5.1Android系統中的藍牙模塊 142
5.2分析藍牙模塊的源碼 143
5.2.1初始化藍牙晶元 144
5.2.2藍牙服務 144
5.2.3管理藍牙電源 145
5.3和藍牙相關的類 145
[2]
5.3.1BluetoothSocket類 145
5.3.2BluetoothServerSocket類 147
5.3.3BluetoothAdapter類 147
5.3.4BluetoothClass.Service類 154
5.3.5BluetoothClass.Device類 154
5.4AndroidBlueDroid架構詳解 155
5.4.1Android系統中BlueDroid的架構 155
5.4.2ApplicationFramework層分析 155
5.4.3分析BluetoothSystemService層 163
5.4.4JNI層詳解 163
5.4.5HAL層詳解 168
5.5Android中的低功耗藍牙協議棧 168
5.5.1低功耗藍牙協議棧基礎 169
5.5.2低功耗藍牙API詳解 169
第3篇 信息識別篇
第6章語音識別技術詳解 216
6.1語音識別技術基礎 216
6.1.1語音識別的發展歷史 216
6.1.2語音識別技術的發展歷程 217
6.2Text-To-Speech技術 217
6.2.1Text-To-Speech基礎 217
6.2.2Text-To-Speech的實現流程 218
6.2.3實戰演練——使用Text-To-Speech實現
語音識別 221
6.2.4實戰演練——藉助開源項目實現中文
語音識別 222
6.3VoiceRecognition技術詳解 227
6.3.1VoiceRecognition技術基礎 228
6.3.2實戰演練——使用VoiceRecognition
實現語音識別 230
6.4實戰演練——為設備中所有的APP
實現語音提醒功能 233
第7章手勢識別實戰 261
7.1Android中的事件監聽機制 261
7.1.1Android系統中的監聽事件 261
7.1.2Android事件監聽器的回調方法 262
7.1.3Android事件處理的兩種模型 263
7.1.4基於自定義監聽器的事件處理流程 264
7.2手勢識別技術介紹 266
7.2.1手勢識別類GestureDetector 266
7.2.2手勢檢測器類GestureDetector 267
7.2.3手勢識別處理事件和方法 270
7.3實戰演練——通過點擊的方式移動
圖片 271
7.4實戰演練——實現各種手勢識別 274
7.4.1布局文件main.xml 274
7.4.2隱藏屏幕頂部的電池等圖標和標題
內容 274
7.4.3監聽觸摸屏幕中各種常用的手勢 275
7.4.4根據監聽到的用戶手勢創建視圖 276
7.5實戰演練——實現手勢翻頁效果 278
7.5.1布局文件main.xml 278
7.5.2監聽手勢 278
第8章在物聯網設備中處理多媒體數據 284
8.1Android多媒體系統架構基礎 284
8.1.1OpenMax框架介紹 285
8.1.2OpenCore框架介紹 286
8.1.3StageFright框架介紹 287
[2]
8.2Graphics類詳解 288
8.2.1Graphics類基礎 288
8.2.2使用Graphics類 288
8.3二維動畫 293
8.3.1類Drawable 293
8.3.2實現Tween動畫效果 294
8.3.3實現Frame動畫效果 296
8.4OpenGLES詳解 301
8.4.1OpenGLES基礎 301
8.4.2Android用到OpenGLES 301
8.4.3OpenGLES的基本操作 302
8.4.4繪製圖形 308
8.5音頻開發 312
8.5.1音頻介面類 312
8.5.2AudioManager控制鈴聲 313
8.6錄音詳解 321
8.6.1使用MediaRecorder介面錄製音頻 321
8.6.2使用AudioRecord介面錄音 324
8.7在物聯網設備中播放音樂 327
8.7.1使用AudioTrack播放音頻 327
8.7.2使用MediaPlayer播放音頻 328
8.7.3使用SoundPool播放音頻 328
8.8為物聯網設備實現振動功能 329
8.9實戰鬧鐘功能 330
第9章GPS地圖定位 331
9.1位置服務 331
9.1.1類location詳解 331
9.1.2實現定位服務功能 332
9.1.3實戰演練——在Android設備中實現
GPS定位 334
9.2隨時更新位置信息 336
9.2.1庫Maps中的類 337
9.2.2使用LocationManager監聽位置 337
9.2.3實戰演練——監聽當前設備的坐標和
海拔 339
9.3在設備中使用地圖 348
9.3.1添加GoogleMap密鑰 348
9.3.2使用MapAPI密鑰 351
9.3.3實戰演練——在Android設備中使用
谷歌地圖實現定位 353
9.4接近警報 357
9.4.1類Geocoder基礎 357
9.4.2Geocoder的公共構造器和公共方法 359
9.4.3實戰演練——接近某個位置時實現自動
提醒 361
第4篇 感測器應用篇
第10章Android感測器系統架構詳解 376
10.1Android感測器系統概述 376
10.2Java層詳解 377
10.3Frameworks層詳解 383
10.3.1監聽感測器的變化 383
10.3.2註冊監聽 384
10.4JNI層詳解 395
10.4.1實現本地函數 396
10.4.2處理客戶端數據 400
10.4.3處理服務端數據 403
10.4.4封裝HAL層的代碼 417
10.4.5消息隊列處理 421
10.5HAL層詳解 424
10.6Android感測器應用開發基礎 432
10.6.1查看包含的感測器 432
10.6.2模擬器測試工具——SensorSimulator 434
10.6.3實戰演練——檢測當前設備支持的
感測器 437
第11章光線感測器和磁場感測器 439
11.1光線感測器詳解 439
11.1.1光線感測器介紹 439
11.1.2使用光線感測器的方法 440
11.1.3實戰演練——獲取設備中光線
感測器的值 441
[2]
11.1.4實戰演練——顯示設備中光線感測器
的強度 443
11.2磁場感測器詳解 445
11.2.1什麼是磁場感測器 445
11.2.2磁場感測器的分類 446
11.2.3Android系統中的磁場感測器 446
11.2.4實戰演練——獲取磁場感測器的3個
分量 447
11.2.5實戰演練——演示常用感測器的基本
用法 448
第12章加速度感測器、方向感測器和
陀螺儀感測器 458
12.1加速度感測器詳解 458
12.1.1加速度感測器的分類 458
12.1.2加速度感測器的主要應用領域 459
12.1.3線性加速度感測器的原理 460
12.1.4Android系統中的加速度感測器 461
12.1.5實戰演練——獲取X、Y、Z軸的
加速度值 462
12.1.6實戰演練——實現仿微信「搖一搖」
效果 464
12.2方向感測器詳解 471
12.2.1方向感測器基礎 471
12.2.2Android中的方向感測器 472
12.2.3實戰演練——測試當前設備的3個
方向值 473
12.2.4實戰演練——開發一個指南針程序 475
12.3陀螺儀感測器詳解 477
12.3.1陀螺儀感測器基礎 477
12.3.2Android中的陀螺儀感測器 478
12.4實戰演練——聯合使用加速度感測器和
陀螺儀感測器 481
12.4.1系統介紹界面 481
12.4.2系統主界面 484
第13章旋轉向量感測器、距離感測器和
氣壓感測器 504
13.1旋轉向量感測器詳解 504
13.1.1Android中的旋轉向量感測器 504
13.1.2實戰演練——確定設備當前的方向 505
13.2距離感測器詳解 516
13.2.1距離感測器介紹 516
13.2.2Android系統中的距離感測器 517
13.2.3實戰演練——實現自動鎖屏功能 519
13.3氣壓感測器詳解 525
13.3.1氣壓感測器基礎 526
13.3.2氣壓感測器在智能手機中的應用 526
13.3.3實戰演練——開發一個Android
氣壓計 526
第14章溫度感測器和濕度感測器 536
14.1溫度感測器詳解 536
14.1.1溫度感測器介紹 536
14.1.2Android系統中的溫度感測器 537
14.1.3實戰演練——開發一個Android
溫度計 539
[2]
14.1.4實戰演練——測試電池的溫度 541
14.2濕度感測器詳解 553
14.2.1Android系統中的濕度感測器 553
14.2.2實戰演練——獲取遠程濕度感測器的
數據 554
第5篇 技術提高篇
第15章條形碼解析技術詳解 562
15.1Android拍照系統結構基礎 562
15.2底層程序詳解 564
15.2.1V4L2API 564
15.2.2操作V4L2的流程 565
15.2.3V4L2驅動框架 567
15.2.4實現Video核心層 568
15.3拍照系統的硬體抽象層 571
15.3.1Andorid2.1及其以前的版本 571
15.3.2Andorid2.2及其以後的版本 572
15.3.3實現Camera硬體抽象層 574
15.4拍照系統的Java部分 575
15.5開發拍照應用程序 581
15.5.1通過Intent調用系統的照相機Activity 581
15.5.2調用CameraAPI拍照 582
15.5.3總結Camera拍照的流程 583
15.6解析二維碼 585
15.6.1QRCode碼的特點 585
15.6.2實戰演練——使用Android相機解析
二維碼 585
第16章NFC近場通信技術詳解 594
16.1近場通信技術基礎 594
16.1.1NFC技術的特點 594
16.1.2NFC的工作模式 594
16.1.3NFC和藍牙的對比 595
16.2射頻識別技術詳解 595
16.2.1RFID技術簡介 596
16.2.2RFID技術的組成 596
16.2.3RFID技術的特點 597
16.2.4RFID技術的工作原理 597
16.3Android系統中的NFC 598
16.3.1分析Java層 599
16.3.2分析JNI部分 614
16.3.3分析底層 619
16.4在Android系統編寫NFCAPP的
方法 619
16.5實戰演練——使用NFC發送
消息 622
第17章GoogleNow和AndroidWear
詳解 627
17.1GoogleNow介紹 627
17.1.1搜索引擎的升級——GoogleNow 627
17.1.2GoogleNow的用法 628
17.2AndroidWear詳解 629
17.2.1什麼是AndroidWear 629
17.2.2搭建AndroidWear開發環境 630
17.3開發AndroidWear程序 634
17.3.1創建通知 634
17.3.2創建聲音 637
17.3.3給通知添加頁面 639
17.3.4通知堆 640
17.3.5通知語法介紹 641
17.4實戰演練——開發一個AndroidWear
程序 642
17.5實戰演練——實現手機和Android
Wear的交互 649
(向下滾動可查看更多)
本書已打包好上傳至網盤了,下載鏈接:https://pan.baidu.com/s/1Uhb1wwQIn2fD6hm2h9srTQ 密碼:of4r(如鏈接失效可前往公眾號下載:OFweek物聯網)
推薦閱讀:
※物聯網行業中的機會與發展方向
※一個物聯網求索者眼中的中國物聯網產業7年
※挑戰物聯網碎片化-上 (芥子說物聯 第三期)
※從LPWA熱度升級看物聯網技術趨勢
※智慧城市建設中的的三大物聯網技術應用