基于Android的数字化校园微客户端软件设计与实现
2015-12-25诸葛恒麦富铭汪华登
诸葛恒++麦富铭++汪华登
摘要:为了提供在移动终端上对数字化校园系统的一些功能的访问,设计实现了一款基于Android系统的数字化校园微客户端软件。软件主要基于现有的系统,可提供课表查询、考试查询、图书借阅、电话查询等各种教学和生活方面的功能。通过分析和解析现有系统的访问请求信息和数据格式,并借助自行开发和部署于代理服务器上对软件,软件实现了对现有系统的访问,扩展了现有信息系统的应用范围,为Android系统用户提供了便利。
关键词:安卓;数字化校园;客户端
中图分类号:TP3
文献标识码:A
DOI:10.3969/j.issn.1003-6970.2015.09.009
0 引言
近年来,随着信息技术的发展,社会的信息化程度越来越高,高校内部的各种教学和生活方面的事务都采用了网络化的应用系统来管理,给师生办理各种事务提供了很大的便利。而随着Android系统的迅猛发展,基于Android的手机和平板电脑等移动设备的广泛使用,人们对从移动终端访问信息化系统的需求也越来越大。如何使得高校内部原有的各种信息化系统能通过基于Android的移动终端方便地访问,或者设计基于Android系统的软件为用户提供服务,成为越来越紧迫的需求。本文论述了一款基于Android的校园微客户端软件的设计方案和实现思想,给相关的系统开发工作提供参考。
1 系统设计
经过前期调研分析,基于现有等系统和技术条件,系统应当完成的基本需求主要分为三大类,第一类是教务系统相关等功能,主要包含课表查询、实验查询、考试查询和成绩查询等;第二类是生活服务,主要包括图书馆、微校园、外卖大全、常用电话、校园影院资讯等;第三类是其它辅助功能,包括上课和考试时间提醒、上课时间手机自动关闭铃声、系统意见反馈等。系统总体功能结构图如图1所示。
2 关键技术
2.1 核心思想
本系统多数功能需要实现对现有系统功能的访问,现有系统并不提供专门端访问接口,因此本系统中大多数功能模块都是都只是起到中间件的作用,用户的数据请求都是通过这些模块代理访问学校的教务系统和数字化校园系统,这些模块起中间件作用时,学校的教务系统和数字化校园系统返回的数据以httpdocument形式接收,然后通过SOAP和XML处理数据包分离JLH相应的响应信息。本系统开发了服务器端和运行于Android系统端客户端软件。系统服务端由两部分提供服务:一部分是记事狗开源微博系统(V4.0),运行环境是由PHP+MYSQL组成,PHP版本推荐V5.x(最低支持V4.3.x,),而MYSQL版本推荐V5.x(最低支持V4.2.x),由于该部分是第三方开源系统,本软件只调用其开放的API接口。另一部分是服务代理系统,该部分为服务端的主体,使用ASP.NET 2.0+C#+Microsoft SQL Server 2008开发完成,因为所开发的客户端的主要功能是面向师生的,而学校并没有直接提供教务系统、数字化校园管理系统等系统的开放接口,因此我们开发出运行于服务器上的网站,通过网站的代理功能实现所开发的客户端的功能和要求。该系统运行于WINDOWS SERVER2003 Enterprise系统平台。
2.2 用户接口设计
用户使用自己在教务系统的帐号密码登录系统,无需注册,若帐号或密码有误,将会以对话框的形式提示用户。登入软件后,首先进入的是课表界面,用户可以看到当日或其它日期的课程表。点击菜单按钮,软件会以列表的形式展示软件所有的功能模块,用户点击相应的列表项即可进入相应的功能模块。
2.3 UI接口设计
软件UI采用当下最流行的侧滑式UI框架,菜单栏滑动显示,下面列出两个主要接口。
public interface OnOpenListener{
public abstract void open();
}
public interface OnCloseListener{
public abstract void close();
}
界面必须实现这两个接口,监听菜单栏的打开与关闭动作,从而实现相应的操作。
2.4 Http接口设计
软件在发起Http请求时,为了不阻塞主线程(UI线程),所有的网络请求、文件读取等费时的操作均采用异步请求方式,从而给用户更好的体验。
public abstract class RequestListener
public abstract void onStart();
public abstract void onStart(int taskID);
public abstract void onComplete(T bean, Object re-sponse);
public abstract void onComplete(ResponseBean re-sponseBean, InputStream response, int taskID);
}
2.5 模块接口设计
账号验证模块点数据字段如表l所示。该模块主要实现用户账号的登录验证,用户通过客户端使用POST或GET方法提交请求时,如果HTTP的响应是布尔值,返回响应TRUE,说明账户成功通过,返回响应的是FALSE,则说明账号或密码有误。
获取课表模块点数据字段如表2所示。该模块是实现获取课表功能,当用户名和密码正确时,就会获取相应的学期的课表信息,POST或GET该请求时,term字段由客户端预先设定。其请求信息如下:
GET/test.asmx/GetTable?num=string&psd=string&term=string HTTP/1.1
POST/test.asmx/GetTable HTTP/1.1
Content-Type:application/x-www-form-urlencoded
Content-Length:length
num=string&psd=string&term=string
获取实验模块点数据字段表3所示。该模块实现获取实验表功能,当用户名和密码都正确时,就会获取相应term学期的实验安排信息,POST或GET该请求时,term字段由客户端预先设定。其请求信息如下:
GET/test.asmx/GetExp?num=string&psd=string&term=string HTTP/1.1
POST/test.asmx/GetExp HTTP/1.1
Content-Type:application/x-www-form-urlencoded
Content-Length:length
num=string&psd=string&term=string
获取考试安排模块点数据字段如表4所示。该模块实现获取考试安排的信息,当用户账号num和密码正确psd时,就会根据type类型值获取相应类型的考试信息。POST或GET该请求时,type安段由客户端提交表单项确定。其请求信息如下:
GET/test.asmx/GetExam?num=string&psd=string&type=string HTTP/1.1
POST/test.asmx/GetExam HTTP/1.1
Content-Type:application/x-www-form-urlencoded
Content-Length:length
num=string&psd=string&type=string
2.6 数据解析
本系统中获取和解析课表等多个对现有资源数据的访问过程中,都涉及到数据解析工作。在android系统中,很多资源文件都是xml格式,在android系统中解析xml主要有三种方式,分别是SAX、PULL、DOM。本系统是使用pull解析器进行解析的,它和sax解析一样,也是采用事件驱动进行解析的,Pull解析器运行方式与SAX相似。它提供了类似的事件,如开始元素事件,结束元素事件。使用parser.next0可以进入下一个元素并触发相应事件。事件将作为数值代码被发送,因此可以使用一个switch对感兴趣的事件进行选择处理。当元素开始解析时,调用parser.nextText0可以获得下一个Text类型元素的值,或者当处于某个元素时可以调用XmIPuIIParser的getAttributte0方法来获取属性的值,也可调用它的nextText0获取本节点的值。
3 项目总结
通过编写测试用例对系统的各个模块进行了单元测试、模块测试、集成测试后,解决了所发现的一些小问题,系统部署到服务器上运行,并提供客户端软件供校内师生下载安装使用,经过一段时间点试运行,整体上稳定可靠,得到了广大用户的认可。本项目克服了现有系统不提供访问接口的问题,通过对网络请求和对要解析对数据格式对分析,借助设置代理服务器等方式,实现了Android对现有系统对良好访问,为当前应用系统实现在Android端的访问提供了良好的借鉴方案。