基于Android平台的校园助手APP设计与实现

2017-01-21 15:03罗杰王兴柱冷迅何易升孙航宇
软件导刊 2016年12期

罗杰+王兴柱+冷迅+何易升+孙航宇

摘 要:为满足信息查询需求,基于Android平台,使用数据抓包、Cookies模拟登陆、Jsoup数据解析、SQLite数据库等技术设计开发了校园助手系统。系统实现了教务管理接入、成绩查询、空教室查询、课表查询等功能。用户无需注册,使用教务系统学号、密码即可登录。提供了一个全天候、准确、便捷的校园信息实时查询平台。

关键词:校园助手;Jsoup网页解析;教务系统;SQLite数据库;Android Studio

DOIDOI:10.11907/rjdk.162131

中图分类号:TP319

文献标识码:A文章编号:1672-7800(2016)012-0051-02

0 引言

手机已成为生活中不可分割的伴侣,Android操作系统作为一个市场占有过半的手机平台,能够为用户提供高质量的服务支撑。随着无线互联网的普及,出现了越来越多的校园APP,给生活带来了诸多便利。通过使用手机APP可以方便、快捷访问校园资讯,随时随地个性化、准确地使用校园服务。

大学生上课经常要去不同的教室,学校安排的课程不完全固定,结课时间不统一,学生经常会走错教室或错过上课。为此,设计了校园助手APP,目的是将这些课程信息归类整理,通过APP随时随地查询。同时,APP中还加入了成绩查询和空教室查询功能。

1 系统设计

1.1 需求分析

1.1.1 功能需求分析

信息时代人们越来越依赖于通过信息技术解决生活中的各种问题,本项目开发湖南文理学院芙蓉学院校园APP,根据学校课程安排、教室分布进行模型建立和数字化管理,通过APP中“空教室查询”、“教务查询”、“课程表”等功能,为学生提供官方准确的课程信息,解决日常学习生活中经常遇到的问题。

1.1.2 性能需求分析

评价软件质量除了看其是否满足功能需求外,还应考量性能指标,如任务响应时间、系统稳定性(是否经常崩溃)及安全性等。系统性能直接影响用户对软件的使用体验。对系统的性能评价主要看其占用运行平台的CPU 多少(越少越好)、内存的占用率(越低越好)及用户请求的响应时间(越短越好)。本系统设计将手机CPU 使用率控制在20%以下、内存控制在100M 以下、响应时间保持在2s以内。

1.1.3 硬件需求分析

搭建服务器端和移动端测试硬件需要PC和Android 手机,测试所用硬软件配置如下:

(1)PC 端配置。硬件方面:处理器要求主频在2.0GHz以上,内存保证2G,硬盘320G即可;软件方面:操作系统选用Windows 7或Windows 8,数据库管理系统选择SQLite Expert Personal version 3.5.83版本及以上。

(2)移动端配置。硬件方面:本管理系统硬件要求不高,主频1.5GHz 以上,内存1G,需要准备不同屏幕尺寸手机;软件方面:操作系统安卓2.3版本以上。

1.2 功能设计

主要功能模块有:用户登录、成绩查询、课表查询、空教室查询等。

用户登录:用户打开系统后,需要输入学籍学号和密码进行登录,该功能分为在线登录和离线登录,在无网络连接的情况下可以选择离线登录功能。

成绩查询:系统通过抓取学校官方教务系统数据,在本地客户端上显示,并下载到数据库以供离线查询,在客户端实现按学期和年份查询登录用户成绩功能。

课表查询:系统提供课表查询功能,学生可及时迅速查询到本专业课表。

空教室查询:考虑到有的班级需要临时调课,或者有同学需要找一间空教室复习等问题,系统提供空教室查询功能。

1.3 数据库设计

本系统将轻量级数据库SQLite作为本地数据库。数据库设计、数据导入使用SQLite Expert数据库管理系统,具体实现见表1。

2 系统关键技术及实现

2.1 教务系统接入

登陆模块实现:登陆功能主要使用URLConnection类的直接子类HttpURLConnection进行教务系统模拟登陆,判断登陆权限,保存Cookies,使用Jsoup网页解析技术获取用户信息,并使用SharedPreference进行配置信息存储。

2.2 主体功能实现

成绩查询模块实现:在登陆成功之后,根据用户选择的查询筛选方式,使用HttpURLConnection类与教务系统服务器交互,获取服务器反馈后自动跳转到成绩显示页面,再通过Jsoup网页解析技术解析HTML网页,抽取成绩等相关信息,使用>布局进行展示。

课表查询模块实现:通过读取SharedPreference,获取用户的班级信息,自动匹配当前学期周、单双周、检索SQLite课表数据库,使用>进行布局,通过随机算法进行课表背景色填充,自动适应课表展示长度。同时提供全校课表按班级、按教学周检索,方便进行课表信息查询。

空教室查询模块实现:根据前期对教学楼及教室分布的调研数据,使用>布局,构建多个Adapter进行ListView适配,通过自动教学周获取,检索SQLite课表数据库,填充Adapter复用convertView、更新ListView,从而高效、准确、直观地展示空教室信息。提供按教学周、按星期检索空教室功能,方便用户查询。

2.3 数据流图

数据流图描绘了本项目的基本实现及各功能输入输出的数据变换过程,反映系统的数据处理过程逻辑,以直观的图形形象描述了所有数据流从输入到输出的变换过程,见图1。

3 软件测试

3.1 Mokey测试

Mokey测试使用socket通信,随机模拟用户触摸、滑动和点击事件,从而发现系统缺陷,测试系统性能和稳定性。图2是登录模块Mokey测试2 000次运行时的截图。

3.2 百度云测试

Android测试有特别要求,选择百度官方测试平台百度云进行测试。该平台为使用者提供了成百上千种主流品牌的移动终端设备,涵盖了前100 Android版本和各种配置的手机客户端,方便使用者进行手机软件的开发和测试工作。

4 结语

系统在湖南文理学院芙蓉学院测试,运行情况稳定,使用效果良好。随着手机移动客户端在校园的普及,学校教务管理系统、课程信息系统、图书馆查询系统、校园实验室系统等组成了多元化科技校园,高校与科技时代接轨,学生校园生活将更加科学、丰富多彩。

参考文献:

[1] JSHUA BLOCH.Effective Java 中文版[M].北京:机械工业出版社,2015.

[2] 刘超.深入解析Android 5.0系统[M].北京:人民邮电出版社,2015.

[3] 余志龙,陈煜勋.Google Android SDK开发范例大全[M].北京:人民邮电出版社,2011.

[4] 武永亮.Android开发范例实战宝典[M].北京:清华大学出版社,2015.

[5] BRUCE ECKEL.Thingking in Java[M].北京:机械工业出版社,2015.

[6] 丰生强.Android软件安全与逆向分析[M].北京:人民邮电出版社,2015.

[7] 施懿民.Android应用测试与调试实践[M]. 北京:机械工业出版社,2015.

[8] 陈哗 .大话移动APP测试Android与IOS应用测试指南[M].北京: 清华大学出版社,2014.

(责任编辑:杜能钢)