ANDROID物联网开发从入门到实战附源码

ANDROID物联网开发从入门到实战附源码_第1张图片

    本书从获取源码和搭建应用开发环境开始讲起,依次讲解了基础知识篇、数据传输篇、信息识别篇、传感器应用篇和技术提高篇这 5大部分内容。

目录

第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/1QVE4n8ry_8GM2U5rKbAOuA

你可能感兴趣的:(android,linux,java,编程语言,物联网)