甘泉
【关键词】移动学习类软件;模拟钢琴;设计;开发
“移动学习”概念最早可追溯于2000年伯克利分校人机交互研究室启动的Mobile Education项目,随着时代不断发展,“移动学习”的概念也被深化。新时期下人们对移动学习的概念界定为:“个体借助于移动设备来获取个人知识技能或实现知识建构的信息。”在科学技术发展及大力支撑下,近年来移动学习类的软件层出不穷。从整体种类上看,主要涵盖外语学习类软件、阅读应用类软件、移动平台教学系统、操作技能学习类软件等。本次研究中探究的“模拟钢琴”便属于操作技能学习类软件,开启学习模式能提供真实的钢琴学习模拟环境,让学习者享受到弹奏乐趣。
图1 移动学习软件(仿真古筝)
关于移动学习类软件的特征,主要凸显在三方面。首先,形式的灵活性[1]。利用移动学习类软件后,能让学习者在任何地方(如步行中、汽车里、高铁上、宿舍内)学习,且能突破传统学习的时间限制,学习者可利用碎片时间等时段来学习,提升学习效率,让学习变得更为高效灵活。其次,应用的普及性。新时期背景下科技水平不断提升,移动学习类的软件设备也更丰富,形式多样且数量增多,为移动普及化教育奠定了扎实的基础。最后,满足个性化需求。传统的学习中大多以学校、班级为圈定的范围来开展教学,无法更好地满足学生个性化需求。利用移动学习软件后可提供个性化教育及服务,寻求最适合的学习路径。例如依托于移动学习类软件,便于用户定制学习计划来督促自身学习,还能实现线上沟通。
第一,适合原则。在设计移动性学习软件时要考虑到学习者的实际业务需求,并合理划分系统功能。通常可将该功能设计成划分为表现层、应用层、功能层、数据层等,结合移动学习软件的用户感知,确保所设计的软件适用性较好,能满足基本的学习需求[2]。第二,开发性原则。移动学习类软件中搭建出的移动云平台,有利于为有意愿学习的用户(及不同类型的教师)提供针对性的服务,因此设计及开发时要强调将该软件开发成具备多样性功能的平台,且让所有用户都能实现对学习资料的发布、共享,且经审核后也能及时检索学习材料,具备一定开发性。第三,人性化设计原则。移动类学习软件的设计及开发都是围绕用户的使用开展,以发挥出最大效用为目标。在设计时注意“以人为本”,考虑到不同学习群体对于移动学习软件的需求、体系设计标准、未来发展趋势等,秉承着以用户为中心的基础原则,保障能满足海量用户的需求,并快速对用户需求作出响应。第四,多样性原则。学习类软件中要提供大量的学习资源确保其多样性,如仿真项目、视频、音频、文本等来兼顾用户需求。第五,可拓展性原则。学习类软件的设计及开发要紧扣时代发展脉搏,不断更新资源,具备良好的可拓展性。
(一)Android系统框架
移動学习类软件要借助于移动学习客户端与学习者进行交互,因此学习者对于移动学习客户端的感知尤其重视。在当前智能手机市场中,Android操作系统占据重要地位,不仅具备良好的平台开放性,成本低,还能实现个性化APP设定,操作便捷。因此移动学习类软件在设计、开发上也可基于Android系统的大体框架内。将该系统框架设计成以下四个层级。(1)应用层。该层中,主要包括主屏、应用功能等。以“模拟钢琴”为例,应用功能包括弹奏、演示等;(2)框架层。该层级中包括了维护Android系统框架顺利运行的内容,如管理器、内容提供器、通知管理器、资源管理器、视图系统、窗口管理器等;(3)运行层;当移动学习类软件整体系统在运行时,需要由Libc、SGL、SSL等技术层作为支撑[3]。Android运行时需要核心库、Dalvik虚拟库加以保障。(4)Lmux内核层。该层级中包括各类驱动,如闪存驱动、音频驱动、电源管理、WIFI驱动等。上述多个层级共同搭建成为Android系统的框架,来为移动学习软件开发奠定基础。
(二)Android应用程序组件
对于移动学习软件的设计与开发而言,Android应用程序组件是基石所在。Android应用程序组件大多较为零散且互相联系,其中最主要的包含六个组件。第一,Activities(活动)。该组件属于移动学习类软件中Android应用程序的基础,属于显示层,Activity使用Views去构建UI后能显示信息[4]。第二,Service(服务)。该组件被称作是隐形的“工人”,主要负责进行数据源的更新、通知触发、会一直在移动学习软件系统的后台持续化运行,以维持其运作。第三,Content(内容)。该组件主要是为移动学习软件中的共享资源进行存储,形成管理的数据库,在应用程序的同时会发挥共享作用。第四,Intent(意图)。该组件负责简单地进行移动学习类软件信息的传达,整体架构简单。第五,Broadcast Receiver(广播接收器),该组件并不主动执行关于移动学习软件中的任何任务,其本质是接受性的组件,负责对广播通知进行接受和响应。第六,Notification(通知)。顾名思义,该组件存在的意义,是用于提醒使用移动学习类软件的用户。
(三)Android系统应用开发环境
移动学习类软件中Android系统的应用开发环境搭建,主要围绕两步骤:第一,windows下安装JDK,安装后需配置环境变量。第二,下载和安装Android SDK。下载ADTBundle,它包含两文件夹:eclipse和SDK,其中eclipse文件夹内是已安装了ADT插件的eclipse。SDK文件夹的内容较多,例如Add-ons、platforms、tools、AVD Manager.exe、SDK Manager等[5]。启动SDK Manager.exe下载所需平台和工具,Android文档,SDK Platform是必选的,如果想查看Android官方提供的示例程序,便勾选“Sample forSDK”和“Sources for Android SDK”。安装完成SDK文件夹目录后增设docs、extras、platform-tools、samples、sources等[6]。
(四)客户端架构设计
在移动学习类软件的客户端架构设计及开发中,主要围绕三大模块,分别为学习模块、信息模块、设置模块。该架构中学习者是客户端使用的主要用户对象,在设计客户端时要迎合用户的需求,合理设计板块。(1)学习模块。该模块主要的功能是用户的学习情况管理、学习测评及回收站等。学习管理,即用户学习的平台,结合用户情况提供多样化的学习资源,并附带可搜索的功能。学习评估是对用户学习情况进行的检验。(2)信息模块。主要包含学习资源(如用户学习的笔记、素材、音视频等,可利用云储存法保存便于随时查看)、学习日程(学习大致计划安排等)、个人小组(便于小组管理,进行用户学习监督)、即时信息(信息推送)、系统公告(发布电子公告等内容)等要点。(3)设置模块,该模块中用户可结合自身的情况进行个人基础信息的设定、修改。
(一)模拟钢琴界面实现
移动学习软件“模拟钢琴”包含两种不同应用模式,进入后均可在设备下方看到仿真的钢琴琴键(图2)。可根据不同模式来设计软件的界面。其一,普通模式。普通模式适用于钢琴学习爱好者,能展现出该软件的教育、娱乐、休闲功能。在该模式的界面设计上,包含4个区:(1)控件操作;点击该界面,会显示软件音量调节、播放、钢琴弹奏录音等功能,用户可按需求点击。(2)信息显示;(3)全琴键视图,显示钢琴全部琴键。但因不同终端设备的屏幕尺寸存在差异,无法完全显示所有琴键,但可通过调节显示。(4)模拟琴键,该界面显示了可滚动的模拟琴键,属于软件应用最主要的区域,用户在该区域弹奏。其二,学习模式。该模式常被用于初学钢琴者,旨在帮助用户掌握相关的乐理知识。学习模式的界面包含上述控件操作、信息显示、模拟琴键等区域,但全琴键视图被替换为乐谱显示。点击后用户能结合乐谱的指示弹奏钢琴曲,展现出了“模拟钢琴”的辅助教学及人机互动功能。
图2 仿真钢琴琴键
(二)数据采集及存取实现
“模拟钢琴”中的数据采集、存取也是该软件设计中不可缺少的部分[7]。针对现有技术的不足,可在“模拟钢琴”软件增加钢琴弹奏指法数据采集专用装置。音乐梦想北京科技公司于2017年6月申请了钢琴弹奏指法数据采集装置专利(申请号:CN201710444705.6),该装置包括信号发射模块、信号接收模块和中央处理模块;演奏中,通过多个模块能检测并记录哪个手指按下琴键、按下了哪个琴键及该琴键按下了多长时间;形成“指法数据流”。
(三)乐谱动态显示功能实现
诚如“模拟钢琴界面实现”这一小节所述,在移动学习类软件“模拟钢琴”的学习模式中,乐谱显示代替了普通模式中的全琴键视图。乐谱在钢琴学习中占据重要地位,它是作曲家记录感情、创设形象及表达情绪的重要载体,也是学习者(“模拟钢琴”用户)学习后再创作的依据。“模拟钢琴”软件中,利用文本控件来设计动态显示的乐谱,可实现乐谱的“跳动”,每次显示完两行乐谱后,会自动滚动出新的乐谱,便于学习者参考乐谱学习钢琴乐理知识。如图3,为《孤勇者》的动态乐谱。利用Android API--XmlResourceParser解析XML资源文件,能提取文件中的乐谱信息。学习者在利用“模拟钢琴”学习时,乐谱动态化显示有利于更好地激发学习者兴趣,学习者可通过进度条控件(Pro-gressBar)来进行进度的随意把控,实现了自主控制,提升钢琴的学习效率。
图3 歌曲《孤勇者》动态乐谱
(四)弹奏模拟钢琴程序的实现
学习者在使用“模拟钢琴”软件时,熟悉钢琴弹奏技巧是最基本的功能。在利用“模拟钢琴”这一移动学习类软件时,学习者可任意选择普通模式、学习模式等不同模式,均可进行演奏模拟。首先,它能为学习者提供仿真的钢琴界面,学习者通过触摸来选择功能和调节。其次,当用户用手指触摸某个模拟的琴键后,它会随之发出对应声响,当用户手指离开界面时,声音便同步停止。该程序主要基于“按钮触摸事件监听器”来实现,当学习者在按下或是抬起琴键上的手指后,会直接触发到监听器,并发出声音。为了让学习者在弹奏模拟的琴键时能更具备身临其境的逼真感,在设计开发程序中还可创设出更真实的视觉效果,利用丰富的样式来展现。例如发出声音时琴键像是“被按下”,而停止发生时,琴键便被弹起恢复原状,让学习者使用时更觉得真实有趣。
(五)调节琴键显示区域的实现
因使用“模拟钢琴”的设备尺寸有限,无法完全显示出全部的模拟琴键。但学习者可通过对全琴键视图用手指左右滑动,缩放等,实现琴键的调节,改变琴键显示的区域。同时还可发挥出全键盘视图的作用,便于学习者参考当前显示的琴键属于哪个区域,从而提升弹奏的质量。例如当学习者发现琴键属于中音区,但所弹奏的钢琴曲需要在低音区弹奏,那么用户选择视图上的滑块并向左拖动,在特定的低音区域内停止即可[8]。利用特定程序接口将其连接SeekBar控件的事件監听器,在学习者作出“滑动”的动作后,会触发到“模拟钢琴”软件中的监听器组件,并作出相应的输出。
综上所述,本次特以模拟钢琴为例,深入探究移动学习类软件的设计与开发。在设计及开发过程中要注重框架、应用程序、开发环境、客户端等要素,结合“模拟钢琴”的元素及特征,从钢琴界面、数据采集、乐谱显示、弹奏、琴键显示调节等方向进行设计,实现该移动学习软件的顺利设计及运用。在信息化、智能化的时代下,诸如“模拟钢琴”的移动学习类软件还具备新的发展空间,即此类软件在课堂的应用、操作技能领域能够实现扩充,还能介入虚拟现实技术(VR)实现创新,发展前景广阔。