原型法在“移动编程基础”课程教学中的应用研究

2019-05-24 14:21邵国强刘春张百顺李宏博张丽华
无线互联科技 2019年2期
关键词:服务

邵国强 刘春 张百顺 李宏博 张丽华

摘 要:文章论述了“移动编程基础”课程的面临的主要问题,介绍了原型法的基本思想。以音乐播放器为例,展示了原型法在教学中的应用。以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 lxt_MusicList = new ArrayList(); /* 音乐名字列表 */

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 lxt_MusicList = new ArrayList();

/* 遍历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 lxt_adapter = new ArrayAdapter(Activity_lxt.this,R.layout.musicitem_lxt, lxt_MusicList );

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.

猜你喜欢
服务
自助取卡服务
服务在身边 健康每一天
服务在身边 健康每一天
服务在身边 健康每一天
服务在身边 健康每一天
服务在身边 健康每一天
服务在身边 健康每一天
服务在身边 健康每一天
高等教育为谁服务:演变与启示
签约服务 期待内有激励外有支撑