《ANDROID传感器开发与智能设备案例实战》PDF下载

  • 购买积分:20 如何计算积分?
  • 作  者:朱元波编
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2016
  • ISBN:7115414748
  • 页数:741 页
图书介绍:

第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.1ocation功能类 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