
本书是学习Android技术和物联网应用开发的教材。本书应用“项目驱动”(ProjectDriven)最新教学模式,通过一个智能家居完整的项目案例系统地介绍了使用Android技术开发物联网应用的方法和技术。全书包括: 物联网与开发技术概述、智能家居Android应用分析、Android开发环境、Android应用界面、Android事件与组件、Android应用存储机制、Android图形与网络、Android应用物联网中间件。
本书理论与实践相结合,内容详尽,提供了大量实例,突出应用能力和创新能力的培养,将一个实际项目的知识点分解在各章作为案例讲解,是一本实用性突出的教材。本书可作为普通高等院校计算机专业本、专科学生程序设计课程的教材,也可供应用设计与开发人员参考使用。
高等学校计算机科学与技术项目驱动案例实践规划教材编写指导委员会主任
李晓明
委员
(按姓氏笔画排序)
卢先和杨波
梁立新蒋宗礼
策划
张瑞庆序言
作为教育部高等学校计算机科学与技术教学指导委员会的工作内容之一,自从2003年参与清华大学出版社的“21世纪大学本科计算机专业系列教材”的组织工作以来,陆续参加或见证了多个出版社的多套教材的出版,但是现在读者看到的这一套“高等学校计算机科学与技术项目驱动案例实践规划教材”有着特殊的意义。
这个特殊性在于其内容。这是第一套我所涉及的以项目驱动教学为特色,实践性极强的规划教材。如何培养符合国家信息产业发展要求的计算机专业人才,一直是这些年人们十分关心的问题。加强学生实践能力的培养,是人们达成的重要共识之一。为此,教育部高等学校计算机科学与技术教学指导委员会专门编写了《高等学校计算机科学与技术专业实践教学体系与规范》(清华大学出版社出版)。但是,如何加强学生的实践能力培养,在现实中依然遇到种种困难。困难之一,就是缺乏合适的教材。以往的系列教材,大都比较“传统”,没有跳出固有的框框。而这一套教材,在设计上采用软件行业中卓有成效的项目驱动教学思想,突出“做中学”的理念,突出案例(而不是“练习作业”)的作用,为高校计算机专业教材的繁荣带来了一股新风。
这个特殊性在于其作者。本套教材目前规划了十余本,其主要编写人不是我们常见的知名大学教授,而是知名软件人才培训机构或者企业的骨干人员,以及在该机构或者企业得到过培训的并且在高校教学一线有多年教学经验的大学教师。我以为这样一种作者组合很有意义,他们既对发展中的软件行业有具体的认识,对实践中的软件技术有深刻的理解,对大型软件系统的开发有丰富的经验,也有在大学教书的经历和体会,他们能在一起合作编写教材本身就是一件了不起的事情,没有这样的作者组合是难以想象这种教材的规划编写的。我一直感到中国的大学计算机教材尽管繁荣,但也比较“单一”,作者群的同质化是这种风格单一的主要原因。对比国外英文教材,除了Addison Wesley和Morgan Kaufmann等出版的经典教材长盛不衰外,我们也看到O’Reilly“动物教材”等的异军突起——这些教材的作者,大都是实战经验丰富的资深专业人士。
这个特殊性还在于其产生的背景。也许是由于我自己在计算机技术方面的动手能力相对比较弱,其实也不太懂如何教学生提高动手能力,因此一直希望有一个机会实际地了解所谓“实训”到底是怎么回事,也希望能有一种安排让〖2〗现在教学岗位的一些青年教师得到相关的培训和体会。于是作为2006—2010年教育部高等学校计算机科学与技术教学指导委员会的一项工作,我们和教育部软件工程专业大学生实习实训基地(亚思晟)合作,举办了6期“高等学校青年教师软件工程设计开发高级研修班”,每期时间虽然只是短短的1~2周,但是对于大多数参加研修的青年教师来说都是很有收获的一段时光,在对他们的结业问卷中充分反映了这一点。从这种研修班得到的认识之一,就是目前市场上缺乏相应的教材。于是,这套“高等学校计算机科学与技术项目驱动案例实践规划教材”应运而生。
当然,这样一套教材,由于“新”,难免有风险。从内容程度的把握、知识点的提炼与铺陈,到与其他教学内容的结合,都需要在实践中逐步磨合。同时,这样一套教材对我们的高校教师也是一种挑战,只能按传统方式讲软件课程的人可能会觉得有些障碍。相信清华大学出版社今后将和作者以及高等学校计算机科学与技术教学指导委员会一起,举办一些相应的培训活动。总之,我认为编写这样的教材本身就是一种很有意义的实践,祝愿成功。也希望看到更多业界资深技术人员加入大学教材编写的行列中来,和高校一线教师密切合作,将学科、行业的新知识、新技术、新成果写入教材,开发适用性和实践性强的优秀教材,共同为提高高等教育教学质量和人才培养质量做出贡献。
21世纪,什么技术将影响人类的生活?什么产业将决定国家的发展?信息技术与信息产业是首选的答案。大专院校学生是企业和政府的后备军,国家教育部门计划在大专院校中普及政府和企业信息技术与软件工程教育。经过多所院校的实践,信息技术与软件工程教育受到同学们的普遍欢迎,取得了很好的教学效果。然而,也存在一些不容忽视的共性问题,其中突出的是教材问题。
从近两年信息技术与软件工程教育研究看,许多任课教师提出目前使用的教材不合适。具体体现在: 第一,来自信息技术与软件工程专业的术语很多,对于没有这些知识背景的学生学习起来具有一定难度;第二,书中案例比较匮乏,与企业的实际情况相差太远,致使案例可参考性差;第三,缺乏具体的课程实践指导和真实项目。因此,针对大专院校信息技术与软件工程课程教学特点与需求,编写适用的规范化教材已刻不容缓。
本书就是针对以上问题编写的,作者希望推广一种最有效的学习与培训的捷径,这就是ProjectDriven Training,也就是用项目实践带动理论的学习(或者叫“做中学”)。基于此,作者围绕一个完整的物联网项目案例——智能家居贯穿Android应用开发各个模块的理论讲解, 包括: 物联网与开发技术概述、智能家居Android应用分析、Android开发环境、Android应用界面、Android事件与组件、Android应用存储机制、Android图形与网络、Android应用物联网中间件。通过项目实践,可以对技术应用有明确的目的性(为什么学),对技术原理更好地融会贯通(学什么),也可以更好地检验学习效果(学得怎样)。
本书特色:
1. 重项目实践
作者多年项目开发经验的体会是“IT是做出来的,不是想出来的”,理论虽然重要,但一定要为实践服务!以项目为主线,带动理论的学习是最好、最快、最有效的方法!本书的特色是提供了一个完整的智能家居系统项目。通过此书,作者希望读者对Android开发技术和流程有一个整体了解,减少对项目的盲目感和神秘感,能够根据本书的体系循序渐进地动手开发自己的项目!2. 重理论要点
本书以项目实践为主线,着重介绍Android开发理论中最重要、最精华的部分,以及它们之间的融会贯通;而不是面面俱到,没有重点和特色。读者首先通过项目把握整体概貌,再深入局部细节,系统学习理论;然后不断优化和扩展细节,完善整体框架和改进项目。既有整体框架,又有重点理论和技术。一书在手,思路清晰,项目无忧!
梁立新负责本书的编写和主审工作,冯璐协助项目案例部分的分析设计,赵建协助项目案例部分的实现和测试。
为了便于教学,本书配有教学课件,读者可从清华大学出版社的网站下载。
本书第一作者梁立新的工作单位为深圳技术大学,本书获得深圳技术大学的大力支持和教材出版资助,在此特别感谢。
鉴于编者的水平有限,书中难免有不足之处,敬请广大读者批评指正。
梁立新2020年2月
第1章物联网与开发技术概述1
1.1物联网的概念1
1.1.1物联网的定义1
1.1.2物联网的发展过程2
1.1.3物联网的特征3
1.2物联网系统结构4
1.3物联网应用开发技术5
习题8
第2章智能家居Android应用分析9
2.1智能家居行业分析9
2.1.1智能家居概述9
2.1.2智能家居发展状况10
2.1.3智能家居应用前景12
2.2系统方案分析设计12
2.2.1系统总体框架设计12
2.2.2系统功能需求分析12
2.3智能家居功能模块分析16
2.3.1环境监测功能模块分析16
2.3.2安全防护功能模块分析18
2.3.3电器控制功能模块分析20
2.3.4门禁管理功能模块分析22
2.4系统部署与运行测试24
2.4.1系统软硬件部署24
2.4.2系统操作与测试24
习题28
第3章Android开发环境29
3.1Android系统开发环境29
3.1.1Android系统与平台架构29
3.1.2Android开发框架313.1.3Android开发环境的搭建33
3.2Android工程的创建与调试40
3.2.1Android工程框架40
3.2.2Android工程创建43
3.2.3Android工程调试45
3.2.4Android生命周期47
3.3项目案例53
3.3.1项目目标53
3.3.2案例描述53
3.3.3案例要点53
3.3.4案例实施54
习题60
第4章Android应用界面61
4.1Android界面布局61
4.1.1Android用户界面框架62
4.1.2Android视图树62
4.1.3Android线性布局62
4.1.4Android相对布局66
4.1.5Android表格布局68
4.1.6Android帧布局71
4.1.7Android绝对布局73
4.2Android界面控件基础74
4.2.1文本框TextView74
4.2.2编辑框EditText76
4.2.3按钮控件Button78
4.2.4图片按钮ImageButton80
4.2.5单选按钮RadioButton81
4.2.6复选框CheckBox82
4.2.7列表控件ListView84
4.3Android菜单设计86
4.3.1Android选项菜单86
4.3.2Android子菜单88
4.3.3Android上下文菜单89
4.4项目案例91
4.4.1项目目标91
4.4.2案例描述914.4.3案例要点92
4.4.4案例实施92
习题98
第5章Android组件与事件99
5.1Android组件99
5.1.1Android组件Activity99
5.1.2Android组件Service105
5.1.3BroadcastReceiver组件108
5.1.4ContentProvider组件111
5.1.5Intent组件112
5.2系统界面事件130
5.2.1控件监听器130
5.2.2Android事件和监听器131
5.2.3Android按键事件处理132
5.2.4Android屏幕触摸事件处理133
5.3Fragment基础及使用134
5.3.1Fragment生命周期136
5.3.2Fragment使用方式136
5.3.3Fragment通信141
5.4项目案例143
5.4.1项目目标143
5.4.2案例描述143
5.4.3案例要点144
5.4.4案例实施146
习题161
第6章Android应用存储机制163
6.1简单存储及文件存储164
6.1.1简单存储164
6.1.2文件存储170
6.2SQLite数据库操作173
6.2.1SQLite数据库173
6.2.2创建SQLite数据库的方式176
6.2.3SQLite数据库操作179
6.2.4SQLite简单例程182
6.3数据共享1876.3.1ContentProvider类简介187
6.3.2Uri、UriMatcher和ContentUris简介188
6.3.3创建ContentProvider 191
6.3.4ContentResolver操作数据192
6.4项目案例193
6.4.1项目目标193
6.4.2案例描述193
6.4.3案例要点194
6.4.4案例实施194
习题206
第7章Android图形与网络207
7.1动态图形绘制及图形特效207
7.1.1系统动态图形绘制207
7.1.2图形特效214
7.1.3Android自绘控件217
7.2Android网络编程219
7.2.1Socket传输模式219
7.2.2Socket编程原理220
7.2.3Socket编程实例221
7.2.4Socket与HTTP通信的区别225
7.3项目案例225
7.3.1项目目标225
7.3.2案例描述226
7.3.3案例要点226
7.3.4案例实施228
习题238
第8章Android应用物联网中间件239
8.1物联网Android应用框架239
8.1.1物联网项目架构239
8.1.2ZXBee数据通信协议245
8.1.3智云开发调试工具250
8.2智云框架Android编程接口255
8.2.1智云Android应用接口255
8.2.2智云Android应用实例261
8.3项目案例2698.3.1项目目标269
8.3.2案例描述270
8.3.3案例要点270
8.3.4案例实施272
习题286
本书从Android开发一般过程与方法出发,以Java语言为媒介,重点讲述Android开发的核心技术和在物联网上的应用。本教材的特色是以项目实践作为主线贯穿其中,提供了完整的物联网项目案例,力求使读者不但知其然,而且知其所以然,因此本书即可以作为初学Android开发技术的基础教程,对已经掌握了部分Android开发方面知识的读者亦可起到画龙点睛的作用。本教材内容从简到难,覆盖面广,一些内容具有一定的深度,适用面较广,适合于作为计算机及其相关专业教学用书,也可用于其它理工科专业的计算机教学参考书。对于有志于深入学习Android开发的广大电脑爱好者,本书亦是一个好的选择。
本书内容先进,覆盖了ACM和IEEE Computing Curricula与教育部高教司和计算机专业教指委主持评审的《高等学校计算机科学与技术专业体系和规范》的全部重要的核心知识和实践模块,适时适量地增加反映当代本学科技术发展前沿水平的新内容,既体现了教育部和教指委颁布的本课程教学基本要求,也符合当前我国高等学校对本课程教学内容与课程体系强调应用型人才培养改革的实际。
本教材注重强化训练学生Java Web开发和物联网应用的工程经验,同时讲解了具体技术的原理,特别把重点放在Java Web应用开发实践及培养学生分析问题和解决问题的能力训练方面。
本教材的素材在课程的具体讲授中多次实践验证,取得了良好的效果。
梁立新,毕业于中国科技大学,获管理科学硕士学位,后留学美国伊利诺依理工大学,获工商管理硕士学位。毕业后曾工作于美国华尔街、加拿大多伦多证券交易所和Canada Gain Fortune Inc.,担任高级软件设计师和首席技术官。在国内具有从零开始成功创业以及多年职业管理经历。现任深圳技术大学大数据与互联网学院副教授、外国专家局特聘专家。作为主审和作者与教育部高等学校计算机科学与技术教学指导委员会及高校学者研发出“全国高等院校“十二五”项目驱动案例实践系列教材”并由清华大学出版社出版。其中两本教材获得国家级十二五规划优秀教材。