基于Android平台的课表查询软件设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
收稿日期:2013-02-25
作者简介:吴衡(1982-),男,甘肃天水人,天水师范学院物理与信息科学学院讲师,硕士。
大学生的课程具有课程种类多、教室分布分散、上课时间和次数安排灵活、每门课有不同的教室、选修课程多等特点,所以记录这些信息的课表往往密密麻麻。学生一般会将课表打印出来,随身携带。纸质的课表在使用中容易破损、遗失、难以长期保存,而且很难及时更新,一旦课程发生变化,经常会发生因课表没有及时更新导致学生找错教室、上课延误等问题。
本文将教务管理与智能手机相结合,设计实现基于Android (安卓)系统的应用软件——高校课表查询软件,很好地解决了查课表难的问题。本软件设计新颖,学生只需输入学号,便可以快速显示本人的详细课表,包括代课教师、授课地点、上课时间、课程周节次等。通过笔者所在单位的实践,该系统得到了师生的认可。
1Android 系统简介
Android 是目前最流行的智能手机平台(占据
全球智能手机操作系统市场的59%的份额,中国市场占有率为76.7%),其最大特点是采用Linux 系统
做内核和应用程序使用JAVA 语言开发。
2系统的框架设计
整个系统由服务器端和客户端组成,系统流程按照C/S 模式构架。如图1所示。
智能手机终端通过无线数据网络将学生信息发往Job Schedule Server (任务调度服务器,简称JSS ),JSS 将学生信息转发到系统负载低的Application
Server (应用服务器,简称APP )。APP SERVER 负责与学校的教务平台通信,它将从JSS 传来的请求逐一按以下步骤处理:安全检查;远程SQL 查询教务平台;数据重新格式化;压缩封装;查询结果返回,最后课表信息再通过无线数据网返回智能手机终端。接收到信息后,手机终端按如下步骤逐一进行:安全扫描;数据解包;数据重新格式化;更新手机界面、呈现学生课表。
代码的编写使用开源编辑器Eclipse 。编译、运行和调试在Google 提供的手机模拟器上进行。
为了尽可能避免安卓平台碎片化的问题,开发应用程序接口选择Android2.2版本,最大程度地解决程序在不同运行安卓版本手机间的安装问题。同时,在开发的过程中采用模拟器和真机双测试,从而保证了程序的运行效果,加快了开发进度。[1]
3系统的设计实现
3.1客户端实现
基于Android 平台的课表查询软件设计
吴
衡
(天水师范学院物理与信息科学学院,甘肃天水741001)
摘要:移动互联全面进入3G 新时代,智能手机、平板电脑等新装备层出不穷,谷歌发布的开源Android 系统颠覆了传统手机概念,成了智能设备的代名词。智能设备与Internet 的结合是未来信息社会发展的趋势。基于Android 平台的课表查询软件为高校学生提供了在手机上快速查询课表的功能,便于学生快速了解课程安排详细情况,测试结果表明该软件操作简便,界面友好,具有很高的实用价值。
关键词:Android ;教务管理;课程表中图分类号:TP311
文献标识码:A
文章编号:1671-1351(2013)
02-0073-03
图1教务数据流拓扑图
2013年3月天水师范学院学报
Mar.,2013第33卷第2期
Journal of Tianshui Normal University
Vol.33No.2
73
安卓手机客户端使用JAVA 语言编写、Eclipse 编辑,项目结构如图2
所示。
图2教务项目结构示意图
程序运行后首先启动欢迎界面。欢迎界面在屏幕上短暂停留几秒后进入学生信息输入界面,在该界面输入学号,点击“查课表”按钮,学生周课表出现,单击每一节课,显示每节课的详细情况。
3.1.1欢迎界面的实现
欢迎界面的代码文件是Splash.java ,继承了
android 的Activity 类,它是整个程序的默认入口。欢迎界面在屏幕上停留几秒后使用Intent 方法进入信息录入界面(SNoInput.java )。停留效果由子线程方法实现。[2]
主线程建立欢迎界面后,用户新建一个子线程实例,用子线程实现规定时间的延迟,结束后告诉主线程进行用户界面(User Interface 简
称:UI )刷新,从而产生了屏幕停留的效果。实例代码如图3所示。
3.1.2学生信息输入界面
SNoInput.java 实现学生输入学号和网络获取详
细课表两个功能,其中网络处理部分是整个程序的核心和难点。数据从服务器端通过网络传入手机客
户端时往往会产生延迟现象,延迟可能在1s 以内,也可能会达到4~5秒或者更长。[3]Android 程序运行后默认情况下在一个线程内,UI 更新、数据处
理是一步一步进行的。如果网络延迟很短,点击查询后很快会进入课表显示界面。一般来讲,延迟超过3秒,手机会产生假死机现象,就会严重影响程序的用户体验。网络性能决定延迟的长短,处理延迟的最好方法就是将网络处理与主程序线程分开处理,也就是异步任务机制,Android 提供了工具类android.os.asynctask 来实现该机制。SNoInput.java 使用Asynctask 创建异步任务来解决网络延迟问题,
代码如图4所示。
3.1.3课表详细显示界面
Android 标准库中的GridView 类用表格的排列
方法显示数据。[4]以节次——星期关系按照表格的形式显示课程名称,在课表的每个窗格的onClick
事件中触发Dialog ,显示详细信息,如图5所示。
3.2服务器端实现
App SERVER 服务器端是客户端和学校教务
Oracle 数据库的纽带,它首先要考虑数据安全和系
统负载。安全方面,底层操作系统选用Linux3.0,代码使用Shell 脚本和PHP 语言共同编写,采用多层次防护安全策略,这样可以有效地增加系统安全性;同时系统对所有的客户端请求进行安全扫描,过滤敏感SQL 查询语句。PHP 调用原生Oracle 数据库接口,直接与学校教务数据库进行通信,SQL 查询课程表的实例代码如图6
所示。
图3屏幕延迟代码及效果图
74