基于Andriod的城市移动门户—“掌上唐山”的研究与设计
2014-12-18张婷
张婷
(唐山学院计算机科学与技术系 河北唐山 063000)
1 引言
“智慧城市”建设是我国“十二五”规划的重要战略目标之一,而城市移动信息化是“智慧城市”建设的重要组成部分。利用移动技术,构建一个信息化应用与服务平台,为城市中的居民、企事业单位等提供一个综合的、统一接口的移动信息化服务,是推动城市发展与建设的有力动力。近年来,随着移动通信应用技术的发展和人们对随时随地获取资讯,尤其对互联网移动化需求的增强,手机作为随身便捷、更具时效性的媒体出现,已逐渐成为人们新闻资讯主要来源。手机媒体的快速发展,必然加大对社会的影响力,充分利用手机等移动终端作为城市移动信息化建设的平台,建立和完善相应的信息传播管理机制,为完善信息社会做更大努力。
城市门户建设分为三个层面,一是移动政务,移动信息化技术将传统的政务应用结合到移动通信平台[1],为城市居民与政府职能部门之间搭建了一座可以随时沟通的桥梁;二是移动商务,高效城市是移动商务的发展方向,移动信息化有效地提高办公的效率,使商务生活在快节奏中有条不紊;三是移动生活,针对城市居民的城市新闻资讯、旅游咨询、生活服务、购物、娱乐节目等。唐山作为国家级科学发展示范区,在其“十二五”城市信息化发展规划中,着重提出数字城市的建设,因此,城市移动门户-“掌上唐山”的建设显得尤为重要。
“掌上唐山”以本地资源为依托,立足于打造城市掌上“虚拟城市”,建立本地化的信息内容,侧重于本地生活信息和内容,整合本地资源,提供便民服务。为我市本地移动用户和外地客商提供最全面的本地新闻、衣食住行以及贴近生活的信息查询服务,为广大市民提供一站式的生活解决方案,同时也是展示我市形象的重要窗口,是城市对外和对内宣传的重要阵地。
2 主要开发技术
根据调研,考虑到实际应用,前台使用Android技术,后台应用JSP+M ysql开发“掌上唐山”移动门户。
Android是一种以Linux为基础的开放源码操作系统,主要用于便携设备,是目前全球最受欢迎的智能手机平台。Android SDK为开发人员提供了在Android平台使用Java编程语言进行开发应用程序所必要的工具和API[2]。从软件分层的角度来看,Android平台由应用程序、应用程序框架、程序库(libraries)、Android系统运行库以及Linux内核五部分构成[3]。手机终端使用的开发工具是包含KVM 虚拟机的插件的Eclipse,同时前台界面采用Android编程语言。
在W indow s环境下搭建Android开发环境,需要的组件包括:JDK、Eclipse、ADT、Android在Eclipse上的开发工具、Android SDK等。Android开发应用程序包括活动(Activity)、服务(Service)、广播接收者(BroadcastReceiver)、内容提供者(ContentProvider)、意图(Intent)等基本组件。
数据库使用M ySQL,一个多用户、多线程的SQL数据服务器。SQL是一种标准化语言,它使得存储、更新和存取信息更容易。M ySQL能够以相当快的速度和灵活来允许您存储纪录文件和图像。对于M ySQL来说具有可延伸性以及资料处理能力;M ySQL提供了许多不同的用户界面和各种程序语言介面,例如C+,PHP,Perl,Java,以及Python。
3 基于Andriod的城市移动门户—“掌上唐山”的研究与设计
3.1 系统开发的体系结构
对于手机客户端来说,主要是将U I线程与后台业务处理层分开,这样有助于多人开发并集成,而且解决了非U I线程对U I线程进行操作引发的问题[4]。这两层在设计时不会有相互干扰。当业务处理层将获得的数据放入客户端缓存中,方便U I的调用。
对于服务端来说,主要采用了Factory和DAO设计模式。其优点主要有以下几点:
(1)简单迁移化
DAO层的使用,使应用程序向不同的数据库进行迁移变得容易。商业对象可以对底层数据是如何实现的一无所知.这样的话,迁移只涉及到DAO层的修改。另外,使用工厂模式,能够为每一种底层数据实现提供一个具体的工厂模式实现成为可能。
(2)透明化
商业对象可以在完全不知道数据源如何具体实现的状况下来使用数据源.访问数据源是相当透明的,因为实现的细节已经被隐藏到了DAO层。
(3)降低商业对象的编程难度
因为DAO管理着所有的数据访问细节,从而在很大程度上简化了在商业对象和其它使用DAO的数据客户端里的实现代码。所有的实现细节代码比如SQL语句都包含在DAO层而不在商业对象中,这样的话使得代码变得更加健壮且提高了开发效率。
(4)所有的数据访问都集中到同一层中去
由于所有的数据访问操作都已经被DAO层所代理,所以单独的数据访问层可以被看作可以是将数据访问层和其余应用程序隔离的一层。这种集中,使得应用程序的维护和管理更加容易。
3.2 功能设计
“掌上唐山”为本地新闻资讯客户端,设计功能涵盖本地资讯及国内外新闻,包括焦点新闻即时推送、滚动播报,本地、国内、国际、文体全覆盖;满足用户需求的商业资讯,电子优惠券、消费提示;社区掌上互动;微周刊以及生活服务信息分类,即时搜索,餐饮、休闲、娱乐场所点击即达,提供用户订阅频道。
(1)新闻频道。第一时间获知国内国际、文娱体育要闻趣闻,特别是来自本地主流报媒的本地要闻及深度报道,用户可纵横“穿越”报纸、网络、手机三种不同媒介,随时随地与报纸全媒体记者在线沟通。
(2)订阅频道。用户根据自己喜好订阅“掌上唐山”内部和外包内容的频道,可添加、删除、移动栏目,点击栏目可以直接进入对应频道、专题或活动链接。
(3)优惠频道。为电子优惠券频道,用户在合作商家出示优惠券享受优惠,有·推荐、免费、美食、娱乐、购物、其他等二级频道。
(4)微刊频道。微刊是用相对简短的内容对一个主题的连载,是由合作伙伴、网友“自己当主编”的栏目,其二级频道为:最新、时尚、文化、公益、其他等。
(5)生活频道。为本地生活服务信息分类频道。有美食、娱乐、结婚、健身、酒店等信息。可查询交通、违章、本地列车、本地航班、本地公交线路功能。通过LBS定位身边的注册场所,有反馈、论坛和关于我们连接。
后台功能:包括权限设置、新闻管理、订阅管理、优惠券管理、微刊管理、生活频道:广告位设置、分享功能、统计功能等。
系统功能如图1所示。
图1 系统功能图
3.3 通信技术实现
网络通信模式采用无状态的同步通信模式。无状态即在客户端与服务器的一次完整会话过程中,没有始终建立的一条确定的连接,而是在每次客户端需要请求服务器的服务时临时建立连接,服务完成后连接则关闭。无状态的同步通信模式具有负荷小的特点,但如何让服务器区分各个客户端指令是需要解决的问题。利用在服务器端设计缓存的方式,把用户保存并设计编号,编号发给客户端,客户端则以编号的形式附加给服务请求。编号是由服务器创建的只为保证当前登录的用户编号,不同的登录需要重新赋予编号。有状态的同步通信模式具有负荷较大的特点,有若干线程维护着链接。
设计中客户端与服务器的通信方式采用Socket通信完成,Socket传递Java对象(使用Java对象序列化机制),即Socket中传递的是Request(请求)和Response(应答)对象。而Request和Response对象中封装一个Map来保存需要传递的参数,所有参数均需实现java.io.Serializable(可序列化)接口。
3.4 代码和类的设计
由于篇幅限制,这里给出部分实现代码,主Activity代码:
4 结束语
随着移动用户的迅速增长和智能手机的快速普及,智能终端及应用在人们的生活中越来越重要。系统使用Eclipse开源开发平台进行手机客户端软件的开发与设计,通过TCP报文与后台进行数据交换,使用通信中间件作为并发交易消息的分发与处理,使用Sybase数据库系统作为后台数据存储管理,设计并实现了一个基于Android的城市移动门户——“掌上唐山”系统。
[1]李晓军.移动政务的功能及评价研究[D].北京交通大学,2011(6)85-86.
[2]3GPP2,S.R0037,IPNetwork Architecture Model 1 for CDMA2000 Spread Sprectrum Systems,2004.
[3](美)罗杰.Android应用开发(李耀亮译)[M].北京:人民邮电出版社,2010.
[4]林博佳.基于Android平台的煤矿移动信息化系统的研究与实现[D].北京邮电大学,2012(1)25-26.