基于Android的学生宿舍维修管理系统的设计与实现

2013-10-20 08:36戴智明
微型电脑应用 2013年1期
关键词:调用宿舍解析

戴智明

0 引言

随着移动技术的不断发展,人们都在使用身边的各种移动设备享受着各式各样的服务。Android作为一个Google发行的用于移动设备操作系统,由于Android的开放性、低成本,使其迅速获得了市场的认可。根据2012年7月的统计结果显示,Android在中国市场的占有率已经达到了76.7%。因此为了让学生,让宿舍管理人员,让维修人员能够更高效更便捷的完成各种日常维护管理工作,本文提出了一种基于Android平台的宿舍维修管理系统。

1 管理系统的设计

1.1 现状分析

根据笔者所在学校的宿舍维修管理的情况看,目前的情况为学生找宿舍管理人员填写纸质报修单,再由宿舍管理人员定时将报修单提交给维修班,维修班根据报修单派人完成维修工作;而宿舍管理人员每天都需对各个宿舍的卫生状况进行检查及打分,都是记录在纸上然后再在门口黑板上公布结果。这样的流程不仅繁琐,而且不易归档整理。

1.2 需求分析

(1)现设计学生能利用自己的Android手机直接向维修班提交报修单,并可以对维修单的进度进行跟踪,完成之后能进行评价反馈。(2)维修班则可使用WEB平台接收所提交的所有报修单,并对其进行人员分配,把订单直接发布到维修人员的Android移动终端上,这样不仅简化了流程,也使维修人员在外也能得知接下来的任务,维修流程大大缩短。(3)宿舍管理人员每天对宿舍的检查记录也只需在Android移动终端上完成,对自己负责的宿舍范围内的所有宿舍的卫生状况进行打分,如若发现有不符合宿舍规范的现象发生,也可直接使用移动终端对该宿舍发送整改通知。

1.3 系统功能设计

根据之前的需求,基于 Android的宿舍维修管理系统在功能上将包括以下几个部分[1],如图1所示:

图1 系统功能模块图

1.4 Android数据访问的关键技术

(1)Android SQLite

SQLite是一款轻量级、嵌入式的关系型数据库,其占用的资源非常少,可能只需要几百KB。而Android作为移动终端的操作系统,其资源量是不能跟PC机相提并论的,因此当需要在 Android平台上进行数据存储的时候 SQLite则是一个不错的选择[2]。因为在本维修管理系统中产生的数据量不会很庞大,因此也将采用SQLite作为数据的本地存储方式,同时也会记录下用户等的一些状态信息。

(2)WebService

WebService,其实就是一个程序,其提供了一个服务接口,允许用户通过Web来对其进行调用[3]。在Android平台上是无法直接对远程数据库(如:SQL)做直接的访问的,所以就需要WebService来担当中间层,可以用过http协议来访问WebService,然后再通过WebService来访问数据库,完成数据的请求。对于数据结构及数据之间的关系,WebService则采用标准的XML语言,通过指定的格式来对数据进行描述。

WebService具有以下优点:

跨防火墙的通信:如果用户数量庞大,并且分布很广,那客户端和服务器端之间的防火墙或者说代理服务器都将会使通信变得很麻烦。如果在中间层使用WebService,就可以允许用户直接通过中间层来进行调用,这样不仅开发周期大大降低,同时代码的复杂度也会降低。

集成性:在很多情况下,都需要对不同平台、不同语言构成的应用程序进行集合。但这个集合所需要的成本是异常大的。而WebService是由标准的XML来描述,具有良好的跨平台性,那么通过 WebService可以将数据进行统一共享,以方便使用。

在本系统中也将借助WebService来进行对远程数据的交互。

2 学生宿舍维修管理系统的实现

2.1 开发平台的搭建

远程数据的访问将使用 WebService来完成交互,WebService 是一种基于 SOAP协议[4]的远程调用标准,通过 WebService可以将各种平台、各种语种、各种数据整合到一起。但是在Android SDK中并没有提供调用WebService的库,因此需要通过第三方提供的包来向服务器端进行WebService调用。首先得先下载 KSOAP包,然后新建android项目:并把KSOAP存放在android项目的lib目录下,右键->build path->configure build path,在 Libraries中Add JARS,添加KSOAP包。

