APP下载

基于Android平台的掌上校园信息系统设计与实现*

2016-07-21王英明郭艳梅

通化师范学院学报 2016年6期

王英明,郭艳梅

(1.安徽工业大学工商学院 电气信息系,安徽 马鞍山 243002; 2.马鞍山职业技术学院 基础部,安徽 马鞍山 243031)



基于Android平台的掌上校园信息系统设计与实现*

王英明1,郭艳梅2

(1.安徽工业大学工商学院 电气信息系,安徽 马鞍山 243002; 2.马鞍山职业技术学院 基础部,安徽 马鞍山 243031)

摘要:随着移动互联网技术的不断发展,以及智能手机的广泛普及,基于Android平台的校园类APP逐步成为校园信息化建设的重要组成部分.该文设计了一款掌上校园客户端系统,包括学院导航、教务信息、就业信息、学院通讯录四大模块,学院师生可以通过此软件及时掌握学院动态,方便快捷.同时还详细介绍了系统实现过程中用到的关键技术.

关键词:掌上校园;MVP;Android

随着智能手机的普及,以及大量APP(课程格子、超级课程表等)的广泛应用,学生对于学校信息的获取不再局限于通过PC机来获取,而更多地倾向于通过手机获取,然而出于安全性方面的考虑,学校部分信息只能通过校园网进行访问,致使许多在校生无法正常获取这些信息,并且对于一些可以在公网上访问的信息,由于未兼容移动设备,致使学生在通过手机访问时界面需要缩放、移动,界面不友好.目前,很多高校都已经开发了基于移动终端的校园类APP,如浙江工商大学[1]、 萍乡学院[2]等.

鉴于以上原因,本文作者开发了一款基于Android平台的校园类APP,用来满足广大在校师生及时获取学院、教务、就业信息、课堂考勤的基本要求.

1系统设计

1.1主要功能模块

通过对现有网络资源分析,以及对在校师生的需求调查之后,将掌上校园分为四大模块,系统结构如图1所示.

(1)学院导航.主要包括学院的基本信息,以及学院的最新新闻、通告等,为了减少客户端与服务器端来往数据流量,该模块首次加载从服务器端获取,然后缓存至本地 SQLite数据库中.

图1 系统功能模块图

(2)教务信息.主要包含教务通知、考试安排、课表查询、成绩查询(学生)、课堂考勤(教师)等,该模块数据来自学院教务网站,登录后方可查询.

(3)就业信息.主要包括招聘会、招聘信息、就业网站的通知公告,该模块数据来自学院就业网站,为毕业生提供最新的就业信息.

(4)其他.包括学院通讯录、校历、意见反馈等,其中通讯录提供对学院各部门及人员联系方式的查看操作.

1.2系统网路拓扑图

本系统由两部分组成,一是手机移动客户端,二是掌上校园服务器端.学院师生通过安装有客户端APP的移动终端,访问掌上校园服务器,然后通过服务器去抓取学院网站数据后返回给客户端,系统网络拓扑图如图2所示.

图2 系统网络拓扑图

1.3系统设计模式

系统服务器端采用SSH框架来实现,主要包括两部分,一是通讯录与考勤管理系统;二是为手机端提供数据,以及与手机端进行数据交互的REST服务.

Android平台客户端采用基于MVP架构的框架进行设计,降低各个模块之间的耦合度,其中:

Model 负责业务逻辑和实体模型.

View 对应于Activity,负责View的绘制,以及与用户交互.

Presenter 负责完成View与Model间的交互,以及与用户交互.

2系统实现与关键技术

2.1掌上校园服务器端

服务器端主要包括通讯录、考勤管理系统,以及为手机端提供数据、与手机端进行数据交互的REST服务两个方面,这部分是采用SSH框架来实现的.

客户端的大部分数据是通过网页抓取的方式从学院现有的网路资源上获取的,由于学院部分站点只能在校园网内访问,所以客户端先访问掌上校园服务器上的REST服务,然后REST服务根据请求再去访问对应的资源,最后通过JSOUP对响应的HTML进行解析,将解析结果返回给客户端,如图3所示.

图3 系统数据流向图

