基于Android手机的校园移动平台设计

2015-09-18 13:21曹双双
软件导刊 2015年8期
关键词:平台设计

曹双双

摘要:教育信息化促使校园建设不断完善,信息移动化正逐渐走进校园生活。为了提高高校信息化水平,方便Android智能手机用户查询学校相关信息,在深入进行需求分析基础上,利用Android技术和SQLite数据库,以湖北师范学院为例,研究了校园移动平台客户端的设计与实现过程。该客户端基于Java语言开发完成,实现了校园新闻公告查询、课程表查询、空教室查询和教务信息查询等功能,并且已经在Android5.0仿真设备上测试通过。

关键词:Android;校园移动平台;平台设计

DOIDOI:10.11907/rjdk.151754

中图分类号:TP319

文献标识码:A 文章编号文章编号:16727800(2015)008017903

0 引言

随着移动终端的普及,移动互联网发展正日渐升温,在无线通讯网络技术发展成熟的大环境下,大学生这一特殊群体中Android智能机的使用率较高,且手机的智能化程度越来越高,手机的传输速度越来越快,手机也早已突破传统的功能应用。近年来,随着高校扩招,学院师生数量急剧膨胀,加上信息社会的快速发展,校园的信息量也逐渐变得庞大。在高校日常工作中,利用智能手机操作教务系统实时发布学生信息、教务信息、放假信息等内容,可以让教学工作有序进行,师生使用智能手机等移动终端实现校园信息化管理具有深刻的现实意义与极高的应用价值[1]。

1 相关技术

1.1 Java技术

Java是一种可以撰写跨平台的、面向对象的程序设计语言,拥有卓越的通用性、高效性、平台移植性和安全性等优良特性,在Android开发中是主要开发语言之一。

1.2 XML技术与MVC架构

XML(eXtensible Markup Language)中文名为可扩展标记语言,是互联网联盟(W3C)于1998年制定的一种语言规范,是全新的描述结构化数据的语言[2]。在Android开发中,XML主要用于应用权限配置、Activity注册、布局文件编写、资源存储与标记等。

MVC是一种架构型模式,用来指导开发者改善应用程序架构,使得开发和维护效率更高。在MVC中,应用程序被划分为模型(Model)、视图(View)、控制器(Controller)3部分。运用MVC模式进行开发,将有利于数据维护并提升开发效率。

1.3 Android开发技术

Android是一种基于Linux的开放源码系统。据CNET报道,调研机构Strategy Analytics最新的第三季度报告中显示,Android以83.6%的市场占有率稳居移动操作系统市场之首。因此,选用Android系统进行开发有利于用户量的提升[4]。

1.4 SQLite数据库

SQLite是Android系统自带的轻量型、运算速度极快的嵌入式关系型数据库,它不仅支持标准的SQL语法,还可以对Android封装好的API进行操作,让存储和读取数据变得方便。使用SQLite可以方便地调用后台数据库。

2 系统分析与设计

2.1 需求分析

2.1.1 开发平台需求和运行需求

本系统在win7操作系统上开发,开发环境包括eclipse、JDK、android SDK、Android eclipse ADT。开发后能在大部分Android手机上使用,支持Android最新系统版本。其安全性、可靠性和易用性等非功能性需求也可得到保障。

2.1.2 功能需求

系统将满足用户随时随地利用移动设备访问校内资源的需求,并可解决传统移动设备访问校园网络的弊端与局限。客户端功能需求包括教务信息查询、校园新闻公告、图书馆信息查询、内置浏览器等。

2.2 功能模块设计

2.2.1 模拟登录

模拟登录主要通过使用模拟登录界面,获取学号与密码以及用户类别,运用HttpURLConnection、HttpClient访问教务系统。关键代码如下:

//设置编码方式

HttpEntity entity = new UrlEncodedFormEntity (params,HTTP.UTF_8); httpRequest.setEntity(entity);

//新建 HTTP 客户端

HttpClient httpClient = new DefaultHttpClient();

//执行请求得到响应

HttpResponse httpResponse= httpClient.execute (httpRequest);

//判断响应的状态是否成功

if (httpResponse.getStatusLine () .getStatusCode () == HttpStatus.SC_OK)

