基于安卓平台的旅游社交软件的设计与开发

2014-04-29 17:44许浩海等
电脑知识与技术 2014年10期
关键词:服务器端安卓子系统

许浩海等

摘要:自从安卓手机操作系统发布以来,它便以开放性、不受束缚、丰富的硬件、方便开发等优势风靡全世界,我们利用安卓手机平台,开发了一款旅游社交平台软件,该软件采用安卓Sdk4.0进行开发,采用了C/S模式,可以节省网络资源,简单,易用,服务器端采用Java Web开发,数据库采用了免费的Mysql。它可以给用户提供你最想要的旅游栏目,让你置身于朋友的海洋之中,从此出行旅游更加方便。

关键词:Android平台应用开发;旅游社交平台

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)10-2273-04

Abstract: Since android mobile phone operating system release, it has to open, from the bondage, rich hardware and advantages of the convenient development around the world, we use the android mobile phone platform, developed a tourism social platform software, this software USES the android Sdk4.0 development, adopted C/S mode, can save network resources, simple, easy to use, the server using Java Web development, Mysql database for free. It can provide users with travel industry, most of you have let you swimming in the ocean of friend, from now on to travel more convenient.

Key words: The Android platform application development;Tourism social platform

Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。大学生从高中升入大学,犹如一下子从“地狱”进入了“天堂”,有着大量的课余时间,但是往往他们无法合理利用,大多蜗居在宿舍里打游戏,费心劳神,因此开发一款基于安卓平台的旅游社交软件,帮助大学生走出教室,走出宿舍,到自然中,去锻炼,去陶冶情操,最大程度的满足他们旅游交友的需求。

1 基于安卓平台旅游社交软件的需求分析

这个平台主要包括3个子系统,它们分别是:1)发起活动子系统;2)参加活动子系统;3)后台管理子系统;4)活动分享子系统。如图1所示。

在活动发起子系统中包括以下几个功能:1)活动申请;2)活动信息管理;3)活动资料查询;4)活动上报申请。

在参加活动子系统中包括以下几个功能:1)活动参加;2)活动资料查询;3)参加活动申请。

在后台管理子系统中包括以下几个功能:1)用户管理;2)公告管理;3)权限管理;4)分类管理;5)系统维护。

在活动分享子系统中包括以下几个功能:1)活动评价分享;2)活动图片分享。

2 旅游社交平台的总体设计

2.1 软件总体设计

根据我们定义的需求分析,我们给出了旅游社交平台软件总体设计,客户端运行在安卓手机上,服务器端运行在Tomcat上,数据库采用Mysql数据库,开发语言采用了最流行的Java语言进行开发,以下是整个软件的整体架构图,Android前台界面负责数据的采集和展示,Android端HTTP组件负责将前台界面采集到的数据封装成HTTP协议发到Servlet上,Servlet负责接收HTTP协议的数据,然后解析,调用相应的业务方法,Server端业务层负责从数据库中采取数据交给Servlet,Servlet把封装的json数据再发到HTTP组件,HTTP组件解析数据,再发往前端进行展示,如图2所示。

2.2数据库设计

2.2.1 数据库中所需的各种表

2.2.2 数据库概念模型和物理模型的设计

设计数据库时,我们可以采用sybase公司的powerDesigner来进行数据库设计,使用powerDsigner工具设计时,首先设计数据库概念模型图,它的功能和数据库E-R图十分类似,好处在于,可以使用powerDesigner工具轻松的转成数据库物理模型,然后再借助powerDesigner工具可以很轻松的生成SQL语句,从而大大方便开发。

2.3 详细设计

2.3.1 服务器端数据库工具类设计

为了更好的和数据库交互,减少开发工作量,我们对数据库操作冗余的代码做了一定的封装。这样就没必要频繁的写JDBC代码了,从而提高了程序内聚度。

2.3.2 各个业务Service的接口设计

接口在项目中就是一个业务逻辑,面向接口编程就是先把客户的业务提取出来,作为接口。业务具体实现通过该接口的实现类来完成。当客户需求变化时,只需编写该业务逻辑的新的实现类,通过更改配置文件(例如Spring框架)中该接口的实现类就可以完成需求,不需要改写现有代码,减少对系统的影响。 采用基于接口编程的项目,业务逻辑清晰,代码易懂,方便扩展,可维护性强。即使更换一批人员,新来的人依然可以快速上手。对于团队来说,意义更大。

2.3.3 各个服务接口的实现

在设计好接口之后,我们就可以编写程序来实现各个接口了。在这个过程中我们也体会到了协同工作的效率。我们几个开发人员就可以并行的进行开发,然后再把代码提交到Svn代码管理工具上,从而很大程度上提高了工作效率。

2.3.4 各个服务所对应的Servlet的编写

