基于Java EE和Android技术的手机课程建设
2018-01-17任宇舒晖
任宇+舒晖
摘 要
随着以手机为代表的智能移动终端以及高速移动网络不断发展,利用碎片化时间,进行移动教学已经越来越成为一种发展趋势。本文以《病原生物与免疫学》课程为例,探讨了使用Java EE以及Android技术架构开发手机课程的过程。
【关键词】移动学习 手机课程 Android开发
1 移动学习
国内高校通常依托校园网上建设了各类B/S数字化教学平台,拥有大量的网络课程和精品课程。但随着移动互联网的兴起,新的媒体介质和交互技术不断涌现,基于桌面互联网(校园网)的网络教学手段暴露出学习的时空界限仍然明显,没有很好地实现以学习者为中心以及师生/生生之间的交互能力不足等问题。
移动学习(e-Learning)是数字化学习在新的历史条件下的全新发展,是指学习者利用移动通信网络技术设备获取教育信息、教育资源和教育服务,并在适当的情境下通过移动技术实现教与学的丰富交互,随时随地进行的数字化学习形式。完成移动学习的介质多种多样,包括智能手机、平板电脑以及移动电脑等等。其中,由于手机的便携性以及普及性,基于智能手机的移动学习是一种比较典型的实现方式。本文将以装载Android平台的智能手机为例,介绍《病原生物与免疫学》手机课程的开发方法。
2 课程系统设计
2.1 整体设计
《病原生物与免疫学》手机课程系统分为前端以及后端两个组成部份:基于Android技术开发的前端客户端App展示系统,以及基于Java EE技术开发的后端管理及服务系统。前后端之间的通讯采用HTTP协议。前端调用后端API接口,获取后端返回的JSON或二进制流数据,按前端规定的展示格式向学习者展现;前端生成文字、语音评论通过后端API接口,上传至后端文件目录或数据库保存。
2.2 功能设计
《病原生物与免疫学》是基础医学的一门专业基础课,该课程由以下6个功能模块组成。
2.2.1 用户登陆模块
本课程用户限于校内,用户信息通过校内统一身份认证系统同步至本系统。用户可以使用校内统一的用户名和密码完成登陆过程,登陆完成后,用户即可以上传文本或语音评论;其它展示性内容无需登陆即可使用。
2.2.2 课程介绍
该模块属于引导性程序,主要介绍课程基本情况,教学团队组成情况,授课方式以及课程的参考资料,使学生初步了解课程的主要学习内容以及学习目标。
2.2.3 知识仓库
知识仓库是由离散化、碎片化的基础知识点组织起来的结构树。结构树深度达到6级,包括了2662个基础知识点,学习者可以通过结构树在本课程所涵盖的知识网络中进行快速漫游。基础知识点均为文本类型,绝大多数知识点字符数不超过300个,遵循了文献[2]对文本资源的体积大小要求。
2.2.4 电子课件
本课程包含15组教学PPT,为了减少资源体积,降低网络传输时间,遵循了文献[2]的资源处理要求,PPT按页被转换成934幅JPEG图片,方便学习者查看与下载。
2.2.5 PBL案例
PBL (Problem-Based-Learning)即“以问题为导向的学习”,是以问题为基础,学生为中心,教师为引导的小组讨论式教学。本课程收录了包括“包虫病-草原上游荡的幽灵”等7个PBL案例。
2.2.6 评论/回复
该模块主要为师生与生生互动提供支持与保证。该模块设计了文本与语音两类交互方式,师生/生生之间不但可以通过文字形式进行交互,还可以像“微信”一样,直接录入一段语音来寻求帮助。该模块不是一个独立的功能体,在知识仓库模块中,交互功能位于每一个基础知识点内部,用户可以对每一个知识点展开咨询;在每一个PBL案例教学中,用户可以随时对案例展示交互。
3 课程后端开发
课程后端是系统的支撑系统,通过HTTP协议为前端提供各功能模块的数据支持,同时也接收前端回传的文字/语音评论,保存并向前端完成重放。课程后端保存了课程的所有资源,包括课程介绍、知识仓库、电子课件、PBL案例等功能模块的数据内容。其中,课程介绍、知识仓库、PBL案例以及文本格式的评论/回复采用JSON格式向客户端返回,电子课件、评论/回复的语音内容采用二进制流格式向客户端返回。
3.1 开发/运行环境
Java EE(Java Platform,Enterprise Edition)是sun公司推出的企业级应用程序版本,提供了Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 2.0應用程序,本系统后端采用此技术架构。开发工具采用Eclipse Java EE IDE for Web Developers 4.6.1 作为开发/编译环境,JDK版本采用JAVA EE SDK 1.8,另外采用Tomcat 8.5.8作为web容器。
3.2 数据库设计
数据库系统采用MySql 5.1.30。数据库由7张数据表组成:用户信息表记录了老师和学生的基本信息以及登陆凭证,用户信息表由校内的统一身份认证系统定时同步,限定了访客的来源;知识仓库目录表定义了知识仓库的树型结构,使用此表可以在前端迭代出树状网络;知识点内容表定义了知识仓库树节点的具体内容,为图文混合排版HTML结构;电子课件表记录了由PPT幻灯片生成的JPEG图片的地址;门户表定义了课程介绍的HTML图文混排内容,也可以为其它提示性内容提供数据;PBL表定义了PBL案例教学的问题、案例;评论表定义了交互的内容,对于文本评论和回复,直接记录在数据库中,对于语音评论及回复,记录的是语音文件地址。endprint
3.3 开发框架选用
JAVA EE开发框架(Framework)指的是实现了某个应用领域通用完备功能(除去特殊应用的部分)的底层服务,使用框架的编程人员可以在一个通用功能已经实现的基础上开始具体的系统开发,可以加快应用系统的开发速度。本次系统开发主要使用到了:C3P0 JDBC连接池,用于数据连接的自动管理;BeanUtils,用于将数据封闭到Java Bean中;DbUtils,用于简化SQL查询与结果集处理;FastJSON,用于后端向前端生成JSON格式的响应数据;FileUpload,用于处理前端向后端提交的语音评论文件。
3.4 核心服务实现
前端与后端程序之间通过服务接口实现交互。服务接口采用标准HTTP协议方式调用,前端通过POST或GET方式向后端传递查询参数,后端生成JSON格式数据或二进制流后,向前端返回。下文描述了本次开发的主要服务接口。
User类:用户登陆管理类。主要用来完成用户登陆,使用JSON格式返回登陆用户的基础信息。
Common类:通用信息管理类。本类用来向客户端输出通用信息,现阶段主要用来输出课程介绍信息,可在后期扩展至其它通用信息调用处理。
ZTree类:知识仓库树管理类。本类处理树型结构节点的增加、插入、编辑与删除;输出JSON格式数组的全部或者部份树结构,前端可以根据数组的自迭代结构,生成树型知识仓库。本类还用来录入与输出各基础知识点的HTML内容,输出采用UTF-8纯文本编码格式,多媒体内容采用地址引用,多媒体文件存放于应用服务器空间。
PPT类:电子课件管理类。本类接受对电子课件的目录结构的请求,返回JSON格式数组。本类还对电子课件的内容进行管理,电子课件被转换成JPEG图片组,每张JPEG图片不超过200kb,前端通过此类获取特定JPEG图片组的文件系统位置以及图片索引范围。
PBL类:PBL教学案例管理类。本类接受对PBL教学案例的目录结构的请求,返回JSON格式数组。本类还用来响应对特定PBL案例的内容请求,返回HTML格式内容。
Commnet类:评论/回复管理类。此类接收前端上传的文本/语音评论;接受前端请求,返回特定基础知识点下的文本内容或语音评论地址。
4 课程前端开发
前端开发有Android原生开发,混合开发两种常见形式。原生开发可以访问手机的全部功能,运行速度快,性能高,能够提供最佳的用户体验,但原生开发也具有开发成本高,版本控制能力差等显著不足。混合开发是同时采用Android原生技术与HTML5技术的一种开发方式。混合开发的本质是运行在手机浏览器上的HTML页面,具有机型适配良好,系统升级快等优点。本系统前端采用混合开发的方式。
4.1 开发环境
本次前端开发环境采用Android studio 1.2。 Android Studio 是一个Android集成开发工具,基于IntelliJ IDEA. 类似 EclipseADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。为了对较旧的手机提供访问支持,使用的Minimum SDK为Android 4.0(API 14)。
4.2 核心功能实现
用户登陆与注销:在项目assest目录下建立login.html,要求用户输入用户名及密码,并通JavaScript异步服务接口,在服务器上校验。服务器返回JSON格式登陆结果后,如果登陆成功,则在HTML5页面上调用Android定义的方法,将用户重新引导至首页,如果校验失败,则提示用户,要求重新登陆。注销方法类似。
课程介绍/PBL展示:在MainActivity类中通过WebView控件调用本地main.html页面,该页面引用后端定义的课程介绍以及PBL服务接口,使用JavaScript异步获取相关HTML信息,并返回给用户。
知识结构树:用户点击菜单中的知识仓库后,WebView控件通过服务接口,异步获取第0级树节点,用户可以按需完成展开,树的深度最大为6级。知识结构树分为导航节点,带内容的导航节点以及叶子节点。导航节点没有内容,只下子结点,带内容的导航节点不仅有子节点,还带有知识内容,叶子节点只有知识点内容。
电子课件:每個电子课件被转换为JPEG图片组。用户点击菜单中的电子课件后,WebView控件通过服务接口,首先获取电子课件目录结构,并向用户展示。用户点击具体电子课件后,服务接口向前端返回相关图片索引范围以及图片物理地址,WebView控件迭代图片组,向用户展示。
评论与回复:在知识结构树的每一个基础知识点以及每一个PBL教学案例的内容以下,通过服务接口,异步获取该知识点或PBL案例的评论/回复JSON数组,并展示给用户。在评论/回复以下,建立multipart/form-data类型的Form表单,提供文字/语音评论功能。用户点击评论/回复后,向服务接口发出异步上传请求,后端服务执行请求,并将评论/回复重放给用户。
5 结束语
本文分析了数字化学习与移动学习的联系与区别,以《病原生物与免疫学》医学课程为例,确立了整个系统的功能设计与数据库设计,并通过Java EE以及Android技术架构,分别建立了系统后端支撑平台以及前端展示平台,演示了移动手机课程的完整建设流程。
参考文献
[1]郭绍青,黄建军,袁庆飞.国外移动学习应用发展综述[J].电化教育研究,2011(05):105-109.
[2]苏仰娜,李静,黄丹.移动学习资源开发现状及其设计原则探究[J].中国信息技术教育,2015(12):81-84.
[3]汪雪兰,朱小南,伍宇平等.中国式课堂PBL的实践与探索[J].中山大学学报论丛,27(03):13-16.
[4]百度百科.JAVA EE[EB/OL].https://baike.baidu.com/item/Java%20EE/2180381?fr=aladdin,2016-02-06.
[5]黄琰.基于智能手机的移动学习资源设计与开发[J].软件导刊,2016(08):99-101.
[6]李青.多终端自适应移动课程管理系统的设计与开发[J].现代教育技术,2011(10):14-19.
[7]王海峰,项冬冬,吴鹏.基于Android技术《Java程序设计》课程教学资源建设的研究与实践[J].福建电脑,2017(04):69-70+91.
作者单位
成都医学院现代教育技术中 四川省成都市 610500endprint