Android物联网开发细致入门与最佳实践
书 号:9787113216962
丛 书 名:
作 者:李天祥
译 者:
开 本:16开
装 帧:平装
正文语种:
出 版 社:中国铁道出版社有限公司
定 价:79元
-
内容简介
本书循序渐进地讲解了基于Android系统开发物联网应用程序的基本知识、关键技术和实战流程。在讲解每一个知识时,都遵循了理论联系实际的讲解方式,从内核分析到接口API实现,再到实战演练,最后到综合实例演练,彻底剖析了开发物联网项目的完整实现流程。 -
前言
2007年11月5日,谷歌公司宣布基于Linux平台的开源手机操作系统Android诞生,该平台号称是首个为移动终端打造的真正开放和完整的移动软件。在本书的内容中,将与广大读者一起共同领略这款系统的神奇之处,详细阐述在Android系统中为物联网设备开发应用程序的基本知识。
2015年在不知不觉间过去了,截至2015年12月,Android在手机市场上的占有率为81%,iOS的市场份额为15%,Windows Phone的市场份额为3%。从上述数据不难看出,Android平台占据了市场的主导地位,继续担当老大的角色。
本书的内容
在本书的内容中,详细讲解了基于Android系统开发物联网应用程序的基本知识。本书内容分为五篇,共20章,循序渐进地讲解了开发Android物联网应用程序的基本知识。本书从Android系统介绍开始讲起,依次讲解了基础知识篇、数据传输篇、传感器应用篇、知识进阶篇和综合实战篇五部分内容。分别讲解了Android系统介绍,搭建Android开发环境,传输网络数据,使用蓝牙传输数据,Android蓝牙系统详解,物联网语音识别开发详解,物联网设备手势识别,在物联网设备中处理多媒体数据,Android传感器系统架构详解,光线传感器和磁场传感器开发详解,加速度传感器、方向传感器和陀螺仪传感器,旋转向量传感器、距离传感器和气压传感器,温度传感器和湿度传感器,物联网条形码识别开发详解,物联网NFC近场通信开发详解,Android智能家居系统,Android健康心率计系统,Android行车记录仪,Android多功能电视盒子。在讲解上述每一个知识时,都遵循了理论联系实际的讲解方式,从内核分析到接口API实现,再到实战演练,最后到综合实例演练,彻底剖析了开发物联网项目的完整实现流程。本书几乎涵盖了所有Android物联网开发的主要内容,讲解方法通俗易懂且详细,不但适合应用高手们的学习,也特别有利于初学者学习并消化。
本书的版本
Android系统自2008年9月发布第一个版本1.1以来,截至2015年10月发布最新版本6.1,一共存在十多个版本。由此可见,Android系统升级频率较快,一年之中最少有两个新版本诞生。如果过于追求新版本,会造成力不从心的结果。所以在此建议广大读者:“不必追求最新的版本,只需关注最流行的版本即可”。据官方统计,截至2015年12月15日,占据前三位的版本分别是Android 5.0,Android 4.4和Android 4.3。在本书中使用的版本是目前(本书成稿时)使用最多的Android 5.0。
本书特色
本书内容十分丰富,并且讲解细致。我们的目标是通过一本图书能提供多本图书的价值,读者可以根据自己的需要有选择地阅读。在内容的编写上,本书具有以下特色:
(1)内容全面,讲解细致
本书几乎涵盖了Android物联网开发所需要的所有主要知识点,详细讲解了每一个典型物联网项目的实现过程和具体移植方法。每一个知识点都力求用翔实和易懂的语言展现在读者面前。
(2)遵循合理的主线进行讲解
为了使广大读者彻底弄清楚Android物联网开发的各个知识点,在讲解每一个知识点时,从Linux内核开始讲起,依次剖析了底层架构、API接口连接和具体应用的知识。遵循了从底层到顶层,实现了Android物联网开发大揭秘的目标。
(3)章节独立,自由阅读
本书中的每一章内容都可以独自成书,读者既可以按照本书编排的章节顺序进行学习,也可以根据自己的需求对某一章节进行有针对性的学习。和传统古板的计算机书籍相比,阅读本书会带来更大的快乐。
(4)实例典型,实用性强
本书讲解了现实中最典型Android物联网项目的实现方法和架构技巧,这些经典应用都是在商业项目中最需要的部分。读者可以直接将本书中的知识抛砖引玉,应用到自己的项目中,实现无缝对接。
读者对象
初学Android编程的自学者。
Linux开发人员。
大、中专院校的老师和学生。
毕业设计的学生。
Android编程爱好者。
相关培训机构的老师和学员。
从事Android开发的程序员。
本书在编写过程中,得到了中国铁道出版社编辑的大力支持,正是各位编辑的求实、耐心和效率,才能使本书在这么短的时间内出版。另外也十分感谢我的家人,在我写作时给予的巨大支持。
由于技术发展迅猛和水平所限,书中纰漏和不尽如人意之处在所难免,诚请读者提出宝贵意见或建议,以便修订并使之更臻完善。另外我们提供了售后支持QQ:729017304,读者朋友如有疑问可以在此提出,一定会得到满意的答复。 -
目录
第1章 Android系统介绍
1.1 智能手机系统概述 1
1.1.1 昨日王者——Symbian(塞班) 1
1.1.2 谷歌公司的Android 2
1.1.3 Mac公司的iOS 3
1.1.4 微软公司的Windows Phone 3
1.1.5 黑莓公司的Blackberry OS 4
1.2 总结Android的核心优势 5
1.2.1 强有力的业界支持 5
1.2.2 研发阵容强大 5
1.2.3 为开发人员“精心定制” 5
1.2.4 开源 6
1.3 Android系统架构概览 6
1.3.1 底层操作系统层(OS) 7
1.3.2 运行库(Libraries)和Android 运行环境(RunTime) 7
1.3.3 Application Framework(应用程序框架) 8
1.3.4 顶层应用程序(Application) 8
1.4 核心组件 8
1.4.1 Activity界面 8
1.4.2 Intent和Intent Filters 9
1.4.3 Service服务 9
1.4.4 Broadcast Receiver发送广播 10
1.4.5 用Content Provider存储数据 10
1.5 物联网技术改变未来 11
1.5.1 什么是物联网 11
1.5.2 发展历程 11
1.5.3 Android正在成为物联网标准操作系统 12
1.6 Android智能设备蓬勃发展 13
1.6.1 常见的Android智能设备 13
1.6.2 新兴热点——可穿戴设备 15
1.6.3 可穿戴设备的发展前景分析 18
1.6.4 Android对穿戴设备的支持——Android Wear 19
第2章 搭建Android开发环境
2.1 获取Android源码 20
2.1.1 在Linux系统获取Android源码 20
2.1.2 在Windows平台获取Android源码 21
2.2 编译源码 27
2.2.1 常见的错误分析 28
2.2.2 实践演练——演示两种编译Android程序的方法 29
2.3 搭建Android 应用开发环境 33
2.3.1 安装JDK 34
2.3.2 获取并安装Eclipse和Android SDK 37
2.3.3 快速安装SDK 39
2.3.4 安装ADT 40
2.3.5 验证设置 42
2.3.6 创建Android虚拟设备(AVD) 44
2.3.7 启动AVD模拟器 46
第3章 传输网络数据
3.1 HTTP通信 48
3.1.1 使用HTTP传输数据 48
3.1.2 使用Apache接口传输数据 49
3.1.3 使用java.net传输数据 54
3.1.4 使用Android网络接口传输数据 56
3.1.5 实例3-1:在物联网设备屏幕中传递HTTP参数 57
3.1.6 实例3-2:在物联网设备中访问HTTP地图 60
3.2 使用Socket传输数据 62
3.2.1 Socket Java网络开发基础 63
3.2.2 使用TCP协议传输数据 64
3.3 下载远程数据 66
3.3.1 实例3-3:在物联网设备中下载网络服务器中的图片 67
3.3.2 实例3-4:下载并播放网络MP3 67
3.4 远程上传数据 73
3.4.1 实例3-5:上传物联网设备中的文件到远程服务器 73
3.4.2 实例3-6:在物联网设备中采用GET方式向服务器传递数据 75
3.5 处理XML数据 79
3.5.1 XML的概述 79
3.5.2 XML的语法 79
3.5.3 实例3-7:在物联网中使用SAX解析XML数据 80
3.5.4 实例3-8:在物联网中使用DOM解析XML数据 83
第4章 使用蓝牙传输数据
4.1 蓝牙传输技术介绍 85
4.2 BLE蓝牙传输技术介绍 86
4.2.1 低功耗蓝牙的架构 86
4.2.2 低功耗蓝牙分类 87
4.2.3 低功耗蓝牙的特点 88
4.2.4 BLE和传统蓝牙BR/EDR的对比 88
4.3 蓝牙规范 89
4.3.1 Bluetooth常用规范 89
4.3.2 蓝牙协议体系结构 90
4.3.3 低功耗(BLE)蓝牙协议 91
4.4 低功耗蓝牙协议栈 92
4.4.1 什么是低功耗蓝牙协议栈? 92
4.4.2 蓝牙协议体系中的协议 93
4.5 TI公司的低功耗蓝牙解决方案 95
4.5.1 获取蓝牙协议栈 95
4.5.2 BLE蓝牙协议栈结构 96
4.5.3 BLE低功耗蓝牙系统架构 98
4.5.4 硬件抽象层HAL和BLE低功耗蓝牙协议栈 99
第5章 Android蓝牙系统详解
5.1 Android系统中的蓝牙模块 104
5.2 和蓝牙相关的接口类 106
5.2.1 BluetoothSocket类 106
5.2.2 BluetoothServerSocket类 107
5.2.3 BluetoothAdapter类 108
5.2.4 BluetoothClass.Service类 115
5.2.5 BluetoothClass.Device类 115
5.3 Android中的低功耗蓝牙协议栈 116
5.3.1 低功耗蓝牙协议栈基础 116
5.3.2 低功耗蓝牙API详解 116
5.4 实例5-1:使用蓝牙控制电风扇的转动 127
第6章 物联网语音识别开发详解
6.1 语音识别技术概述 140
6.1.1 语音识别技术的发展历史 140
6.1.2 语音识别技术的发展历程 141
6.2 Text-To-Speech语音识别技术 141
6.2.1 Text-To-Speech基础 141
6.2.2 总结Text-To-Speech开发流程 142
6.2.3 实例6-1:使用Text-To-Speech实现语音识别 145
6.2.4 实例6-2:物联网中文语音识别 147
6.3 Voice Recognition语音识别技术 151
6.3.1 Voice Recognition技术基础 152
6.3.2 实例6-3:使用Voice Recognition实现语音识别 154
6.4 实例6-4:将物联网设备中的提醒文字转换为语音 157
第7章 物联网设备手势识别
7.1 Android事件监听机制详解 162
7.1.1 总结Android中的监听事件 162
7.1.2 Android事件侦听器的回调方法 163
7.1.3 Android事件处理模型 165
7.1.4 基于自定义监听器的事件处理 166
7.2 手势识别开发详解 168
7.2.1 手势识别类GestureDetector 168
7.2.2 手势检测器类GestureDetector 169
7.2.3 手势识别处理事件和方法 172
7.3 实例7-1:通过单击的方式移动图片 172
7.4 实例7-2:实现常用的手势识别操作 176
7.5 实例7-3:实现手势翻页效果 179
第8章 在物联网设备中处理多媒体数据
8.1 Android多媒体系统架构基础 186
8.1.1 OpenMax框架介绍 187
8.1.2 OpenCore框架介绍 188
8.1.3 Stagefright框架介绍 189
8.2 Graphics类详解 190
8.2.1 Graphics类基础 190
8.2.2 使用Graphics类 190
8.2.3 实例8-1:在物联网设备中使用矩形类Rect和RectF 191
8.3 二维动画 194
8.3.1 类Drawable 194
8.3.2 实现Tween动画效果 196
8.3.3 实例8-2:在物联网设备中实现Tween动画效果 196
8.3.4 实例8-3:演示Tween动画的四种动画效果 198
8.3.5 实现Frame动画效果 202
8.4 OpenGL ES详解 203
8.4.1 OpenGL ES基础 203
8.4.2 Android用到OpenGL ES 204
8.4.3 OpenGL ES的基本操作 204
8.4.4 实例8-4:使用OpenGL ES绘制一个正方形 208
8.5 音频开发 211
8.5.1 音频接口类 211
8.5.2 AudioManager控制铃声 213
8.5.3 实例8-5:设置短信提示铃声 215
8.6 录音详解 221
8.6.1 使用MediaRecorder接口录制音频 221
8.6.2 使用AudioRecord接口录音 224
8.7 在物联网设备中播放音乐 226
8.7.1 使用AudioTrack播放音频 227
8.7.2 使用MediaPlayer播放音频 227
8.7.3 使用SoundPool播放音频 228
第9章 Android传感器系统架构详解
9.1 Android传感器系统概述 229
9.2 Android传感器应用开发基础 231
9.2.1 查看包含的传感器 231
9.2.2 模拟器测试工具——
SensorSimulator 232
9.2.3 实例9-1:检测当前设备支持的传感器 236
第10章 光线传感器和磁场传感器开发详解
10.1 光线传感器详解 239
10.1.1 光线传感器介绍 239
10.1.2 使用光线传感器的方法 240
10.1.3 实例10-1:获取物联网设备中光线传感器的值 241
10.1.4 实例10-2:显示物联网设备中光线传感器的强度 243
10.2 磁场传感器详解 245
10.2.1 Android系统中的磁场传感器 246
10.2.2 实例10-3:获取物联网设备中磁场传感器的三个分量 246
10.2.3 实例10-4:在物联网设备中使用磁场传感器 248
第11章 加速度传感器、方向传感器和陀螺仪传感器
11.1 加速度传感器详解 258
11.1.1 Android系统中的加速度传感器 258
11.1.2 实例11-1:获取X、Y、Z轴的加速度值 259
11.1.3 实例11-2:在物联网设备中实现仿微信“摇一摇”效果 261
11.2 方向传感器详解 266
11.2.1 Android中的方向传感器 266
11.2.2 实例11-3:测试当前物联网设备的三个方向值 267
11.2.3 实例11-4:在物联网设备中开发指南针程序 269
11.3 陀螺仪传感器开发详解 271
11.4 实例11-5:在物联网设备中使用加速度传感器和陀螺传感器 272
第12章 旋转向量传感器、距离传感器和气压传感器
12.1 旋转向量传感器开发详解 286
12.1.1 Android中的旋转向量传感器 286
12.1.2 实例12-1:确定当前物联网设备的方向 287
12.2 距离传感器开发详解 295
12.2.1 Android系统中的距离传感器 295
12.2.2 实例12-2:实现自动锁屏功能 297
12.3 气压传感器开发详解 303
12.3.1 气压传感器在智能手机中的应用 303
12.3.2 实例12-3:实现一个Android气压计 303
第13章 温度传感器和湿度传感器
13.1 温度传感器开发详解 312
13.1.1 Android系统中温度传感器 312
13.1.2 实例13-1:开发一个物联网温度计 314
13.1.3 实例13-2:测试设备电源的温度 316
13.2 湿度传感器开发详解 329
13.2.1 Android系统中的湿度传感器 329
13.2.2 实例13-3:获取远程湿度传感器的数据 330
第14章 物联网条形码识别开发详解
14.1 Android拍照系统结构基础 336
14.2 Camera系统底层架构分析 339
14.2.1 V4L2 API介绍 339
14.2.2 总结操作V4L2的流程 340
14.2.3 V4L2驱动框架 342
14.2.4 实现Video核心层 343
14.3 Camera系统的硬件抽象层 346
14.3.1 Android 2.1及其以前的版本 347
14.3.2 Android 2.2及其以后的版本 348
14.3.3 实现Camera硬件抽象层 349
14.4 Camera系统的Java部分 350
14.5 开发拍照应用程序 357
14.5.1 通过Intent调用系统的照相机Activity 357
14.5.2 调用Camera API拍照 358
14.5.3 总结Camera拍照的流程 359
14.6 解析二维码 361
14.6.1 QR Code码的特点 361
14.6.2 实例14-1:使用Android设备解析二维码 362
第15章 物联网NFC近场通信开发详解
15.1 近场通信技术基础 371
15.1.1 NFC技术的特点 371
15.1.2 NFC的工作模式 372
15.1.3 NFC和蓝牙的对比 372
15.2 射频识别开发技术概览 373
15.2.1 RFID技术简介 373
15.2.2 RFID技术的组成 373
15.2.3 RFID技术的特点 374
15.2.4 RFID技术的工作原理 375
15.3 Android系统中的NFC 375
15.3.1 分析Java层 376
15.3.2 分析JNI部分 392
15.3.3 分析底层 397
15.4 总结开发NFC APP的方法 397
15.5 综合实例:在物联网设备中使用NFC发送消息 401
第16章 物联网穿戴开发技术详解
16.1 Google Now开发基础 406
16.1.1 Google Now介绍 406
16.1.2 Google Now的用法 407
16.2 Android Wear详解 409
16.2.1 什么是Android Wear 409
16.2.2 搭建Android Wear开发环境 411
16.3 开发Android Wear程序 415
16.3.1 创建通知 415
16.3.2 创建声音 418
16.3.3 给通知添加页面 421
16.3.4 通知堆 422
16.3.5 通知语法介绍 423
16.4 实例16-1:开发一个Android Wear
程序 424
16.5 实例16-2:实现手机和Android Wear的交互 431
第17章 Android智能家居系统
17.1 需求分析 445
17.1.1 背景介绍 445
17.1.2 传感技术的推动 446
17.1.3 Android与智能家居的
紧密联系 446
17.2 系统功能模块介绍 447
17.3 系统主界面 447
17.3.1 实现布局文件 447
17.3.2 实现程序文件 448
17.4 系统设置 450
17.4.1 总体配置 450
17.4.2 系统总体配置 450
17.4.3 构建数据库 453
17.5 家用电器控制模块 455
17.5.1 家用电器控制主界面 456
17.5.2 温度控制界面 458
17.5.3 电灯控制界面 459
17.6 快速预案管理模块 462
17.6.1 天气情况 462
17.6.2 历史数据 467
17.6.3 系统设置 470
第18章 Android健康心率计系统
18.1 系统介绍 476
18.1.1 什么是心率 476
18.1.2 系统功能 477
18.2 具体实现 477
18.2.1 扫描蓝牙设备 477
18.2.2 蓝牙控制界面 480
18.2.3 蓝牙BLE设备适配器 489
18.2.4 蓝牙BLE服务适配器 491
18.2.5 传感器测试心率 494
18.2.6 图形化显示心率值 495
第19章 Android行车记录仪
19.1 选择线路规划目的地 498
19.1.1 系统主Activity界面 498
19.1.2 布局文件capture.xml 501
19.2 Adapter适配器处理 503
19.3 生成骑行路线图 506
19.3.1 实时导航服务 506
19.3.2 线路计划监听服务 507
19.3.3 线路任务服务 507
19.3.4 在地图中显示行驶线路 509
19.3.5 生成导航视图 509
19.4 街道分析 511
19.5 海拔数据分析 513
第20章 Android多功能电视盒子
20.1 Android TV介绍 515
20.2 系统模块结构 516
20.3 系统主界面 517
20.3.1 系统主界面布局 517
20.3.2 系统主界面Activity 518
20.4 本地服务 526
20.4.1 本地服主务界面 526
20.4.2 应用程序管理界面 530
注:以下内容读者可在源代码下载包中学习使用。
附录A
A.1 编译Android Kernel 534
A.1.1 获取Goldfish内核代码 534
A.1.2 获取MSM内核代码 537
A.1.3 获取OMAP内核代码 537
A.1.4 编译Android的Linux内核 537
附录B
B.1 Android蓝牙系统架构分析 540
B.1.1 初始化蓝牙芯片 540
B.1.2 蓝牙服务 541
B.1.3 管理蓝牙电源 542
B.2 Android BlueDroid架构详解 542
B.2.1 Android系统中BlueDroid的架构 542
B.2.2 Application Framework层分析 542
B.2.3 分析Bluetooth System
Service层 550
B.2.4 JNI层详解 551
B.2.5 HAL层详解 556
附录C
C.1 传感器之Java层详解 557
C.2 传感器之Frameworks层详解 563
C.2.1 监听传感器的变化 563
C.2.2 注册监听 563
C.3 传感器之JNI层详解 575
-
作者介绍
哈尔滨工业大学计算机博士,资深Android开发工程师和物联网工程师。
2008年创立个人计算机第三方服务公司,主要为欧美一线品牌开发中间件业务。
基于Android平台的物联网研发一直是最擅长的领域。 -
编辑推荐
Android物联网开发最细致的入门与提升图书;从内核分析到接口API实现。融入经典案例,最后落地于实战演练,彻底剖析了开发物联网项目的完整实现流程。 -
书评书荐
-
附件下载
图书推荐