2.2 WebService数据交互的实现

要对WebService方法进行调用首先得对SoapObject对象进行实例化,指明命名空间和方法名:

设置调用方法的参数

对SOAP请求信息进行设置,包括SOAP的版本号

创建HttpTransportsSE对象:

然后对返回的数据进行解析

另外需要注意的是,通过 Android移动终端调用WebService时,是必须通过网络的,因此程序必须首先获得网络访问的权限,需要在AndroidManifest.xml中的manifest中添加一条对访问网络权限的定义:

2.3 XML的解析

XML作为一种标准化的常用存储数据方式,具有很良好的跨平台性。对 XML的解析通常有三种方法:DOM、SAX、PULL[5]。DOM解析器在对XML文件进行操作时,是将文件分成独立的片段或树形结构的节点,通过节点树来访问数据,因此其检索效率会比较高,但是在访问大文档的时候整个解析过程所消耗的资源会比较大,通常这种方式会用在PC上。SAX和PULL的运行方式是相类似的,都是基于事件的解析器。其特点都具有解析速度快、资源消耗小、小巧等特点。而PULL已经嵌入到Android内核中了,不需借助第三方的jar包来进行支持,在本文中的XML文件的解析都将采用PULL解析器来完成。

PULL解析器进行解析时首先需获取解析器并设置编码,并产生第一个事件:

当事件产生后将对这个事件进行解析。

通过XmlPullParser.START_DOCUMENT,判断当前的事件是否为文档开始的事件。如果是则需初始化对象的集合,如:

通过XmlPullParser.START_TAG来判断是否是标签元素的开始,如果是则需判断标签元素名,并得到其属性值如:

通过XmlPullParser.END_TAG判断当前事件是否是标签结束的事件,如果是则添加到集合,并进入下一个事件:

event = parser.next();

2.4 网络通信过程中中文乱码的解决方法:

在开发过程中有的时候会碰到中文显示乱码的问题,这是由于在通信的过程中,使用了不同的编码方式;这个编码至少会进行两次,一次从服务器的编码转换成网络编码,第二次是从网络编码转换成终端设备上的编码。在这两个转换过程中,如果编码方式的不统一,就可能会引起乱码。在本系统中采用的方式为传输过程中采用 UTF-8的编码方式进行传输,因为目前的终端设备几乎都会支持Unicode的字符集,那么在UTF-8和Unicode字符集之间就能够进行转换。

系统界面如图2所示:

图2 系统界面图

3 结论

将宿舍维修管理系统放到 Android平台上,充分发挥了移动终端的便捷性,报单、打分、维修等都能轻松实现。特别对于维修人员来说,现大可不必每次处理完一批报修单后还需返回重新领取任务,随时随地都可清楚的看到完成了哪些,还有哪些需要完成,也能及时的收到维修后的反馈。

本系统的实现也可以作为其他高校辅助系统开发的一种参考。

[1]李亮.基于Android系统的小型店铺辅助管理软件的设计[B].企业科技与发展:下半月,2011(10):48,50.

[2]张恒喜.基于 SQLite的 Android数据库编程[J].电脑编程技巧与维护,2011(21):30,31.

[3]王成伟.基于 WebService的建材租赁管理信息系统的设计与实现[J].电脑与信息技术,2012(3):54,58.

[4]韩双旺.基于Web Service技术的考试成绩在线查询系统[J].工业仪表与自动化装置,2012(3):45-47.

[5]栾咏红.基于 Android平台电子读物的开发与实现[J].湖南理工学院学报,2011:48,52.

猜你喜欢
调用宿舍解析
热得快炸了
三角函数解析式中ω的几种求法
核电项目物项调用管理的应用研究
学校到底是谁的
睡梦解析仪
电竞初解析
对称巧用解析妙解
基于系统调用的恶意软件检测技术研究
热得快炸了
如何帮助大一新生建立良好的宿舍关系