《Android物联网开发从入门到实战》PDF下载

  • 购买积分:19 如何计算积分?
  • 作  者:孙光宇,张玲玲编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2015
  • ISBN:9787302400844
  • 页数:660 页
图书介绍:本书讲解基于Android系统开发物联网应用程序的基本知识,包括Android开发技术基础、搭建Android应用开发环境、获取并编译源码、Android技术核心框架分析、在物联网设备中使用地图定位、传感器系统分析、在物联网设备中使用地图定位、光线传感器和接近警报、检测设备方向、检测穿戴设备的运动、环境传感器、蓝牙4.0 BLE详解、Android蓝牙系统、Android系统中的蓝牙4.0 BLE、语音识别技术、手势识别技术、多媒体应用、谷歌眼镜等。

第1篇 基础知识篇 2

第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运行环境(Run Time) 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.6.3 Android正在成为物联网标准操作系统 14

1.7 智能设备凶猛来袭 15

1.7.1 常见的Android智能设备 15

1.7.2 新兴热点——可穿戴设备 17

1.7.3 可穿戴设备的发展前景分析 19

1.7.4 Android对穿戴设备的支持——Android Wear 20

第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 编译Android Kernel 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和Android SDK 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篇 数据传输篇 52

第3章 基本数据通信 52

3.1 HTTP通信 52

3.1.1 Android 中的HTTP 52

3.1.2 使用Apache接口 53

3.1.3 在Android中使用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

3.4.2 实战演练——使用GET方式上传数据 87

3.4.3 实战演练——使用POST方式上传数据 91

3.5 处理XML数据 94

3.5.1 XML的概述 95

3.5.2 XML的语法 95

3.5.3 获取XML文档 96

3.5.4 SAX常用的接口和类 98

3.5.5 实战演练——使用SAX解析XML数据 100

3.5.6 实战演练——使用DOM解析XML数据 103

第4章 蓝牙技术详解 106

4.1 短距离无线通信技术概览 106

4.1.1 ZigBee——低功耗、自组网 106

4.1.2 WiFi——大带宽支持家庭互联 107

4.1.3 蓝牙——4.0进入低功耗时代 107

4.1.4 NFC——必将逐渐远离历史舞台 108

4.2 低功耗蓝牙基础 108

4.2.1 低功耗蓝牙的架构 109

4.2.2 低功耗蓝牙分类 109

4.2.3 低功耗蓝牙的集成方式 110

4.2.4 低功耗蓝牙的特点 111

4.2.5 BLE和传统蓝牙BR/EDR技术的对比 111

4.3 蓝牙4.0 BLE基础 112

4.3.1 低功耗是最大特点 112

4.3.2 推动了可穿戴设备的兴起 112

4.4 蓝牙规范 113

4.4.1 Bluetooth常用规范 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.6 TI公司的低功耗蓝牙 121

4.6.1 获取蓝牙协议栈 121

4.6.2 BLE蓝牙协议栈结构 123

4.6.3 BLE低功耗蓝牙系统架构 124

4.6.4 硬件抽象层HAL和BLE低功耗蓝牙协议栈 125

4.7 实战演练——使用蓝牙控制电风扇 129

第5章 Android蓝牙系统详解 142

5.1 Android系统中的蓝牙模块 142

5.2 分析蓝牙模块的源码 143

5.2.1 初始化蓝牙芯片 144

5.2.2 蓝牙服务 144

5.2.3 管理蓝牙电源 145

5.3 和蓝牙相关的类 145

5.3.1 BluetoothSocket类 145

5.3.2 BluetoothServerSocket类 147

5.3.3 BluetoothAdapter类 147

5.3.4 BluetoothClass.Service类 154

5.3.5 BluetoothClass.Device类 154

5.4 Android BlueDroid架构详解 155

5.4.1 Android系统中BlueDroid的架构 155

5.4.2 Application Framework层分析 155

5.4.3 分析Bluetooth System Service层 163

5.4.4 JNI层详解 163

5.4.5 HAL层详解 168

5.5 Android中的低功耗蓝牙协议栈 168

5.5.1 低功耗蓝牙协议栈基础 169

5.5.2 低功耗蓝牙API详解 169

第3篇 信息识别篇 216

第6章 语音识别技术详解 216

6.1 语音识别技术基础 216

6.1.1 语音识别的发展历史 216

6.1.2 语音识别技术的发展历程 217

6.2 Text-To-Speech技术 217

6.2.1 Text-To-Speech基础 217

6.2.2 Text-To-Speech的实现流程 218

6.2.3 实战演练——使用Text-To-Speech实现语音识别 221

6.2.4 实战演练——借助开源项目实现中文语音识别 222

6.3 Voice Recognition技术详解 227

6.3.1 Voice Recognition技术基础 228

6.3.2 实战演练——使用Voice Recognition实现语音识别 230

6.4 实战演练——为设备中所有的APP实现语音提醒功能 233

第7章 手势识别实战 261

7.1 Android中的事件监听机制 261

7.1.1 Android系统中的监听事件 261

7.1.2 Android事件监听器的回调方法 262

7.1.3 Android事件处理的两种模型 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.1 Android多媒体系统架构基础 284

8.1.1 OpenMax框架介绍 285

8.1.2 OpenCore框架介绍 286