{

//得到结果字符串

String result = EntityUtils.toString ( httpResponse.getEntity(),"gb2312");

String s1 = " alert ("" ;

if ( result.indexOf (s1) != result.lastIndexOf (s1) && result.indexOf (" expandingWindow (" http:") ==-1)

{ int b1 = result.lastIndexOf ( s1) +s1. length () ;

int b2 = result.lastIndexOf (" ") ;") ;

String outstr = result.substring (b1, b2) ;

txtsearchResult.setText(outstr);

} else {

Header h []= httpResponse.getAllHeaders ();

String sitecookie = "" ;

String c ="" ;

for (int i = 0; i < h.length; i++)

{ c = h [i].getName () ;

if (c.trim () .equals (" Set-Cookie"))

{ sitecookie=h[i].getValue(); } }

2.2.2 教务信息查询模块

通过教务系统的模拟登录可以查询开设课程、选课,并查看课程表、课程信息和成绩。每个模块涉及的类不同,如包含了课程基本属性及其属性的get()、set()方法来获取、存入和删除课程信息的类Mcourse,通过新建HTTP客户端,获取网页信息,运用正则表达式获取其中的课程信息,再通过调用各类View的setText()方法使课程信息呈现在屏幕控件上。而其它类如MScore包含了成绩基本信息及其属性的get()、set()方法,以及获取、存入和删除课程成绩的数据库操作;ActivityPickCourse完成查看搜索结果的界面,取出由ActivitySearchCourse存入数据库的数据;ActivityMyScore完成课程表的界面,实现了在ProtocolMyCourse文件中定义的ProtocolMyCourseDelegate接口等。

该模块最有特色的一个地方就是在原有教务信息查询系统基础上增加了空教室查询功能。由于课程安排与学生活动等原因,无法通过计算来获取空教室,因而只能通过教务处发布的自习教室表格导入数据库来实现空教室的查询。关键代码如下:

--如果接受数据导入的表已经存在

insert into 自习教室表 select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ,

'Excel 5.0; HDR=YES;DATABASE=c:test.xls',sheet1$)

--如果导入数据并生成表

select * into 自习教室表 from

OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ,

'Excel 5.0;HDR=YES;DATABASE=c:test.xls',sheet1$)

此时使用的数据库是Android自带的SQLite轻量级的嵌入式关系型数据库,可以大大提高效率。而传统的JDBC需要消耗大量资源,对移动设备并不适用,可以使用Android自带的SQLiteOpenHelpr类对数据库进行操作。

2.2.3 校园新闻公告模块

通过ListView控件对新闻和公告进行控制,在完成ListView中各子项的布局后将其填充至Listview控件中;然后创建适配器类AltColorAdapter,让其继承SimpleAdapter基类,重写其getView()方法,完成列表中隔行换色显示效果;接着调用ListView控件的setAdapter()方法与AltColorAdapter类对象进行绑定;最后调用ListView控件的setOnItemClickListener()方法来设置列表中子项的点击操作,实时获取学校官网的新闻与通知公告,运用XML存储新闻标题、内容、时间。关键代码如下:

//使用SimpleAdapter绑定数据

private void bindData1()

{

List list=tService.findSplitPage(0, 20, "");

List> data = new ArrayList>();

for(testTable t: list)

{

HashMap h=new HashMap();

h.put("name", t.getName());

h.put("memo", t.getMemo());

h.put("id", t.getId());

data.add(h);

}

SimpleAdapter adapter=new SimpleAdapter(this, data, R.layout.item,

new String[]{"name","memo"},new int[]{R.id.testname,R.id.testmemo});

listView.setAdapter(adapter);

}

2.2.4 图书馆信息查询模块

图书馆模块完成了图书搜索、预约、借阅历史查看、续借、已借未还记录查看5个功能。根据手机界面易用性的非功能性需求,图书馆模块分为登录主界面和两个功能模块,即图书搜索(包括搜索和预约)、图书管理(包括查看借阅历史、查看未还记录和续借)。主界面用来处理普通用户和管理员登录的请求。主要代码如下:

if(user.getPassword().equalsIgnoreCase(password))

{

flag=true;

}else{

flag=false;

}

图书搜索主要用于查询用户需要的图书信息,包括查看是否被预约。部分代码如下:

try {

bookList=dao.findBook (bookName);

{

setAtribute(“bookList”,bookList) ;

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

管理图书模块主要帮助用户查询自己的借阅信息,包括书籍名称、借阅历史、未还记录和续借等功能。部分代码如下:

int number=Integer.parseInt(number);

if(number>0)

{

while(i

{

Book book1=new Book();

i++;

…………

try {

LibraryDao.save(book1);

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

2.2.5 内置浏览器

使用WebView控件可以轻松置入浏览器,通过对常用网站的设置,可以方便师生进入教务处、OA办公系统、教务系统、以及学校网站等,极大减少了输入地址以及寻找超链接的时间。不用单独打开浏览器应用,节约了时间,减少了内存消耗。

2.3 系统框架

系统采用C/S结构,有利于降低服务器的负担。由于后台数据库和服务器的集中处理,也降低了客户端的运行复杂程度,减少了对手机资源的需求和占用。

2.4 系统维护

数据库的维护和更新需要有专人及时处理,即将过时的信息难以满足用户需求。网络数据的传输安全也非常重要,服务器中存在着大量的个人信息,如因安全性问题导致信息泄漏后果将不堪设想。这需要在服务器建设与维护中更加注意安全性问题,以保证系统的正常运行。

3 结语

随着“互联网+”概念的推出和智能手机的普及,基于Android手机的校园应用系统得到了广泛应用。本文结合校园实际需求,进行了基于Android手机的校园移动平台设计,该平台能为师生提供便捷的信息查询等功能,具有一定的应用价值。同时其可移植性强,几乎所有校园平台都可以此为蓝本进行二次开发,并且对地方门户新闻的应用开发也具有一定的参考价值。

参考文献:

[1] 熊健.基于Android平台的企业移动应用开发框架的分析与设计[J].软件,2012,33(11):4446.

[2] 李岩.基于XML的电子政务架构XML_GOV[D].北京:清华大学,2004.

[3] 陈臣,王斌,孙琳,等.研磨Struts2[M].北京:清华大学出版社,2011.

[4] 郭霖.第一行代码Android[M].北京:人民邮电出版社,2014.

[5] 赵英,王飞.手持移动设备在校园信息系统中的应用[J].计算机技术与发展,2012,22(12):195197.

[6] 王述聪.基于Android手机应用的在线课程表查询[J].电脑编程技巧与维护,2013(22):5254.

(责任编辑:孙 娟)

猜你喜欢
平台设计
MOOC时代创新区域教师培训课程建设研究