当前位置:文档之家› Android报告

Android报告

Android报告
Android报告

目录

1绪论 (2)

2 Android项目介绍 (2)

2.1 Android的介绍 (2)

2.2 Android 基本框架 (3)

3音乐播放器设计 (4)

3.1播放器主界面的设计 (4)

3.2 Android媒体播放原理 (6)

3.3播放功能实现细节 (6)

4程序流程图及设计 (9)

4.1程序时序图与系统架构 (9)

5软件测试 (9)

5.1运行调试 (9)

6出错分析以及解决方案 (10)

7设计总结 (10)

参考文献 (10)

1绪论

本次课程设计主要是在Android系统上对音乐播放器应用程序的设计与实现进行讨论,通过这一过程来进一步学习Android平台,这样对个人未来发展有很大的意义。

从Android 1.0至今经历了多次的版本更新,其中重要的变更是1.5、2.O和2.2。而其他的版本更新相对而言并不是那么重要。另外,由于每次更新都会多少改动包括Dalvik 在内的底层模块,同时牵扯到SDK,导致了一些程序需要跟着Android版本进行变动。对于相对较为保守的开发人员而言,快速的版本更新将给他们带来越来越大的限制。在这种情况下,And roid开源的意义就显得不是那么大了。

无论如何,由于And roid与GoogIe服务的紧密捆绑,这款操作系统拥有了得天独厚的优势。通过GoogIe强有力的支持,很多事情在And roid上都会变得很简单。另外需要特别提出的是,And roid是一款基于互联网的操作系统,在可以连接上互联网的情况下,一款Android手机可以发挥出比其他手机更多的能力。而在没有网络的情况下,And roid手机并不比其他的手机出色,尤其是娱乐性相对于iPhone可以说是逊色不少。

本文的音乐播放器采用了Android开源系统技术,利用Java语言和Eclipse开发工具对播放器代码进行编写。同时给出了详细的系统设计过程、部分界面截图及主要的功能流程图,本文还对开发过程中遇到的问题和解决方法进行了详细的讨论,该音乐播放器集播放、暂停、停止、上一首、下一首、歌词显示等功能于一体,性能良好,在Android系统中能独立运行。对于播放歌曲的文件,本播放器只限于应用层程序的探讨,所以对具体的文件不做深入研究。

2 Android项目介绍

2.1 Android的介绍

Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux 平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。

Android是基于Linux内核的软件平台和操作系统,早期由Google开发(在华注册商标名为“安致”),后由开放手机联盟(Open Handset Alliance)开发。它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。低层以Linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。另外,为了推广此技术,Google和其他几十个手机公司建立开发手机联盟。Android 在未公开之前常被传闻为Google电话或gPhone。大多传闻认为Google开发的是自己的手

机电话产品,而不是一套软件平台。到了2010年1月,Google开始发表自家品牌手机电话的Nexus One。

2.2 Android 基本框架

其软件层次结构自上而下分为以下几个层次

应用程序(Application)

应用程序框架(Application Framework)

各种库(Libraries)和Android运行环境(RunTime)

操作系统层

Application

Application Android 会同一核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是用JAVA 编写的。

Application FrameWork

开发者完全可以访问核心应用程序所使用的API框架。该应用程序架构用来简化组件软件的重用;任何一个应用程序都可以发布它的功能块并且任何其他的应用程序都可以使用其所发布的功能块(不过的遵循框架的安全性限制)。该应用程序重用机制使得组件可以被用户替换。

所有的应用程序都由一系列的服务和系统组成,包括:

可扩展的视图(Views)可以用来建应用程序,包括列表(lists),网格(Grids),文本框(Text boxes),按钮(button),甚至包括另一个可嵌入的web浏览器。

内容管理器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人的数据库),或者共享它们自己的数据。

资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串,图形,和分层文件(Layout Files)。

通知管理器(Notification Manager)使得应用程序生可以在状态栏中显示客户通知信息。

活动类管理器(Activity Manager)用来管理应用程序生命周期并提供常用的导航回退功能。

Libraries库

Android包括一个被Android系统中各种不同组件所使用的C/C++库集。该库通过

Android应用程序框架为开发者提供服务。

Android Runtime

Android包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik是针对于同时高效地运行多个VMS来实现的。Dalvik虚拟机执行.dex的Dalvik可执行文件,该格式文件针对最小内存使用做了优化。该虚拟机是基于寄存器的,所有的类都经由JAVA汇编器编译,然后通过SDK中的dx工具转化成.dex格式由虚拟机执行。Dalvik 虚拟机依赖于linux的一些功能,比如线程机制和底层内存管理机制。

Linux内核

Android的核心系统服务依赖于Linux2.6内核,如安全性,内存管理,进程管理,网络协议和驱动模型。Linux内核也同时作为硬件和软件堆栈之间的硬件抽象层。

3音乐播放器设计

3.1播放器主界面的设计

主界面布局文件内容如下:

android:id="@+id/AbsoluteLayout01"

android:layout_width="wrap_content"

android:layout_height="fill_parent"

android:background="@drawable/backgrund"

android:sharedUserId="com.android.activitygrouptest"

>

此处的ListView作用为列出歌曲

android:id="@id/android:list"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:layout_weight="1"

android:drawSelectorOnTop="false"/>

