基于Android的校园学习助手软件的设计
  0引言
  目前,在大学校园中,随着近年来智慧校园的风行与建设,众多院校的数字化和信息化水平得到显著提高。而在大学生体中,智能手机早已成为潮流配置,大有取代传统PC之势[1]。根据市场调查,智能手机中的大部分都是使用了Android系统。在此背景条件下,传统的基于Web的校园教务网的教学管理系统已经不能够完全满足师生的教学和学习需求,为此设计一款基于Android的校园学习助手软件已是时下具有广阔应用前景的发展必需。开发一款基于移动手机的校园助手软件是符合当前时代潮流的,借助该软件可以方便学生管理工作,快速实现学校教学最新成果的展示和教学方面重要通知的推送,更好地服务广大教师和学生。
  1 系统整体设计
  本系统采用了当前流行的2种软件系统结构—C/S(Client/Server)结构和B/S(Browser/Client)结构相混合的设计模式,根据用户的不同身份和对该校园软件系统的使用权限,学生和教师的Android手机客户端采用C/S结构模式,教学管理员的教学管理系统采用B/S结构模式。本文设计研发系统的功能模块架构则如图1所示。
  2 Android客户端功能模块的实现
  校园学习助手软件的Android客户端采用MVC(Model-View-Controller)的框架设计模式进行开发,MVC模式由模型、视图和控制器构成,这种模式使用户输入、数据模型和界面显示彼此分开,使软件项目中层与层之间的耦合度也随即降低,增强了系统的拓展性和模块的聚合度。
  Android界面有2种实现方式:使用java语言和使用XML文件[2],两种方式各有其特点。具体地,使用java语言创建界面时,所有的UI组件都将通过new关键字进行需求设计,而后使用LinearLayout容器来盛装这些UI组件,如此即形成了图形用户界面。使用XML布局文件来控制视图,整个过程简单、明了,而且可将应用视图逻辑从java代码中进行有效分离,同时送入XML文件中执行决策控制,从而更好地体现和展示MVC原则[3]。因此,该校园手机助手软件在大部分的界面设计上都采用了XML布局方式。
  此外,在校园手机助手的功能实现上充分利用了Android的4个基本组件,分别为Activity(活动)、Service(服务)、BroadcastReceiver(广播接收器)和ContentProvider(内容提供器),下面结合Android客户端的各个功能模块给出详尽的设计阐析。
  2.1登录功能模块
  登录系统具有确认用户个人信息的功能。在该校园管理系统中,系统管理员负责全局掌控登录该系统的用户的身份,使得只有本校的教师和在校学生才能成为该系统的合法用户。用户在手机客户端完成登录过程的操作,进入登录页面后按照客户端页面的提示,输入用户名和密码,通过验证的用户将会通过Intent跳转进入校园助手软件的主界面。部分实现代码如下:
  2.2客户端主页界面
  客户端主界面的上方为主页标题,紧随其后的是一个轮播图,可以轮换播映4张不同的图片,用于显示最新的校园新闻图片,用户点击任一图片就会进入相应的新闻页面,主页面的最下方中包含了4个部分,分别是:主页、工具、互动和个人信息。这4个部分对应4个不同的Fragment,依次可描述为FragmentIndex、FragmentTools、FragmentHuCommute和FragmentAbout,当用户点击不同的按钮图标时,无需跳转,直接就可在主页面上加载相应的功能模块。校园助手的主界面如图3所示。
  2.3失物招领模块
  失物招领模块在界面的设计上注重简洁性,在功能上注重实用性。从上到下的内容各自为标题、类型、发布者的电话、对物品的文字描述和上传物品的照片。上传照片的主要代码如下:
  用户点击上传图片的按钮后,可以选择用手机直接拍摄照片或者从相册中选取照片进行上传发布操作,点击发布按钮,程序跳转进入失物招领的信息列表页。
  2.4 新闻列表展示
  新闻列表页面主要是向校园师生展示发生在校园中的最新要闻资讯。当用户登录系统点击进入新闻列表模块时,会出现一个新闻下拉列表ListView,在该功能模块的设计中,使用ListView的item重用技术,在ListView未能进行上拉下拉等操作时,缓存存储连续有序的item,当前的layout已经保存可见的View,当用户根据需要,对视频列表滑动时,这时ListView发生变化,直接从缓存的View中抓取item提供给Adapter的getView()函数,获取相应的新闻标题以及发布时间和发布者的信息。使用ListView的item重用技术既节省了内存空间,又提高了浏览速度,而且进一步增强了用户体验。当用户点击相关新闻标题时,触发ListView的OnItemClickListener监听事件,通过Intent跳转进入新闻内容页面。跳转页
面的具体代码如下:  Android客户端在与服务器的数据交互中,其中的主线程并不会直接去访问网络,新闻列表页是通过GetDataTask类来建立网络连接,从而获取服务器的数据。特别地,GetDataTask类是异步任务类Asynctask的子类
  此外,Android客户端还有如下方面的一些其他功能,如个人信息管理,进入该模块后可以填写所在的年级专业和等个人信息;进入选择课程模块,可以根据个人的专业要求和兴趣爱好选择相应的课程;进入查看个人课程表,可以查看所选择课程的上课时间和上课地点,便于学生提早确认与准备;进入查询成绩模块,学生可以查看自己各门课程的考试成绩和学分等等。不仅如此,对于学校教师,则可以登录校园手机助手的教师功能模块对学生信息和选课情况进行掌握和管理,并可在考试结束后登录系统完成学生成绩的更新与录入。
  3 后台服务器的实现
  校园学习助手软件的后台服务器端使用JSP[4]技术推出网页版,后台管理员登陆后通过对相关页面的操作实现对学校、学院、专业、课程、学校教师和在校学生的有效管理。根据校园手机助手软件的需求分析可知,服务器端需要实现主要功能是对各个模块的信息增加、删除、修改和查询功能。由于系统对各个模块的操作代码性质相似,因此这里仅以对学生信息
的操作为例重点解析服务器端对数据的操作过程。
  3.1 添加学生信息
  通过该功能,可以添加学生的学号、身份证号、姓名、性别、头像、班级、电话号码和家庭住址等信息。设计实现代码如下:
  4 数据库的设计
  数据库的设计是软件系统开发的重要组成部分。虽然Android系统提供了内嵌的数据库SQLite,但由于手机的机身内存和外部SD卡的拓展内存的有限容量[5],而且,其与PC机相比,手机的性能仍多有不及,难以支撑大规模的数据处理。考虑到客户端和服务器的要求,本系统采用MySQL作为软件系统的后台数据库,用于执行和实现数据存储。
  虽然该系统的数据库中的各个数据表的字段属性和数据类型均有不同,功能和内容上也存在较大差异,但基本的设计思路和表的信息结构却是相似的,下面即以学生信息数据库表的设计过程为例可做如下概述说明。
  学生用户数据包括身份信息和学籍信息,学生的个人信息分析结果如图4所示。
  同理,可以得出课程信息、失物招领和新闻公告等模块的信息分析和关联数据库表的结构设计,限于篇幅,此处不再赘述。
  5结束语
  伴着Android系统的普及和智能手机软件的不断升级,本文设计和开发了基于Android平台的校园学习助手系统,为广大的校园师生提供了一个学习和交流的平台。通过该软件,用户可以更好地利用教学资源,提升了校园信息传递的时效性。