标题 | 原型法在“移动编程基础”课程教学中的应用研究 |
范文 | 邵国强 刘春 张百顺 李宏博 张丽华 摘 要:文章论述了“移动编程基础”课程的面临的主要问题,介绍了原型法的基本思想。以音乐播放器为例,展示了原型法在教学中的应用。以MediaPlayer对象为核心,结合文件访问、ListView控件、List列表、数据库访问和服务等知识,完成了一个功能比较完善的手机软件。该方法适合初学者,对类似的其他课程教学有一定的借鉴价值。 关键词:原型法;音乐播放器;数据库访问;服务 随着3G和4G移动网络技术走进千家万户,手机用户的快速发展,移动终端的市场需求占据了主导地位。目前主流的手机操作系统有:Android(谷歌)、iOS(苹果)、Windows phone(微软)、Symbian(诺基亚)、BlackBerry OS(黑莓)、Web OS、Windows mobile(微软)等。Android是一种以Linux为基础的开放源代码操作系统,以其开放、方便、快捷、实用、稳定、安全而受到广大用户和厂商的信赖和支持。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一[1]。因此,Android软件开发人员缺口也大幅攀升,如何培养合格的Android软件行业从业者成为高校计算机专业的一项重要课题。怎样快速教授学生Android的基础知识点,又能激发学生兴趣,引导学生自主学习,将所学知识融会贯通综合运用,是“移动编程基础”课程教师亟待解决的问题[2]。 1 原型法 软件开发的规范是分层模式。但是对于初学者,恰恰需要扁平式开发,将层次打开,首先构造一个原型,即从最基本的最核心功能开始,逐步展开和完善,最后扩展成一个功能完备的成型软件[3]。通过开门见山的方式,每一步看到一个效果,并且看到软件演变的过程。在功能驱动的方式下,掌握特定类的方法的使用,以及如何将所学综合运用。 2 应用案例 以音乐播放器为例,介绍如何运用原型法进行“移动编程基础”课程教学。 核心是MediaPlayer对象,音乐的播放、暂停、重置、停止都是通过其实现[4]。另外,结合文件访问获取音乐文件的名字,通过ListView显示文件列表,点击播放选中音乐,再升级为用Service播放音乐。 (1)准备工作,访问sdcard权限添加。 (2)准备工作,类成员变量定义: ImageButton LXT_IB_Last = null; //上一首歌曲按钮 ImageButton LXT_IB_Stop = null; //音乐停止按钮 ImageButton LXT_IB_Start = null; //开始播放按钮 ImageButton LXT_IB_Pause = null; //音乐暂停按钮 ImageButton LXT_IB_Next = null; //下一首歌曲按钮 MediaPlayer lxt_MediaPlayer = null; /* 创建MediaPlayer对象 */ List int lxt_current_position = 0; /* 设置当前播放歌曲的索引为0 */ String LXT_MUSIC_PATH = “/mnt/sdcard/”; /* 默認音乐路径为SD卡 */ (3)MediaPlayer对象的创建。 MediaPlayer lxt_MediaPlayer = new MediaPlayer(); (4)音乐的播放。 lxt_MediaPlayer.setDataSource(musicpath); lxt_MediaPlayer.prepare(); lxt_MediaPlayer.start(); (5)音乐的暂停。 lxt_MediaPlayer.pause(); (6)音乐的停止。 lxt_MediaPlayer.stop(); (7)音乐列表的创建。 /* 定义音乐名字列表 */ List /* 遍历SD卡,添加音乐名字到列表 */ public void lxt_musicList() { //将LXT_MUSIC_PATH目录下的音乐文件添加到播放列表 File l_root = new File(LXT_MUSIC_PATH); if (l_root.listFiles(new Lxt_MusicFilter()).length > 0) { for (File lxt_file : l_root.listFiles(new Lxt_MusicFilter())) { if(lxt_file.getName().endsWith(“.mp3”)) lxt_MusicList .add(lxt_file.getName()); } ArrayAdapter setListAdapter(lxt_adapter); } } /* 过滤文件类型 */ class Lxt_MusicFilter implements FilenameFilter { public boolean accept(File dir, String lxt_musicname) { //这里只过滤出.mp3音乐文件 return (lxt_musicname.endsWith(“.mp3”)); } } (8)列表项目选择。 @Override /* 当我们点击列表时,播放被点击的音乐 */ protected void onListItemClick(ListView l, View v, int position, long id) { lxt_current_position = position; lxt_playMusic(“/mnt/sdcard/” + lxt_MusicList .get(position)); } (9)上一首、下一首、第一首、最后一首的实现。 //下一首歌曲按钮的实现代码 LXT_IB_Next.setOnClickListener(new ImageButton.OnClickListener() { @Override public void onClick(View arg) { if (++lxt_current_position >= lxt_MusicList .size()) { lxt_current_position = 0; } else { lxt_playMusic(LXT_MUSIC_PATH + lxt_MusicList .get(lxt_current_position)); } } }); 第一首歌的核心代码: if (lxt_MusicList .size()>0) { lxt_current_position = 0; } 上一首、第一首、最后一首歌曲按钮的实现代码与下一首类似。 (10)下一首自动播放的实现。 lxt_mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { //代码与下一首歌核心代码相同 } }); 3 结语 原型法从某个应用的核心技术出发,构造一个基础模型,然后在其上进行扩充,这是软件开发的一种常见方法[5]。在教学中,单刀直入主题,学生可以快速掌握关键点,然后结合以前所学知识,形成一个知识群落,进而完成一个接近实际应用的软件。在层层外推的过程中,初学者更容易接受,效果也比直接将全部知识融合在一起更好。本教学方法适用于其他编程为主的基础课程;当然,对于已经有了基础的学生,先整体再局部的教学模式会更有效。 [参考文献] [1]余应淮.基于计算思维的移动编程课程教学改革初探[J].福建电脑,2018(8):65-66. [2]李亚飞,吕培,李亚军.探讨移动编程课程教学实践改革[J].计算机教育,2018(5):95-98. [3]杨捷.PLM系统二次开发项目中快速原型法的应用[J].电子技术与软件工程,2018(4):46. [4]杨丰盛.Android应用开发揭秘[M].北京:机械工业出版社,2013. [5]董元和,張行文.基于Axure的软件原型法的研究与应用[J].湖北师范大学学报(自然科学版),2017(12):15-19. |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。