此处的Button用于上一曲

此处的Button用于停止

此处的Button用于播放

此处Button用于暂停

此处的Button用于下一曲

android:id="@+id/next"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_x="250px"

android:layout_y="70px"

android:background="@drawable/next" >

主界面为:

图 3-1 播放器主界面

3.2 Android媒体播放原理

Android源程序已经为我们封装了一个接口类,叫MediaPlayer。该接口在执行前需要一个数据源,通过如下四个步骤:

第一步:MediaPlayer.reset();复位操作,为以后的媒体准备播放做准备。

第二步:传入歌曲数据源,这里也是一个数据源:MediaPlayer.setDataSource(String path);参数需要一个路径,该接口类在收到路径后将其转化为数据源。

第三步:准备播放数据源,调用MediaPlayer.prepare();

第四步:MediaPlayer.start();播放数据源,该数据源播放后,不再于程序有关,需要调用MediaPlayer.stop()方法让其停止或MediaPlayer.start();让其启动。

3.3播放功能实现细节

为了实现音乐播放器的基本功能:音乐播放、暂停、停止、上一首、下一首。这里我用事件监听:

//播放音乐

void playMusic(String path){

try {

myMediaPlayer.reset();

myMediaPlayer.setDataSource(path);

myMediaPlayer.prepare();

myMediaPlayer.start();

myMediaPlayer.setOnCompletionListener(new OnCompletionListener() { @Override

public void onCompletion(MediaPlayer mp) {

// TODO Auto-generated method stub

nextMusic();

}

});

} catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

}

}

//暂停

viewHolder.pause.setOnClickListener(new OnClickListener() { @Override

public void onClick(View v) {

// TODO Auto-generated method stub

if(myMediaPlayer.isPlaying()){

myMediaPlayer.pause();

}else{

myMediaPlayer.start();

}

}

});

//停止

viewHolder.stop.setOnClickListener(new OnClickListener() { @Override

public void onClick(View v) {

// TODO Auto-generated method stub

if(myMediaPlayer.isPlaying()){

myMediaPlayer.reset();

}

}

});

//播放上一首

https://www.doczj.com/doc/6310598389.html,st.setOnClickListener(new OnClickListener() { @Override

public void onClick(View v) {

// TODO Auto-generated method stub

lastMusic();

}

});

}

//下一首

viewHolder.next.setOnClickListener(new OnClickListener() { @Override

public void onClick(View v) {

// TODO Auto-generated method stub

nextMusic();

}

});

4程序流程图及设计

4.1程序时序图

图4-1 音乐播放器系统流程图

5软件测试

5.1运行调试

要运行或调试项目,可以使用快捷键Ctrl+F11(运行)或F11(调试)。如果没有事先启动模拟器,则会在这时候启动模拟器,模拟器启动之后,Eclipse会把编译好的apk文件上传并安装到模拟器中,同时发送信号启动该程序。

软件测试的性能要求

软硬件要求:系统环境 winXP;硬件系统环境 P4 2.4、1024MB内存、80G硬盘。系统运行时对数据的保密性要求不高对一般的数据不要求进行加密。此外,对其他软件几乎没有依赖性,程序健壮性较好。

测试

建立一张模拟的SD卡,上传歌曲文件;分别测试其的播放、暂停、停止、上一首和下一首的功能是否有用。

6出错分析以及解决方案

ViewHolder类中出现错误:

viewHolder.start=(Button)findViewById(R.id.start);

viewHolder.stop=(Button)findViewById(R.id.stop);

viewHolder.next=(Button)findViewById(R.id.next);

viewHolder.pause=(Button)findViewById(R.id.pause);

https://www.doczj.com/doc/6310598389.html,st=(Button)findViewById(https://www.doczj.com/doc/6310598389.html,st);

原因是没有生成ViewHolder类,只需将ViewHolder创建类即可。

ViewHolder类是将每一个项目中的控件封装起来的类,ViewHolder将start、stop、next、pause、last五个控件封装到ViewHolder之中。

7设计总结

通过这次课程设计我的总结如下:

学习一门新技术,最重要的是实践,只有多动手才能尽快掌握它。一个系统的开发,经验是最重要的,经验不足,就难免会有许多考虑不周之处。

这次只是简单地设计系统的界面,由于经验不足,我设计的图形界面比较简单。只是对基本功能进行了开发。

本次开发,我参考了很多本系统的例子,吸取了一些别的本系统的长处,对自己的课程设计进行了完善,但是还有很多的不足之处,有待以后进一步学习。

学习到ViewHolder类的应用,在开发中用到最多的是Activity。

参考文献

[1] 余志龙,陈昱勋.Google Android SDK开发范例大全(第二版)[M].人民邮电出版社.2010

[2] 王志超,王敏.基于Android平台的MP3播放器的分析与设计.[J].Forum论坛.2011.9

[3] 何晓杰. Android开发经验谈[J].移动开发大势图.2010.9

[4] Ed Burnette. Android 基础教程[ J ]. 人民邮电出版社.2010.8

[5] Google Android开发入门与实战

[6] Android开发者网站:https://www.doczj.com/doc/6310598389.html,

[7] Android中文网:https://www.doczj.com/doc/6310598389.html,

相关主题
文本预览
相关文档 最新文档