对于教务系统中的数据的访问,需要先模拟登录,记录下cookie、__VIEWSTATE等必要的信息,在下次访问时需携带这些信息才能正常访问.对于内容页中(新闻详细页)出现的图片、附件,需要在返回给客户端之前,将相对URL改为绝对URL.

2.2掌上校园客户端

客户端采用MVP架构进行设计,工程文件设计如图4所示.

图4 客户端工程文档结构图

(1)客户端首页.客户端首页采用FragmentTabHost + Fragment来实现各个功能标签的切换,校园导航fragment包括两部分,一部分是展示学院图片新闻的JazzyViewPager,一部分是显示功能模块的GridView,界面效果如图5所示,部分代码如下:

JazzyViewPager mJazzy = (JazzyViewPager) view.findViewById(R.id.jazzyViewPager);

mJazzy.setTransitionEffect(TransitionEffect.CubeIn);

mJazzy.setAdapter(new MyJazzyAdapter(list,onClickListener);

图5 客户端首页

(2)学院、教务、就业信息列表与详细内容页面.学院、教务、就业信息各模块中的内容均由学院现有网站通过网络抓取获得,界面风格一致,分为信息列表和详细内容两个展示页面.信息列表页面通过自定义下拉刷新列表控件CustomListView实现,数据由掌上校园服务器端抓取学院网站提供,在请求时分页进行请求,当用户向上滑动列表时,会自动加载下一页数据.新闻内容页面是通过WebView进行加载,服务器端根据请求的新闻URL先去学院网站抓取数据,然后将数据中的图片、附件链接等相对地址改为绝对地址,最后放入HTML框架中返回至客户端,界面效果如图6所示,部分代码如下:

RequestParams params = new RequestParams();

params.put("page", cur); params.put("type", type);

client.get(url,params,textHttpResponseHandler);

图6 新闻列表与内容页

(3)课堂考勤.课堂考勤页面需要用户先登录,登录账号为正方教务系统账号,登录成功后首先点击“同步”按钮同步教务系统课程信息,服务器端根据客户端提供的用户名、密码、角色等信息模拟登录正方教务系统,抓取课程信息以及每门课的选课信息,然后缓存至客户端SQLite数据库中,后续加载直接读取本地数据库,考勤数据只记录异常情况(旷课、请假),在连接WIFI的情况下同步至服务端,界面效果如图7所示,部分代码如下:

图7 考勤管理

ListView customListView = (ListView) findViewById(R.id.CourseList);

Listlist = sh.getKaoqinData(getIntent().getStringExtra("kcdm"));

customListView.setAdapter(new MyKaoqinAdapter(activity, list));

(4)通讯录.通讯录模块为全院所有部门及人员的联系方式、办公地点,首次使用时需要从服务器端(Oracle数据库)同步数据至本地,显示时从本地数据库中读取并转换为TreeElement对象,然后初始化TreeView控件,设计时采用部门目录树的形式显示,方便操作,界面效果如图8所示,部分代码如下:

treeElements = AddressUtil.DeptEntityToTreeElement(sh.getDeptEntityData("1"));

treeView.initData(this, treeElements);

treeView.setLastLevelItemClickCallBack(itemClickCallBack);

图8 通讯录

3结束语

根据学院师生实际需求,本文基于Android平台设计了一套掌上校园客户端系统,实现了对学校新闻、教务、就业等相关信息的便捷查看.系统界面友好、操作简单,不仅为教师教务提供了新的途径,也为学生及时了解学院信息、教务信息、就业信息提供了方便.

参考文献:

[1]谢文焘,董黎刚.基于Android的校园网移动客户端设计与实现[J].杭州电子科技大学学报,2012,32(5):203-206.

[2]马文科,刘琨.基于Android的数字化校园客户端设计与实现[J].萍乡高等专科学校学报,2014,31(3):55-58.

(责任编辑:王前)

DOI:10.13877/j.cnki.cn22-1284.2016.06.005

*收稿日期:2016-06-10

基金项目:国家青年科学基金资助项目(61300059)

作者简介:王英明,男,安徽宿州人,教师.

中图分类号:TP31

文献标志码:A

文章编号:1008-7974(2016)03-0012-03