安卓音乐播放器软件设计说明书格式 (sya)
- 格式:doc
- 大小:644.75 KB
- 文档页数:26
目录1引言 (1)1.1编写目的 (1)1.2背景说明 (1)1.3定义 (1)1.4 参考资料 (2)2总体设计 (2)2.1需求规定 (2)2.2运行环境 (2)2.3基本设计概念和处理流程 (3)2.4结构设计 (5)2.4.1结构 (5)2.4.2功能需求与程序的关系 (6)2.4.3人工处理过程 (7)2.4.4尚未问决的问题 (7)2.5接口设计 (7)2.5.1用户接口 (7)2.5.2外部接口 (7)2.5.3内部接口 (7)2.6 其它专门要求 (7)3系统出错处理设计 (7)3.1出错信息 (7)3.2补救措施 (7)3.3. 系统维护设计 (8)4播放器主界面设计 (8)4.1程序描述 (8)4.2功能 (8)4.3算法 (9)4.5测试计划 (14)5音乐列表设计 (14)5.1 程序描述 (14)5.2功能 (14)5.3算法 (14)5.4注释设计 (15)5.5测试计划 (15)6扫描音乐设计 (16)6.1 程序描述 (16)6.2功能 (16)6.3算法 (16)6.4注释设计 (17)6.5测试计划 (17)7上一曲/下一曲设计 (18)7.1 程序描述 (18)7.2功能 (18)7.3算法 (18)7.4注释设计 (19)7.5测试计划 (19)8音乐播/放暂停设计 (20)8.1 程序描述 (20)8.2功能 (20)8.3算法 (20)8.4注释设计 (21)8.5测试计划 (21)9音量增加/减少设计 (22)9.1 程序描述 (22)9.2功能 (22)9.3算法 (22)9.5测试计划 (23)1引言1.1编写目的现在社会快速,繁重紧张,音乐欣赏可以使人放松,听音乐也可以提高人的情操。
本项目的目的是开发一款可以播放音乐文件的音乐播放器,并可以控制暂停,控制播放。
音量调节,关闭播放器等功能。
本软件适用于各种人。
随着见算计的广泛应用,手机市场的迅速发展,各种音频视频资源也在网上广为流传。
这些资源看似平常,但已经渐渐成为人们生火中不可缺少高的一部分了。
于是各种手机播放器也随着发展起来了,但是市面上的手机播放器的软件大部分是最求外观花哨,功能庞大。
这样虽然好但是对手机资源造成的很大的浪费,比如CPU,内存使用过高。
在用户需要多操作时受到不小的影响,带来了许多不便,许多功能上形同虚设!我认为术业有专攻,做音乐播放器,就要最好音乐部分。
针对以上弊端,选择开发界面简单模块化的,功能明确,方便实用,不占内存。
1.2背景说明说明:1.待开发的软件系统的名称:MY音乐2.任务提出者:中北大学软件学院3.开发者:杜晓阳4.用户:中北大学软件学院1.3定义Android SDK(S oftware D evelopment K it)软件开发工具包1.4 参考资料Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。
Android是基于Linux内核的软件平台和操作系统,早期由Google开发(在华注册商标名为“安致”),后由开放手机联盟(Open Handset Alliance)开发。
它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。
低层以Linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。
另外,为了推广此技术,Google和其它几十个手机公司建立了开放手机联盟。
Android在未公开之前常被传闻为Google 电话或gPhone。
大多传闻认为Google开发的是自己的手机电话产品,而不是一套软件平台。
到了2013年11月,Google开始发表自家品牌手机电话的Nexus One。
目前最新SDK版本为Android 4.4。
2总体设计2.1需求规定功能需求定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了用户的业务需求。
用户需求文档描述了用户使用产品必须要完成的任务。
针对音乐播放器分别对音乐播放、在线音乐播放及会员特权的换肤等功能进行详细的调研和分析,总结出如下的用户需求信息。
(1)界面美观简洁。
(2)运行方便,操作简单。
(3)经济适用,功能充实。
2.2运行环境2.2.1设备(1)支持Android 1.6版本以上的安卓系统手机。
(2)支持屏幕任何尺寸的安卓手机。
(3)支持安卓模拟器运行。
2.2.2支持软件(1)支持安卓操作系统软件。
(2)支持装有安卓模拟器的windows操作系统。
(3)支持安卓模拟器2.3基本设计概念和处理流程功能用例图如下图2-3 功能用例图表3-1 播放用例用例名称:播放参与者:用户目标:用户点击播放音乐列表中的歌曲前置条件:播放器正在运行基本事件流:1.用户单击列表中歌曲2.播放器将播放列表中的点击的歌曲表3-2 暂停用例用例名称:暂停参与者:用户目标:使得用户可以暂停正在播放的歌曲前置条件:歌曲正在播放且未停止和暂停基本事件流:1.用户单击“暂停”按钮2.播放器将暂停当前的歌曲表3-4 上一首/下一首用例用例名称:上一首/下一首参与者:用户目标:使得用户可以点播上一首或下一首音乐前置条件:歌曲正在播放或歌曲暂停中基本事件流:1.用户单击“上一首或下一首”按钮2.播放器将播放上一首歌曲或下一首歌曲表3-5 音乐列表用例用例名称:音乐列表参与者:用户目标:使得用户可以进入音乐列表前置条件:程序在运行基本事件流:1.用户单击“音乐”分区2.播放器进入音乐列表2.4结构设计2.4.1结构程序流程图如下图2-4-1 系统流程图表2-4-1 功能关系表功能类别子功能子功能音乐列表播放列表菜单退出播放关于音乐列表点击播放->进入播放界面播放界面播放播放歌曲->线程启动->时间更新暂停暂停歌曲->线程暂停->时间暂停初曲寻找音乐列表第一首歌曲终曲寻找音乐列表最后一首歌曲上一首寻找当前播放的上一ID歌曲下一首寻找当前播放下一ID歌曲主菜单退出程序程序退出关于版权信息1. 音乐模块需求在音乐模块中我们需要获取歌曲的名称和音乐的时间长度,获取完成后列表排列。
表2-4-2音乐列表用例用例名称:音乐列表参与者:用户目标:使得音乐列表显示歌曲名称,右边显示时间长度前置条件:播放器在主界面基本事件流:1.用户单击主界面上音乐模块2.音乐列表显示以音乐排列的列表2.4.2功能需求与程序的关系表2-4-2 功能关系表功能类别子功能子功能音乐列表播放列表菜单退出播放关于音乐列表点击播放->进入播放界面播放界面播放播放歌曲->线程启动->时间更新暂停暂停歌曲->线程暂停->时间暂停初曲寻找音乐列表第一首歌曲终曲寻找音乐列表最后一首歌曲上一首寻找当前播放的上一ID歌曲下一首寻找当前播放下一ID歌曲主菜单退出程序程序退出关于版权信息2.4.3尚未问决的问题功能不是很完善,不能实现歌词功能,文件必须是在SD卡中MYmusic文件下才能播放。
2.5接口设计2.5.1用户接口触摸结构,当用户触摸屏幕上的按钮,按钮就开始工作。
2.5.2外部接口(1)软件接口:操作系统:Windows xp 支持环境:Android 2.1版本开发环境:Eclipse 3.5 ADT 0.9(2)硬件接口:支持USB 2.0。
3系统出错处理设计3.1出错信息3.2补救措施说明故障出现后可能采取的变通措施,包括:1.程序运行停止:解决办法:重启应用2. 手机内存不足:解决办法:清理手机内存3. 找不到SD卡:解决办法:装载SD卡,重启4. 音乐不能播放:解决办法:将音乐文件放在指定文件夹中3.3. 系统维护设计为了系统维护的方便而在程序内部设计中作出了安排,本软件是音乐播放软件,与手机内存相关联。
在维护上只涉及到音乐跟新问题,还有主题界面的更换。
由于与手机内存相关联,所以在维护上不必花费太多资源。
4音乐播放器主界面功能实现4.1程序描述设计程序主界面,增加主界面的美观,以及和用户之间的交互性。
通过UI设计UML文件设计,使用控件布局,代码相结合。
完美设计出主界面。
4.2功能主界面明确了当,直接的显示出可操作的按钮。
让用户更加简单,使用本软件。
4.3算法界面如下:图5-3-1 主界面Uml 布局代码如下<?xml version="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"android:gravity="fill"android:background="#000000"><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="horizontal"android:layout_weight="80"><ListViewandroid:id="@+id/list"android:layout_width="fill_parent"android:layout_height="fill_parent"android:background="#E61344"android:layout_weight="25"android:layout_marginBottom="2dp"></ListView><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"android:layout_weight="75"><Buttonandroid:id="@+id/liebiao1"android:layout_width="fill_parent"android:layout_height="fill_parent"android:layout_weight="1"android:background="@drawable/liebiao"android:layout_marginLeft="2dp"android:layout_marginBottom="2dp"/><Buttonandroid:id="@+id/zengyin1"android:layout_width="fill_parent"android:layout_height="fill_parent"android:layout_weight="1"android:background="@drawable/jiayin"android:layout_marginLeft="2dp"android:layout_marginBottom="2dp"/><Buttonandroid:id="@+id/jianyin1"android:layout_width="fill_parent"android:layout_height="fill_parent"android:layout_weight="1"android:background="@drawable/jianyin"android:layout_marginLeft="2dp"android:layout_marginBottom="2dp"/><Buttonandroid:id="@+id/guanji"android:layout_width="fill_parent"android:layout_height="fill_parent"android:layout_weight="1"android:background="@drawable/guanji"android:layout_marginLeft="2dp"android:layout_marginBottom="2dp"/> </LinearLayout></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_weight="5"><Buttonandroid:id="@+id/bofang"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:background="@drawable/bofang"android:layout_marginRight="1dp"android:layout_marginBottom="2dp"/><Buttonandroid:id="@+id/zanting"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:background="@drawable/zanting"android:layout_marginLeft="1dp"android:layout_marginBottom="2dp"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_weight="5"><Buttonandroid:id="@+id/shangyiqu"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:background="@drawable/shangyiqu"android:layout_marginRight="1dp"/><Buttonandroid:id="@+id/xiayiqu"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:background="@drawable/xiyishou"android:layout_marginLeft="1dp"/></LinearLayout></LinearLayout></LinearLayout>Java代码如下protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.main3);}4.4注释设计1.加在模块首部的注释::主界面的设计2.加在各分枝点处的注释:增音控件按钮,减音按钮,下一曲按钮,上一曲按钮,播放暂停按钮。