本书共两个部分,分别介绍移动计算理论和移动应用开发技术。在移动计算理论部分,主要介绍移动计算的基本概念、移动计算环境的要素、移动终端的发展、无线网络技术,以及无线定位技术。在移动应用开发技术部分,介绍基于Android操作系统的移动应用开发,主要包括界面开发、资源管理、数据存取、消息与服务、感知与多媒体,以及操作系统与通信。此外,本书还给出Android开发的命名规范,介绍常用的开发工具ADB和SQLite3。最后,本书还提供5个移动应用实验供读者练习。
本书共两个部分,分别介绍移动计算理论和移动应用开发技术。
1.在移动计算理论部分,主要介绍移动计算的基本概念、移动计算环境的要素、移动终端的发展、无线网络技术,以及无线定位技术。
2.在移动应用开发技术部分,介绍基于Android操作系统的移动应用开发,主要包括界面开发、资源管理、数据存取、消息与服务、感知与多媒体,以及操作系统与通信。
此外,本书还给出Android开发的命名规范,介绍常用的开发工具ADB和SQLite3。最后,本书还提供5个移动应用实验供读者练习。
朱大勇,博士,电子科技大学信息与软件工程学院副教授,长期从事移动应用相关的开发与教学工作。 参加编写软件工程系列规划教材《软件开发技术》,承担学校教改项目两项,分别是:《移动式教学与自组织学习》和《大规模在线开放课程建设项目-移动计算及开发技术》。 参加青年教师出国(境)行动计划学校全额资助,赴加拿大滑铁卢大学留学 1年,开展统计推断与机器学习的研究工作。参与国家自然科学基金项目《多项式系统控制器参数化的符号计算方法》,承担《移动通讯基站动力及环境监控系统关键技术研究》,《速递易平台值守短信调度系统》,《面向3G的下一代手机智能搜索技术研发与应用》等项目的研究与开发。在《软件学报》、《电子科技大学学报》、《智能系统学报》以及IEEE国际会议发表多篇论文。
第1章 概述
1.1 移动计算环境 3
1.1.1 信息传输方式的变迁 4
1.1.2 计算模式 5
1.1.3 移动计算的概念和特点 7
1.1.4 移动应用 8
1.2 移动计算的三要素 8
1.2.1 信息 9
1.2.2 信号 11
1.2.3 信道 15
1.3 移动终端 18
1.3.1 硬件 18
1.3.2 软件 22
1.4 本章小结 25
1.5 习题 25
第2章 无线网络技术
2.1 无线信道 26
2.1.1 信道特性 26
2.1.2 资源共享 30
2.2 个域网 32
2.2.1 声波通信 33
2.2.2 蓝牙通信 35
2.2.3 其他近距离通信 36
2.3 局域网 40
2.3.1 Wi-Fi 41
2.3.2 无线传感器网络 44
2.3.3 无线自组织网络 52
2.4 广域网 59
2.4.1 蜂窝网络 59
2.4.2 远程通信问题 61
2.5 移动IP 64
2.5.1 通信方式 65
2.5.2 三角路由 67
2.6 本章小结 68
2.7 习题 68
第3章 无线定位技术
3.1 卫星定位系统 70
3.2 定位原理 72
3.2.1 卫星定位 72
3.2.2 定位方法 75
3.2.3 测距定位 76
3.3 位置服务 79
3.3.1 AGPS定位 79
3.3.2 基站定位 79
3.3.3 RSSI定位 80
3.3.4 Wi-Fi定位 81
3.4 室内定位 81
3.5 非测距定位 84
3.5.1 质心定位算法 85
3.5.2 DV-Hop定位算法 86
3.5.3 APIT定位算法 88
3.6 本章小结 89
3.7 习题 90
第二部分 移动应用开发技术
第4章 移动开发环境
4.1 搭建开发环境 93
4.2 创建应用项目 93
4.2.1 创建Android应用项目 94
4.2.2 项目信息 94
4.2.3 项目构建工具 96
4.2.4 配置SDK和创建模拟器 98
4.3 使用项目工具 100
4.3.1 Android Studio中的快捷键 100
4.3.2 任务管理功能 101
4.3.3 日志工具 101
4.4 管理应用权限 103
4.5 本章小结 106
4.6 习题 106
第5章 界面开发
5.1 界面设计 107
5.1.1 布局与交互 108
5.1.2 界面设计模式 110
5.1.3 活动配置 111
5.2 界面组件——活动 112
5.2.1 任务与返回栈 112
5.2.2 活动的生命周期 114
5.2.3 活动的启动模式 116
5.3 事件处理机制 119
5.3.1 采用监听处理方式 119
5.3.2 采用回调处理方式 121
5.4 视图组件结构 123
5.5 界面布局管理 124
5.5.1 线性布局 125
5.5.2 相对布局 126
5.5.3 帧布局 127
5.5.4 表格布局 128
5.5.5 网格布局 129
5.6 消息传输组件——Intent 129
5.6.1 显式Intent 130
5.6.2 隐式Intent 131
5.6.3 Intent过滤器 132
5.6.4 Intent传递数据 135
5.6.5 传递自定义数据 137
5.7 列表控件 139
5.7.1 ListView控件 139
5.7.2 RecyclerView控件 146
5.8 界面模块——碎片 149
5.8.1 添加碎片的方式 150
5.8.2 碎片的生命周期 152
5.8.3 兼容不同终端的界面 152
5.9 视图翻页控件——
ViewPager 159
5.9.1 滑动页面 160
5.9.2 页面适配器 161
5.9.3 滑动动画 162
5.10 本章小结 163
5.11 习题 163
第6章 资源管理
6.1 资源类别与访问 166
6.1.1 资源访问方法 167
6.1.2 常用资源 168
6.2 样式与主题 169
6.2.1 样式 169
6.2.2 主题 170
6.3 可绘制的资源 171
6.3.1 ShapeDrawable 171
6.3.2 StateListDrawable 171
6.3.3 LayerListDrawable 172
6.4 资源打包管理 172
6.5 本章小结 174
6.6 习题 174
第7章 数据存取
7.1 文件操作 175
7.1.1 保存数据到文件 176
7.1.2 从文件中读取数据 176
7.1.3 内部存储和外部存储 178
7.2 SharedPreferences 180
7.3 SQLite数据库 182
7.3.1 SQLite数据库的帮助类 183
7.3.2 查看数据库 184
7.3.3 数据库基本功能 185
7.4 内容共享组件 187
7.4.1 内容解析器 188
7.4.2 内容提供器 189
7.5 数据解析方式 195
7.5.1 解析XML数据 195
7.5.2 解析JSON数据 200
7.6 本章小结 202
7.7 习题 202
第8章 消息与服务
8.1 广播机制 203
8.1.1 广播消息注册方式 204
8.1.2 监听网络状态 205
8.1.3 广播消息发布方式 206
8.2 通知管理 208
8.2.1 PendingIntent 208
8.2.2 不同的通知方式 210
8.3 异步消息处理机制 210
8.3.1 创建线程的方法 210
8.3.2 线程与界面交互 211
8.3.3 Handler运行机制 212
8.4 异步任务 213
8.5 后台服务处理 215
8.5.1 创建后台运行的服务 215
8.5.2 服务启动方式 216
8.5.3 前台运行的服务 217
8.5.4 IntentService 218
8.6 本章小结 219
8.7 习题 219
第9章 感知与多媒体
9.1 传感器的使用 220
9.1.1 获取传感器 221
9.1.2 采集数据 222
9.2 定位功能 223
9.3 实现音频播放功能 225
9.3.1 音频播放方式 225
9.3.2 音乐播放器 225
9.4 实现视频播放功能 232
9.5 实现摄像头拍照功能 233
9.6 质感界面设计 235
9.6.1 质感设计 236
9.6.2 自定义标题栏 237
9.6.3 滑动菜单 239
9.7 本章小结 245
9.8 习题 245
第10章 操作系统与通信
10.1 Android操作系统的架构 247
10.2 Android操作系统的进程间通信 250
10.3 Binder 251
10.3.1 Binder机制 252
10.3.2 Binder的结构 252
10.3.3 Binder的工作模式 254
10.4 通信接口描述语言 255
10.4.1 服务器 255
10.4.2 服务类 258
10.4.3 客户端 259
10.5 Bundle 263
10.6 本章小结 264
10.7 习题 264
附录
附录A 实验 265
实验一 搭建实验环境 265
实验二 设计和实现移动客户端界面 267
实验三 移动端数据存取 269
实验四 广播与通知 270
实验五 移动应用的信息获取 270
附录B 命名规范 271
附录C Android应用调试工具 272
附录D SQLite3命令行工具 273
参考文献