《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