8.1.3 StageFright框架介绍 287

8.2 Graphics类详解 288

8.2.1 Graphics类基础 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.4 OpenGL ES详解 301

8.4.1 OpenGL ES基础 301

8.4.2 Android用到OpenGL ES 301

8.4.3 OpenGL ES的基本操作 302

8.4.4 绘制图形 308

8.5 音频开发 312

8.5.1 音频接口类 312

8.5.2 AudioManager控制铃声 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 添加Google Map密钥 348

9.3.2 使用Map API密钥 351

9.3.3 实战演练——在Android设备中使用谷歌地图实现定位 353

9.4 接近警报 357

9.4.1 类Geocoder基础 357

9.4.2 Geocoder的公共构造器和公共方法 359

9.4.3 实战演练——接近某个位置时实现自动提醒 361

第4篇 传感器应用篇 376

第10章 Android传感器系统架构详解 376

10.1 Android传感器系统概述 376

10.2 Java层详解 377

10.3 Frameworks层详解 383

10.3.1 监听传感器的变化 383

10.3.2 注册监听 384

10.4 JNI层详解 395

10.4.1 实现本地函数 396

10.4.2 处理客户端数据 400

10.4.3 处理服务端数据 403

10.4.4 封装HAL层的代码 417

10.4.5 消息队列处理 421

10.5 HAL层详解 424

10.6 Android传感器应用开发基础 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

11.1.4 实战演练——显示设备中光线传感器的强度 443

11.2 磁场传感器详解 445

11.2.1 什么是磁场传感器 445

11.2.2 磁场传感器的分类 446

11.2.3 Android系统中的磁场传感器 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.4 Android系统中的加速度传感器 461

12.1.5 实战演练——获取X、Y、Z轴的加速度值 462

12.1.6 实战演练——实现仿微信“摇一摇”效果 464

12.2 方向传感器详解 471

12.2.1 方向传感器基础 471

12.2.2 Android 中的方向传感器 472

12.2.3 实战演练——测试当前设备的3个方向值 473

12.2.4 实战演练——开发一个指南针程序 475

12.3 陀螺仪传感器详解 477

12.3.1 陀螺仪传感器基础 477

12.3.2 Android中的陀螺仪传感器 478

12.4 实战演练——联合使用加速度传感器和陀螺仪传感器 481

12.4.1 系统介绍界面 481

12.4.2 系统主界面 484

第13章 旋转向量传感器、距离传感器和气压传感器 504

13.1 旋转向量传感器详解 504

13.1.1 Android中的旋转向量传感器 504

13.1.2 实战演练——确定设备当前的方向 505

13.2 距离传感器详解 516

13.2.1 距离传感器介绍 516

13.2.2 Android系统中的距离传感器 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.2 Android系统中的温度传感器 537

14.1.3 实战演练——开发一个Android温度计 539

14.1.4 实战演练——测试电池的温度 541

14.2 湿度传感器详解 553

14.2.1 Android系统中的湿度传感器 553

14.2.2 实战演练——获取远程湿度传感器的数据 554

第5篇 技术提高篇 562

第15章 条形码解析技术详解 562

15.1 Android拍照系统结构基础 562

15.2 底层程序详解 564

15.2.1 V4L2 API 564

15.2.2 操作V4L2的流程 565

15.2.3 V4L2驱动框架 567

15.2.4 实现Video核心层 568

15.3 拍照系统的硬件抽象层 571

15.3.1 Andorid 2.1 及其以前的版本 571

15.3.2 Andorid 2.2 及其以后的版本 572

15.3.3 实现Camera硬件抽象层 574

15.4 拍照系统的Java部分 575

15.5 开发拍照应用程序 581

15.5.1 通过Intent调用系统的照相机Activity 581

15.5.2 调用Carnera API拍照 582

15.5.3 总结Camera拍照的流程 583

15.6 解析二维码 585

15.6.1 QR Code码的特点 585

15.6.2 实战演练——使用Android相机解析二维码 585

第16章 NFC近场通信技术详解 594

16.1 近场通信技术基础 594

16.1.1 NFC技术的特点 594

16.1.2 NFC的工作模式 594

16.1.3 NFC和蓝牙的对比 595

16.2 射频识别技术详解 595

16.2.1 RFID技术简介 596

16.2.2 RFID技术的组成 596

16.2.3 RFID技术的特点 597

16.2.4 RFID技术的工作原理 597

16.3 Android系统中的NFC 598

16.3.1 分析Java层 599

16.3.2 分析JNI部分 614

16.3.3 分析底层 619

16.4 在Android系统编写NFC APP的方法 619

16.5 实战演练——使用NFC发送消息 622

第17章 Google Now和Android Wear详解 627

17.1 Google Now介绍 627

17.1.1 搜索引擎的升级——Google Now 627

17.1.2 Google Now的用法 628

17.2 Android Wear详解 629

17.2.1 什么是Android Wear 629

17.2.2 搭建Android Wear开发环境 630

17.3 开发Android Wear程序 634

17.3.1 创建通知 634

17.3.2 创建声音 637

17.3.3 给通知添加页面 639

17.3.4 通知堆 640

17.3.5 通知语法介绍 641

17.4 实战演练——开发一个Android Wear程序 642

17.5 实战演练——实现手机和Android Wear的交互 649