Chapter 1 Android开发技术基础 1
1.1 智能手机系统介绍 1
1.1.1 何谓智能手机 1
1.1.2 主流智能手机系统介绍 2
1.2 Android的巨大优势 4
1.2.1 优点一——系出名门 4
1.2.2 优点二——强大的开发团队 4
1.2.3 优点三——诱人的奖励机制 5
1.2.4 优点四——开源 5
1.3 搭建Android应用开发环境 6
1.3.1 安装Android SDK的系统要求 6
1.3.2 安装JDK 7
1.3.3 获取并安装Eclipse和Android SDK 10
1.3.4 安装ADT 14
1.3.5 设定Android SDKHome 16
1.3.6 验证开发环境 17
1.3.7 创建Android虚拟设备(AVD) 18
1.3.8 启动AVD模拟器 19
1.4 穿戴设备的前世今生 22
1.4.1 发展历程 22
1.4.2 现状介绍 22
1.4.3 发展前景分析 25
1.4.4 Android的支持 27
Chapter 2 Android技术核心框架分析 28
2.1 分析Android的系统架构 28
2.1.1 Android体系结构介绍 28
2.1.2 Android应用工程文件组成 31
2.2 简述五大组件 34
2.2.1 用Activity来表现界面 34
2.2.2 用Intent和Intent Filters实现切换 34
2.2.3 Service为用户服务 34
2.2.4 用BroadcastIntentReceiver发送广播 35
2.2.5 用ContentProvider存储数据 35
2.3 进程和线程 36
2.3.1 先看进程 36
2.3.2 再看线程 36
2.3.3 应用程序的生命周期 36
2.4 分析Android源码结构 39
2.5 Android和Linux的关系 40
2.5.1 Android继承于Linux 40
2.5.2 Android和Linux内核的区别 40
2.6 第一段Android程序 42
Chapter 3 HTTP数据通信 48
3.1 HTTP基础 48
3.1.1 HTTP概述 48
3.1.2 HTTP协议的功能 48
3.1.3 Android中的HTTP 49
3.2 使用Apache接口 50
3.2.1 Apache接口基础 50
3.2.2 Apache应用要点 51
3.2.3 Apache应用要点 57
3.3 使用标准的Java接口 65
3.3.1 IP地址 65
3.3.2 URL地址 66
3.3.3 套接字Socket类 67
3.3.4 URLConncetion类 67
3.3.5 在Android中使用java.net 68
3.4 使用Android网络接口 71
3.5 实战演练 71
3.5.1 实战演练——在手机屏幕中传递HTTP参数 71
3.5.2 实战演练——在Android手机中通过Apache HTTP访问HTTP资源 76
Chapter 4 使用Socket实现数据通信 79
4.1 Socket编程初步 79
4.1.1 TCP/IP协议基础 79
4.1.2 UDP协议 80
4.1.3 基于Socket的Java网络编程 81
4.2 TCP编程详解 82
4.2.1 使用ServletSocket 82
4.2.2 使用Socket 83
4.2.3 TCP中的多线程 85
4.2.4 实现非阻塞Socket通信 88
4.3 UDP编程 94
4.3.1 使用DatagramSocket 94
4.3.2 使用MulticastSocket 99
4.4 实战演练——在Android中使用Socket实现数据传输 103
Chapter 5 下载远程数据 106
5.1 下载网络中的图片数据 106
5.2 下载网络中的JSON数据 108
5.2.1 JSON基础 109
5.2.2 实战演练——远程下载服务器中的JSON数据 109
5.3 下载某个网页的源码 115
5.4 远程获取多媒体文件 117
5.4.1 实战演练——下载并播放网络中的MP3 117
5.4.2 实战演练——下载在线铃声 124
5.5 多线程下载 130
5.5.1 多线程下载文件的过程 131
5.5.2 实战演练——在Android系统中实现多线程下载 131
5.6 远程下载并安装APK文件 148
5.6.1 APK基础 149
5.6.2 实战演练——在Android系统中下载并安装APK文件 152
Chapter 6 上传数据 158
6.1 Android上传数据技术 158
6.1.1 使用HTTP协议上传数据 158
6.1.2 使用TCP协议上传数据 159
6.2 实战演练——上传文件到远程服务器 162
6.3 使用GET方式上传数据 165
6.4 使用POST方式上传数据 170
6.5 使用HTTP协议实现上传 175
6.5.1 一段演示代码 175
6.5.2 实战演练——HTTP协议实现文件上传 181
Chapter 7 传感器技术 188
7.1 Android传感器系统概述 188
7.2 使用SensorSimulator 190
7.3 使用传感器 193
7.3.1 光线传感器 194
7.3.2 磁场传感器 194
7.3.3 加速度传感器 196
7.3.4 姿态传感器 199
7.3.5 温度传感器 201
Chapter 8 人工智能技术 204
8.1 人工智能基础 204
8.1.1 人工智能概述 204
8.1.2 两种实现人工智能的方法 205
8.2 图搜索在人工智能中的应用 205
8.2.1 深度优先搜索(DFS) 205
8.2.2 广度优先搜索(BFS) 208
8.2.3 戴克斯特拉算法(Dijkstra) 209
8.2.4 A-Star算法 211
8.3 实战演练——各种AI图搜索算法在Android游戏中的用法 219
8.3.1 搭建路径搜索框架 219
8.3.2 实现深度优先算法 227
8.3.3 实现广度优先算法 229
8.3.4 实现Dijkstra算法 231
8.3.5 实现广度优先A算法 233
8.3.6 实现Dijkstra A*算法 235
Chapter 9 语音识别和手势识别 238
9.1 语音识别技术 238
9.1.1 Text-To-Speech技术 238
9.1.2 谷歌的Voice Recognition技术 242
9.2 手势识别 245
9.2.1 类GestureDetector基础 245
9.2.2 使用类GestureDetector 246
9.2.3 通过点击的方式移动图片 249
Chapter 10 蓝牙技术基础 253
10.1 蓝牙概述 253
10.1.1 蓝牙技术的发展历程 253
10.1.2 蓝牙的特点 254
10.2 低功耗蓝牙基础 254
10.2.1 低功耗蓝牙的架构 254
10.2.2 低功耗蓝牙分类 255
10.2.3 集成方式 256
10.2.4 低功耗蓝牙的特点 256
10.2.5 BLE和传统蓝牙BR/EDR技术的对比 257
10.3 蓝牙规范 257
10.3.1 Bluetooth系统中的常用规范 257
10.3.2 蓝牙协议体系结构 258
10.3.3 低功耗(BLE)蓝牙协议 260
10.3.4 现有的基于GATT的协议/服务 260
10.3.5 双模协议栈 261
10.3.6 单模协议栈 262
10.4 低功耗蓝牙协议栈详解 262
10.4.1 低功耗蓝牙协议栈基础 262
10.4.2 蓝牙协议体系中的协议 263
10.5 TI公司的低功耗蓝牙 265
10.5.1 获取TI公司的低功耗蓝牙协议栈 265
10.5.2 分析TI公司的低功耗蓝牙协议栈 267
Chapter 11 Android蓝牙模块详解 274
11.1 Android系统中的蓝牙模块 274
11.2 分析蓝牙模块的源码 276
11.2.1 初始化蓝牙芯片 276
11.2.2 蓝牙服务 277
11.2.3 管理蓝牙电源 278
11.3 和蓝牙相关的类 278
11.3.1 BluetoothSocket类 278
11.3.2 BluetoothServerSocket类 279
11.3.3 BluetoothAdapter类 280
11.3.4 BluetoothClass.Service类 287
11.3.5 BluetoothClass.Device类 288
11.4 在Android平台开发蓝牙应用程序 288
11.4.1 开发Android蓝牙应用程序的基本步骤 288
11.4.2 开发一个控制玩具车的蓝牙遥控器 293
11.5 在穿戴设备中开发一个蓝牙控制器 302
11.5.1 界面布局 302
11.5.2 响应单击按钮 303
11.5.3 和指定的服务器建立连接 305
11.5.4 搜索附近的蓝牙设备 306
11.5.5 建立和OBEX服务器的数据传输 308
11.5.6 实现蓝牙服务器端的数据处理 312
Chapter 12 蓝牙4.0 BL-E详解 315
12.1 短距离无线通信技术概览 315
12.1.1 ZigBee——低功耗、自组网 315
12.1.2 WiFi——大带宽支持家庭互联 316
12.1.3 蓝牙——4.0进入低功耗时代 316
12.1.4 NFC——必将逐渐远离历史舞台 316
12.2 蓝牙4.0 BLE基础 317
12.2.1 蓝牙4.0的最杰出表现是低功耗 317
12.2.2 蓝牙4.0的优势 318
12.2.3 Bluetooth4.0 BLE推动了可穿戴设备的兴起 318
12.2.4 BLE推动了Android可穿戴设备的发展 319
12.3 低功耗蓝牙协议栈详解 320
12.3.1 低功耗蓝牙协议栈基础 320
12.3.2 低功耗蓝牙API详解 321
Chapter 13 项目实战——开发智能心率计 404
13.1 什么是心率 404
13.2 什么是心率表 405
13.3 开发一个Android版测试心率系统 405
13.3.1 系统主界面 406
13.3.2 绘制心率表 411
Chapter 14 项目实战——开发计步器 417
14.1 系统功能模块介绍 417
14.2 系统主界面 418
14.2.1 布局文件 418
14.2.2 系统主Activity 422
14.3 系统设置模块 430
14.3.1 系统设置Activity 431
14.3.2 获取各个设置值 434
14.3.3 系统服务设置 437
14.3.4 获取并显示热量 444
14.3.5 显示行走距离 446
14.3.6 获取并显示步伐速率 448
14.3.7 获取并显示行走速率 451