
本书通过实例对Android系统下的应用开发进行了详细介绍,同时介绍了通过Android手机的开发实 现物联网开发实践。全书共分为10章,分别介绍了Android开发基础、用户界面设计、常用界面组件、 Activity组件、Intent与BroadCastReceiver组件、Service组件、数据存储与数据共享、网络编程、Android物联网应用编程及设备巡检实例等相关内容。
前 言 Android 是一个免费、开源的移动端平台,在Google 和Android 手机联盟的大力推广下, Android 得到了全球开发者的极大关注。目前Android 应用程序开发的相关教材已经很多,但 鲜有书籍涉及Android 的物联网开发。本书从初学者的角度出发,通过通俗易懂的语言、丰 富多彩的实例介绍了Android 程序开发中的各方面技术,同时利用Android 系统的一些功能特 性进行物联网开发实践。 本书注重对读者实际动手能力的指导,循序渐进地讲解Android 应用程序开发的基本知识。 内容包括搭建Android 应用开发环境、Android 开发技术基础、Android 的网络编程、Android 在物联网中的应用等。 本书各章节的主要内容如下: 第1 章介绍了Android 系统框架、Android 开发环境的搭建及创建第一个Android 应用程序。 第2、3 章介绍了Android 应用程序的用户界面设计及常用的界面组件,包括几种界面布 局、Android 的事件、常用控件、菜单及信息提示组件。 第4 ~ 7 章介绍了Android 开发中的四大组件:Activity 组件、Service 组件、 BroadCastReceiver 组件、ContentProvider 组件。同时介绍了Intent 实现组件间的数据传递及 Android 应用程序的数据存储。 第8 章介绍了Android 的网络编程,即通过HTTP 协议的POST 方法和GET 方法实现网 络数据传递,同时介绍了TCP/IP 协议中的Socket 编程。 第9 章介绍了Android 手机中的一些特性功能,如传感器的原理及开发应用,摄像头实 现拍照及录制视频、录音,GPS 定位,二维码的生成及扫描。 第10 章通过设备巡检案例介绍了物联网中的Android 应用开发实践。 本书提供了大量的实例源代码供读者参考,指导读者快速、无障碍地学通Android 开发 技术。通过这些实例,读者可以快速地理解每个知识点的内容。本书适合作为高等院校计算 机及相关专业的教学用书,也可以作为Android 开发初学者的自学教材和参考手册。 由于编者水平有限,书中难免有不足之处,恳请读者批评指正。 编者 文前.indd 3 2015-11-25 08:51:13
目 录 第1 章 Android 开发基础 ……………………………………………………………………………1 1.1 Android 系统简介 ……………………………………………………………………………………… 1 1.1.1 Android 系统的发展 …………………………………………………………………………… 1 1.1.2 Android 系统的框架 …………………………………………………………………………… 2 1.2 搭建开发环境 ………………………………………………………………………………………… 4 1.2.1 开发环境搭建准备 …………………………………………………………………………… 4 1.2.2 开发环境配置 ………………………………………………………………………………… 5 1.3 Android 应用程序的构成 ……………………………………………………………………………… 9 1.3.1 四大组件之Activity …………………………………………………………………………… 9 1.3.2 四大组件之BroadcastReceiver ……………………………………………………………… 10 1.3.3 四大组件之Service …………………………………………………………………………… 10 1.3.4 四大组件之ContentProvider ………………………………………………………………… 10 1.4 第一个Android 项目 ………………………………………………………………………………… 11 1.4.1 创建Android 项目 …………………………………………………………………………… 11 1.4.2 Android 工程文件解析 ………………………………………………………………………… 12 1.4.3 生成Android 应用程序 ……………………………………………………………………… 17 1.5 小结 …………………………………………………………………………………………………… 20 第2 章 用户界面设计 …………………………………………………………………………… 21 2.1 View 与ViewGroup 简介 ……………………………………………………………………………… 21 2.1.1 View …………………………………………………………………………………………… 22 2.1.2 ViewGroup …………………………………………………………………………………… 22 2.2 简单的控件 …………………………………………………………………………………………… 23 2.2.1 TextView ……………………………………………………………………………………… 23 2.2.2 EditText ………………………………………………………………………………………… 24 2.2.3 Button ………………………………………………………………………………………… 26 2.3 布局 …………………………………………………………………………………………………… 27 2.3.1 线性布局 ……………………………………………………………………………………… 30 2.3.2 相对布局 ……………………………………………………………………………………… 33 2.3.3 帧布局 ………………………………………………………………………………………… 36 2.3.4 表格布局 ……………………………………………………………………………………… 38 2.3.5 网格布局 ……………………………………………………………………………………… 40 文前.indd 4 2015-11-25 08:51:14 目 录 V 2.4 Android 的事件 ………………………………………………………………………………………… 41 2.4.1 事件概述 ……………………………………………………………………………………… 41 2.4.2 按钮事件 ……………………………………………………………………………………… 42 2.4.3 按键事件 ……………………………………………………………………………………… 44 2.4.4 触摸事件 ……………………………………………………………………………………… 47 2.5 小结 …………………………………………………………………………………………………… 49 第3 章 常用界面组件 …………………………………………………………………………… 50 3.1 常用控件 ……………………………………………………………………………………………… 50 3.1.1 ImageView …………………………………………………………………………………… 50 3.1.2 CheckBox ……………………………………………………………………………………… 52 3.1.3 RadioButton …………………………………………………………………………………… 54 3.1.4 SeekBar ………………………………………………………………………………………… 57 3.1.5 ListView ……………………………………………………………………………………… 60 3.2 Android 菜单 …………………………………………………………………………………………… 64 3.2.1 选项菜单 ……………………………………………………………………………………… 64 3.2.2 上下文菜单 …………………………………………………………………………………… 68 3.2.3 子菜单 ………………………………………………………………………………………… 69 3.3 信息提示类 …………………………………………………………………………………………… 71 3.3.1 Toast …………………………………………………………………………………………… 71 3.3.2 AlertDialog …………………………………………………………………………………… 72 3.4 小结 …………………………………………………………………………………………………… 73 第4 章 Activity 组件 ……………………………………………………………………………… 74 4.1 Activity 简介 …………………………………………………………………………………………… 74 4.1.1 Activity 的生命周期 …………………………………………………………………………… 74 4.1.2 Activity 的回调方法 …………………………………………………………………………… 76 4.2 界面切换 ……………………………………………………………………………………………… 81 4.2.1 不带返回值的启动Activity …………………………………………………………………… 83 4.2.2 带返回值的启动Activity ……………………………………………………………………… 86 4.3 查看与输出日志信息 ………………………………………………………………………………… 92 4.4 小结 …………………………………………………………………………………………………… 93 第5 章 Intent 与BroadCastReceiver 组件 ……………………………………………………… 94 5.1 Intent 简介 …………………………………………………………………………………………… 94 5.1.1 Intent 的属性 …………………………………………………………………………………… 94 5.1.2 Intent 过滤器 …………………………………………………………………………………… 95 文前.indd 5 2015-11-25 08:51:14 安卓编程指南及物联网开发实践 VI 5.2 隐式启动Activity ……………………………………………………………………………………… 97 5.2.1 不含返回值的隐式启动 ……………………………………………………………………… 97 5.2.2 含返回值的隐式启动 …………………………………………………………………………100 5.3 BroadcastReceiver 组件 ………………………………………………………………………………103 5.3.1 无序广播 ………………………………………………………………………………………103 5.3.2 有序广播 ………………………………………………………………………………………107 5.4 小结 ……………………………………………………………………………………………………110 第6 章 Service 组件 ……………………………………………………………………………… 111 6.1 Service 简介 ……………………………………………………………………………………………111 6.1.1 Service 的生命周期 ……………………………………………………………………………111 6.1.2 Service 生命周期的描述 ………………………………………………………………………113 6.2 本地Service ……………………………………………………………………………………………119 6.2.1 本地直接启动Service …………………………………………………………………………119 6.2.2 本地绑定Service ………………………………………………………………………………122 6.3 远程Service ……………………………………………………………………………………………125 6.3.1 提供Service ……………………………………………………………………………………126 6.3.2 调用Service ……………………………………………………………………………………131 6.4 小结 ……………………………………………………………………………………………………133 第7 章 数据存储与数据共享 …………………………………………………………………… 134 7.1 SharedPreferences 存储 ………………………………………………………………………………134 7.1.1 SharedPreferences 简介 ………………………………………………………………………134 7.1.2 SharedPreferences 的使用 ……………………………………………………………………135 7.2 文件存储 ………………………………………………………………………………………………138 7.2.1 内部存储 ………………………………………………………………………………………138 7.2.2 外部存储 ………………………………………………………………………………………141 7.2.3 XML 文件存储 …………………………………………………………………………………144 7.3 SQLite 数据库存储 ……………………………………………………………………………………147 7.3.1 SQLite 数据库简介 ……………………………………………………………………………147 7.3.2 代码创建数据库 ………………………………………………………………………………148 7.3.3 数据操作实现 …………………………………………………………………………………152 7.4 ContentProvider 的使用 ………………………………………………………………………………156 7.4.1 URI ……………………………………………………………………………………………157 7.4.2 ContentProvider ………………………………………………………………………………158 7.4.3 ContentResolver ………………………………………………………………………………162 7.5 小结 ……………………………………………………………………………………………………166 文前.indd 6 2015-11-25 08:51:14 目 录 VII 第8 章 网络编程 ………………………………………………………………………………… 167 8.1 网络编程简介 …………………………………………………………………………………………167 8.2 基于HTTP 的网络编程 ………………………………………………………………………………168 8.2.1 GET 方法 ……………………………………………………………………………………168 8.2.2 POST 方法 ……………………………………………………………………………………175 8.2.3 HttpClient 方法 …………………………………………………………………………………178 8.3 基于Socket 的网络编程 ………………………………………………………………………………183 8.3.1 Socket 服务器端 ………………………………………………………………………………184 8.3.2 Socket 客户端 …………………………………………………………………………………187 8.4 客户端与服务器端通信实现 …………………………………………………………………………190 8.5 小结 ……………………………………………………………………………………………………191 第9 章 Android 物联网应用编程 ………………………………………………………………… 192 9.1 Android 手机传感器 ……………………………………………………………………………………192 9.1.1 Android 手机常见传感器 ………………………………………………………………………192 9.1.2 加速度传感器 …………………………………………………………………………………196 9.1.3 方向传感器 ……………………………………………………………………………………200 9.2 其他物联网部件 ………………………………………………………………………………………203 9.2.1 麦克风 …………………………………………………………………………………………204 9.2.2 摄像头 …………………………………………………………………………………………207 9.2.3 GPS ……………………………………………………………………………………………212 9.2.4 二维码 …………………………………………………………………………………………215 9.3 小结 ……………………………………………………………………………………………………222 第10 章 设备巡检实例 …………………………………………………………………………… 223 10.1 设备巡检案例 …………………………………………………………………………………………223 10.1.1 案例背景概述 ………………………………………………………………………………223 10.1.2 客户端使用 …………………………………………………………………………………223 10.1.3 服务器端使用 ………………………………………………………………………………225 10.1.4 案例代码结构 ………………………………………………………………………………226 10.2 移动端主界面 …………………………………………………………………………………………227 10.3 移动端今日巡检 ………………………………………………………………………………………231 10.4 数据库存储 ……………………………………………………………………………………………236 10.4.1 MachineBean 实体类 ………………………………………………………………………236 10.4.2 数据库帮助类DBHelper …………………………………………………………………237 10.4.3 数据库操作类DBAdapter …………………………………………………………………238 10.4.4 设备信息操作辅助类MachineDao …………………………………………………………241 文前.indd 7 2015-11-25 08:51:15 安卓编程指南及物联网开发实践 VIII 10.5 移动端网络提交 ………………………………………………………………………………………243 10.6 移动端设备巡检 ………………………………………………………………………………………244 10.7 移动端数据展示 ………………………………………………………………………………………249 10.7.1 某日设备巡检展示 …………………………………………………………………………249 10.7.2 设备巡检信息 ………………………………………………………………………………252 10.8 其他相关文件 …………………………………………………………………………………………254 10.8.1 Strings.xml 文件 ……………………………………………………………………………254 10.8.2 AndroidManifest.xml 文件 …………………………………………………………………254 10.9 服务器端ServerDemo 项目 …………………………………………………………………………256
1999年毕业于福建师范大学数学系,获学士学位;2002年毕业于福州大学数学系,获硕士学位;2005年毕业于复旦大学计算机科学与工程系,获博士学位;2005年至今在福建师范大学数学与计算机科学学院工作,任计算机系副主任。主要研究方向包括网络与信息安全、物联网与移动计算等,指导硕士研究生20多人,指导研究生的学位论文曾获校优秀硕士论文一等奖。近年来近年来主持福建省自然科学基金、福建省科技厅K类基金等项目10项,参与国家自然科学基金和省科技厅高校产学合作科技重大项目课题各1项。出版学术专著2本,教材1本。在Journal of Computer and System Sciences、Concurrency and Computation: Practice and Experience等期刊发表学术论文40多篇,申请专利10多项,软件著作权10多项。担任CTCIS和NSS等国内和国际学术会议的程序委员会委员。