Servlet的主要功能在于交互式地浏览和修改数据,生成动态Web内容。这个过程为:1)客户端发送请求至服务器端;2)服务器将请求信息发送至Servlet;3)Servlet生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求;4)服务器将响应返回给客户端,如图3所示。

一个servlet就是Java编程语言中的一个类,它被用来扩展服务器的性能,服务器上驻留着可以通过“请求-响应”编程模型来访问的应用程序。虽然servlet可以对任何类型的请求产生响应,但通常只用来扩展Web服务器的应用程序。

2.3.5 GoGoGo数据编码问题的解决

我们把安卓数据客户端所获取的数据通过HTTP协议传送到服务器端,由Servlet来获取数据,由于Tomcat默认编码是ISO8859-1,因此在后台获取中文数据时会遇到乱码。解决办法是:1)要重写HttpServletRequestWrapper下面的getParameter()方法,在这个方法对获取到的数据,重新用UTF-8编码。

2)在Filter中对每个请求过滤,调用HttpServletRequsetWrapper重写的getParameter()方法,再把请求传说出去,就完成了过滤请求,如图4所示。

2.3.6 前台和后台数据交互的问题

Android前台发送数据给服务器后台应用程序(Servlet),Servlet处理后,要给前台返回数据,数据格式如何选择将是一个非常重要的问题,因为JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于阅读和编写,同时也易于机器解析和生成。所以我们采用了json作为前后台数据交换的数据格式。

2.3.7 前台向后台如何传送数据问题

我们编写了一个HTTP数据传送工具,负责Android前台和Server后台的数据传送。因为是HTTP协议是基于TCP协议的,所在Android前台和Server建立连接需要进行3次握手,连接建立成功后,才进行传送数据。当释放连接时,需要进行4次握手才能释放连接,如图5所示。

2.3.8 数据加密问题

一个优秀的软件,在确保功能实现的同时,另外一个不得不考虑的问题便是如何保障用户数据的安全,对于用户重要的数据,我们非常有必要对其进行加密后再保存,现在比较流行的信息摘要算法有MD5和SHA1,对于这两种算法,主流的编程语言都有对其实现,因此用起来方便又安全。

2.4 旅游社交平台测试

软件测试是软件开发环节中非常重要的一环,软件测试是帮助识别开发完成的计算机软件的正确度、完全度和质量的软件过程;是SQA的重要子域。它主要包括单元测试,集成测试,系统测试,还有验收测试几个大项。

2.4.1 单元测试

在单元测试环节中,Android端采用了Android自带的单元测试工具AndroidTestCase,服务器端我们采用了Junit4测试工具,对每一个业务方法进行了测试,确保正确后才进行下一步开发。

2.4.2 集成测试

在单元测试通过的基础上,我们将所有模块按照设计要求组成子系统,进行集成测试,从而发现在单元测试中没有发现的Bug,尽早的修改,降低项目风险,主要使用的测试工具是Selenium.

2.4.3 系统测试

在集成测试完成的基础上,我们完整的对旅游社交平台进行了系统测试,测试我们的功能是否达到了当初的设计要求,测试其容错能力和恢复能力。

2.4.4 测试结论

系统功能的测试结果显示,基于安卓平台旅游社交平台能够正常使用。各功能都可支持,满足了预期设计。

3 结束语

经过我们的努力,我们终于完成了一个简易社交平台的设计和开发,基本上满足了当初的设计要求,能够方便大学生的郊游和交友的需求,总之项目还是比较成功的,但是也存在着一些不足,比如在软件架构设计上肯定达不到很高的水准,总之我们会继续努力,争取使其更加完美。

参考文献:

[1] 何晨光.Android4编程入门经典[M].北京:清华大学出版社,2012.

[2] Satya K.精通Android[M].北京:人民邮电出版社,2010.

[3] 韩超.Android 系统原理及开发要点详解[M].北京:电子工业出版社,2010.

[4] 耿祥义,张跃平.Java 2实用教程[M].北京:清华大学出版社,2006.

[5] 翟大昆,陈春茶.Android项目开发详解[M].北京:机械工业出版社,2012.

[6] 王国辉.Java Web 开发实战宝典[M].北京:清华大学出版社,2010.

猜你喜欢
服务器端安卓子系统
不对中转子系统耦合动力学特性研究
iPhone不卡的秘密曝光:安卓也能享受
Linux环境下基于Socket的数据传输软件设计
GSM-R基站子系统同步方案研究
文物表情包
驼峰测长设备在线监测子系统的设计与应用
浅析异步通信层的架构在ASP.NET 程序中的应用
一种基于安卓系统的手机侧抓包分析方法
Android系统ListView控件数据递增显示研究
安卓L未至安卓M来了!安卓首泄漏M系统