Android平台下移动学习系统的设计与实现
2016-10-17李彬赵连军刘帅
李彬,赵连军,刘帅
(山东理工大学计算机学院,淄博 255049)
Android平台下移动学习系统的设计与实现
李彬,赵连军,刘帅
(山东理工大学计算机学院,淄博255049)
0 引言
Google在2007年发布Android手机操作系统,因其开放源代码,受到广大智能手机厂商的欢迎,也在广大开发者和用户群体中得到广泛使用[1]。Android系统功能十分强大,而且十分高效、稳定。
智能手机已经在广大青少年学生中普及开来,几乎每个人的手中都有一部手机,很多人每天都将大部分时间花在使用手机上,智能手机的广泛使用也改变了学生的生活和学习方式[2]。随着移动通信与教育的有效结合,其在当代教育领域中发挥的作用也将越来越大[3]。由于传统的教育和学习方式已经越来越不适应社会的快速发展和人们对于科学文化知识的需求,越来越多的机构和个人投入到移动学习的研究当中,移动学习已经成为了一种新型的教育方式。根据某教育咨询公司的市场调查和需求分析,本文推出一款Android平台下的移动学习软件,希望能解决传统学习模式受到各种学习资源限制的弊端,提高学生学习的积极性。
1 系统结构设计
该移动学习系统使用当前最流行的Java编程语言实现系统的设计,编译工具为JDK1.8。使用Android Studio 1.5.1开发工具进行手机客户端的开发,使用E-clipse进行服务器端的设计,数据库使用MySQL。本系统的功能结构如图1所示:
图1 系统结构
手机客户端学习系统通过发送HTTP网络连接请求到后台服务器端,后台服务器程序访问MySQL数据库,获取需要的数据返回给客户端。客户端通过服务器这个媒介和数据库进行相互通信。
2 Android客户端的实现
客户端学习系统运行于装有Android系统的智能手机上,使用xUtils框架设计,xUtils源于Afinal框架,由于对Afina进行了大量重构,xUtil集成了更多的实用工具,功能更加强大,xUtilsd的DbUtils模块支持事务,默认关闭,可通过注解自定义表名,列名,外键,唯一性约束,NOT NULL约束,CHECK约束等;xUtils的ViewUtils模块使用了Android中的IoC框架,完全注解方式就可以进行UI绑定和事件绑定;HttpUtils模块支持同步、异步方式请求,支持GET、POST、PUT、MOVE、COPY、DELETE和HEAD请求;BitmapUtils模块加载bitmap的时候无需考虑bitmap加载过程中出现oom和Android容器快速滑动时候出现的图片错位现象,可配置线程加载线程数量,缓存大小,缓存路径。客户端系统有3个基本模块。包括视频播放模块、好友聊天模块和个人中心模块,这3个模块虽然不同,但在功能上相辅相成,各个模块下面有不同子功能的划分。其功能模块如图2所示:
图2 客户端学习系统功能模块
在Android客户端程序中,每个用户操作界面为一个Activity,在Activity中使用各种组件来构建界面[4]。在该软件的设计中,为了实现用户与界面的友好交互,根据界面中所需控件的不同和界面的美观,大部分界面设计使用了相对布局(RelativeLayout),其余界面的设计分别使用了线性布局(LinearLayout)、帧布局(FrameLayout)和表格布局(TableLayout)等不同的布局方式,有些复杂的界面在设计时采用了不同布局的嵌套。该移动学习软件有3个不同的功能模块,在代码实现上,分别为频播放模块、好友聊天模块和个人中心模块设计了3个不同的Fragment模块,即Fragment1_Video、Fragment2_Communication、Fragment3_Qz,当用户点击不同的按钮图标时,无需跳转,直接在主界面上加载该功能模块。当用户进入不同模块的子功能时,程序使用Android中常用的Intent方式跳转到目标Activity中。各功能模块的具体实现如下:
(1)视频播放模块
视频播放模块将客户端从数据库中获取到的视频展示在该模块中,该模块下面有视频点播、视频分类、关键字搜索视频、评论视频等功能,所对应的Activity分别为VideoPlayAty、VideoCardMore、SearchActivity和VideoComment等。
当用户登录系统点击进入视频播放模块时,会出现一个视频下拉列表ListView,在该软件的设计中,使用ListView的item重用技术,在ListView未被进行上拉下拉等操作时,缓存存储连续有序的item,当前的layout已经保存可见的View,当用户根据需要,对视频列表滑动时,这时ListView发生变化,直接从缓存的View中获取item提供给Adapter的getView()函数,获取相应视频的图片,使用ListView的item重用技术既节省了内存空间,又提高了浏览速度,增强了用户体验度。当用户点击相关视频时,触发ListView的OnItem-ClickListener监听事件,该事件调用程序中自定义了一个F1_VideoPlayAty.class类对选中的视频进行播放(play)操作,其中的play()实现代码如下:
//如果视频没有正在播放
//判断是否是ListView列表中的第一个视频
用户也可以在搜索框vSearchContent中输入关键字去搜索感兴趣的视频进行学习,实现代码如下:
//如果搜索框中的字符串信息不为空
把企业之间发生的经济往来作为财务会计与管理会计融合的重要依据,这就要求二者把与企业有关的信息搜集整理,并做好记录,这是财务会计与管理会计要核算的内容,也是本企业曾经和未来的资金流动情况。从核算内容的角度上看,二者存在交叉点,所使用的原始信息的来源相同。但在信息归集的具体操作上稍有区别,同时在这个过程中也会持不同的观点和看法。实践证明,如果管理会计的信息来源建立在财务会计的数据基础上,将会提升管理效率。因此,企业的决策层在作出具体决策时,必须把财务会计与管理会计的相关信息融合在一起,从整体和局部分析数据信息,结合企业的实际情况作出与未来发展规划相适应的决策。
此外,视频分类功能根据不同的年级和学科对视频进行了分类整理,使用户更为方便的找到相关的学习资源,当用户选择了年级和学科,并按确定键点击后,程序会调用编写好的视频搜索算法进行查找,查找完毕后将搜索到的相关视频显示到手机界面,用户可以点击相关视频进行观看。用户在观看视频时可以对感兴趣的视频进行点赞、收藏、分享、下载和发表评论等操作。
(2)好友聊天模块
好友聊天模块下面有添加好友、好友列表、好友消息,所对应的Activity为AddFriendActivity、ListFriendActivity和ChatActivity。
在该功能模块的设计中,在项目的libs文件夹下导入了添加通讯云的gotyeapi.jar工具包,快速实现了软件中使用文字、图片和发送语音聊天,还可调用相机拍照并发送给好友,经过测试,系统的稳定情况很好。发送语音聊天代码如下:
如果用户还没有好友或者好友数量较少,可以通过搜索用户名发送好友添加请求,若对方同意则对方的用户名将会显示在好友列表中,双方可以实现发送消息进行交流,用户可以设置消息提示音、消息震动以及设置聊天信息的销毁时间。
(3)个人中心模块
个人中心模块下面有我的点赞、我的下载和空间动态等功能,对应的Activity为AppreciateActivity、DownloadActivity和KongjianActivity。
用户可以查看自己点过赞的视频和下载过的视频,下载过的视频已经保存到用户的手机内存中,无需联网即可进行播放,当用户想观看下载过的视频时,程序取出本地数据库中视频的nid,调用自定义的视频播放类F1_VideoPlayAty.class播放视频,具体代码如下:
3 服务器的实现
服务器端完成客户端与数据库的信息交互,起到中介作用。服务器管理系统采用Java语言实现,使用了JBOSS提供的Netty框架,简化和流线化了网络应用的编程开发过程,有利于系统的扩展和跨平台应用。服务器管理系统的功能如图3。
服务器的启动代码:
图3 服务器功能模块
服务器端负责处理客户端发送来的请求,客户端利用Android集成的Apache的Http Client模块,使用HttpURLConnection访问网络。根据功能的不同,Android客户端将不同的参数传递给服务器,该软件的服务器端程序中使用的大量自定义的Handler类来处理客户端发送来的请求,服务器根据接收到的参数调用MySQL数据库中的数据,并以JSON格式返回给客户端,Android客户端接收到数据后会对JSON数据进行格式解析,将解析出的数据通过客户端的界面显示给用户[5]。系统管理者还可通过服务器端主动向客户端发送通知,在客户端设计了SystemNotification类用于接受服务器发送来的消息,并将消息内容显示到手机界面上。
4 功能展示和性能测试
用户通过手机号码注册该移动学习系统,设置密码,再次登录时凭手机号和登录密码登录系统。用户进入该系统后,可以查看所有功能模块并使用相关功能进行课程学习、好友交流和发表空间动态。该软件系统通过Android系统测试平台的测试,在虚拟机和多款不同品牌的Android手机上均实现了稳定流畅的运行。系统运行的效果如图4所示:
图4 系统运行效果图
5 结语
随着Android系统的崛起和智能手机软件的不断推陈出新,本文设计和开发了基于Android平台的移动学习系统,为众多Android用户提供了一个学习和交流的平台。通过该软件,用户可以更好地利用零散的时间,随时随地学习感兴趣的内容,并且可以和好友交流信息,还可以进入个人中心发表看法,提高了学习的积极性和效率。当然,该移动学习系统还有不足之处,由于自身理论知识,在细节设计方面还有需要进一步完善的地方,在应用推广的过程中,要根据用户的需求反馈,不断更新其功能。
[1]郭宏志.Android应用开发详解[M].北京:电子工业出版社,2010.
[2]曾惠霞,黄志伟.基于Android的自主学习软件的研究与实现[J].价值工程,2014(29):230-231
[3]刘承焜.促进大学生自主学习的教学模式研究[J].中国高等教育,2011(17):58-59.
[4]勒岩,姚尚郎.Google Android开发入门与实战[M].北京:人民邮电出版社,2006:57-135
[5]万明,李娟娟.基于Android的社区信息管理管理系统的设计与实现[J].电脑知识与技术,2014,10(3):561-563
赵连军,男,山东淄博人,博士,副教授,研究方向为企业信息化工程技术
刘帅(1989-),男,山东潍坊人,硕士研究生,研究方向为图像处理
Android;Mobile Learning;Intelligent Mobile Phone
Design and Implement of Mobile Learning System Based on Android Platform
LI Bin,ZHAO Lian-jun,LIU Shuai
(School of Computer Science,Shandong University of Technology,Zibo 255049)
1007-1423(2016)22-0078-05DOI:10.3969/j.issn.1007-1423.2016.22.017
李彬(1989-),男,山东济宁人,硕士研究生,研究方向为计算机信息化
2016-05-31
2016-07-26
近年来,随着Android系统的崛起,智能手机迅速普及,已成为人们生活中的不可或缺的产品,基于智能手机的学习软件需求量迅速增加。针对目前的需求现状,设计一款基于Android平台的学习和相互交流信息的软件,该软件实现了播放课程视频、下载视频、好友聊天、发表动态等功能。通过该软件,用户可以随时随地利用时间进行学习和交流。
Android;移动学习;智能手机
In recent years,with the rise of Android system,the intelligent mobile phone is popular in people,and it has become an indispensable part of people's life,the demanded quantity of learning software which is based on mobile phone devices increases rapidly.Aiming at current demand situation,designs a learning and exchanging information software which is based on Android platform,realizes the functions such as playing videos,downloading videos,communicating with friends and publishing dynamics,etc.Through the software,users can study and communicate with friends at any time.