毕业论文基于Android系统音乐播放掌上音乐宝设计40907.doc
西安文理学院机械电子工程系本科毕业设计(论文) 题 目 个人通讯录 专业班级 机械设计制造及自动化 学 号 08104100112 学生姓名 刘桂苓 指导教师 王保全 设计所在单位 西安软件服务外包学院 年 月个人通讯录摘要: 随着科技的快速发展,手机的功能也得到了不断的丰富,如今的手机的不在只是拥有打电话、发短信的功能,它具备了很多的功能,比如播放音乐,因此一款好的手机音乐播放器必定受到人们的欢迎。本文主要是基于Android系统上的款音乐播放器应用程序的设计。Android是一个开源的系统,它底层是基于Linux的操作系统,本论文的音乐播放器采用了Android开源系统技术,利用Java语言和Eclipse编辑工具对播放器进行编写,并且用到了Myeclipse和MySQL,可以实现连接数据库得到歌曲URL地址,从而实现音乐的在线下载功能。同时给出了详细的系统设计过程、部分界面图及主要功能运行流程图,本文还对高度过程中遇到的问题和解决方法进行了详细的讨论,该音乐播放器集播放、暂停、停止、上一首、下一首、在线下载等功能于一体,性能良好,在Android系统中能独立运行。 关键词:Android ; 个人通讯录The system based on the Android music pocket music treasureAbstract:With the rapid development of science and technology, the function of the mobile phone has been continuously enriched, today's mobile phone is not only has the call, send text messages function, it has many functions, such as playing music, so a good mobile phone music player will be welcomed by the people. This article is mainly based on Android music player application design. Android is an open source system, its bottom is based on the Linux operating system, this paper adopts Android open source music player system technology, the use of Java language and Eclipse editing tools for the player to write, and use the Myeclipse and MySQL, can connect the database to get URL address, thereby realizing the online music download. At the same time is given in detail the system design process, interface diagram and main function flow chart, the height of problems encountered in the process and solving methods are discussed in detail, the music player play, pause, stop, a song, a song, music online download and other functions in one, performance good, in the Android system can run independently.Key words:Android 、Open source system 、linux 、Music Player第一章 绪论11.1 选题的目的与意义11.2 音乐播放器的发展趋势11.3 本课题主要讨论问题2第二章 Android音乐播放器的原理22.1音乐播放器的基本模块22.1.1本地音乐模块32.1.2在线下载模块72.1.2数据库模块82.2音乐播放器的实现原理92.2.1Mediaplayer 介绍92.2.2Mediaplayer 的生命周期92.2.3音乐播放器的实现过程102.2.4音乐播放器流程图112.3 音乐播放器的界面需求122.4 音乐播放器的性能要求122.5 运行环境需求12第三章 数据库的具体实现过程123.1 数据库简介123.2数据库中的安装过程133.2.1MySQL Server安装主要安装过程133.2.2 MySQL -Front安装过程173.2.3 表的结构203.3 对MySQL据库进行增删改查的程序代码203.3.1向MySQL数据库增加数据203.3.2删除MySQL数据库中的数据203.3.2更新MySQL数据库中的数据213.3.2查询MySQL数据库中的数据21第四章 Android项目介绍224.1 什么是Android?224.1.1 Android简介224.1.2 Android Features特性224.1.3 Android基本框架(Android Architecture)234.1.4 Android系统的四大组件254.2 搭建Android开发环境294.3 Android常用工具的使用314.3.1 命令行的使用314.3.2 Dalvik Debug Monitor Service (DDMS)的使用324.4 Android 音乐播放器的工程334.4.1 Android项目334.4.2 Android工程程序结构344.4.3 AndroidManifest.xml文件37第五章 音乐播放器的详细功能设计405.1音乐播放器的界面405.1.1音乐播放器的欢迎界面405.1.2 音乐播放器的本地音乐播放界面415.1.3音乐播放器的连接数据库界面415.1.4音乐播放器在线下载界面425.2音乐播放器各个界面功能介绍425.2.1音乐播放器欢迎界面功能425.3音乐播放器各个界面功能实现代码435.3.1音乐播放器欢迎界面实现代码435.3.1音乐播放器本地音乐界面实现代码435.3.1音乐播放器连接数据库界面实现代码475.3.1音乐播放器在线下载界面实现代码49第六章 绪论51结束语52参考文献53第一章 绪论1.1 选题的目的与意义 随着科技的进步,手机的功能也不断的得到丰富,从最早的“大哥大”到现在的商务PDA手机,智能手机,音乐手机等等,功能也从单纯的打电话发展到了发短信,听歌,上网.手机和我们生活的联系越来越紧密,手机的功能也是很多人们关注的焦点。 目前手机的音乐播放功能已经是大家比较关注的一个部分了,不少在人在购买手机的时候都会关心手机的音乐播放的能力,这也足以看出目前大家对音乐播放功能的重视,所以一款性能良好的手机音乐播放器软件一定会受到欢迎。和传统的音乐播放器相比,手机播放音乐更加的容易携带,其他方面也都不输于传统音乐播放器,而且还具有网上听音乐功能,所以开发一款受欢迎的手机音乐播放软件是具有良好的市场和应用前景的。 一款专业的音乐播放软件是手机中必不可少的要素,几乎市场上所有的手机都拥有一个自带的音乐播放软件,通过软件可以对音乐欣赏中一些必要的元素进行人性化的设置,同时在操作的时候也能得到一定的便利,但是不能满足用户的所有要求,所以网上就出现了各种各样的手机音乐播放软件,来满足不同用户的不同要求。不同手机平台的手机,所支持的音乐播放软件也是各不相同,而现在最流行的手机平台就是google的android手机平台,所以本课题就致力于开发出一款基于android手机平台的音乐播放器,来满足用户的使用需求。1.2 音乐播放器的发展趋势 首先简单的介绍一下Android 。Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备。目前尚未有统一中文名称,中国大陆地区较多人使用安卓(非官方)或安致(官方)。Android操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。Android的主要竞争对手是苹果公司的iOS以及RIM的Blackberry OS。2007年11月,Googel宣布推出基于Linux的Android开放式手机操作系统,沿袭至今,已发展到4.0版本。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2011年11月数据,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为58%。 现在大多数的手机都采用了Android系统,生活中人们经常会拿手机听音乐以舒缓压力,因此基于Android系统的音乐播器必定会受到人们的欢迎。本课题的目的是开发一个可以播放主流音乐文件格式的播放器,实现的主要功能是播放Mp3,Wav多种格式的音乐文件,并且能够控制播放,暂停,停止,上一曲,下一曲,歌曲快进,视觉外观,播放列表和歌曲文件的管理操作等多种播放控制功能,界面简明,操作简单。使Android手机拥有个性的多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐的旋律之中。使人们的生活更加多样化。1.3 本课题主要讨论问题本文的主要研究内容包括以下几个方面:l 查找相关书籍与文献,了解Android的构架并搭建Android平台。l 查找相关资料,现阶段基于Android平台手机音乐播放器发展现状以及相关功能。l 在上述基础上,提出所要做的手机播放器的相关功能如:播放本地歌曲,在线下载,播放列表,歌曲快进等。l 在Android平台上完成该课题的软件并进行相应的软件测试。第二章 Android音乐播放器的原理2.1音乐播放器的基本模块 该音乐播放器分为分为三大基本模块: 1:本地播放音乐模块; 2:在线下载模块; 3:MySql数据库模块; 图2.1 播放器基本模块2.1.1本地音乐模块 本地音乐模块的基本功能有:读取SD卡音乐歌曲,显示歌曲列表,音乐歌曲的播放、暂停、停止、上一首、下一首、歌曲进度条、歌曲当前播放时间、歌曲总时间、当前播放歌曲名称。 图2.2 本地音乐模块功能图用例名称:播放参与者:用户目标:使得用户可以播放在播放列表中选中的歌曲前置条件:播放器正在运行基本事件流:1.用户单击“播放”按钮 2.播放器将播放列表中的当前的歌曲用例名称:暂停参与者:用户目标:使得用户可以暂停正在播放的歌曲前置条件:歌曲正在播放且未停止和暂停基本事件流:1.用户单击“暂停”按钮 2.播放器将暂停当前的歌曲用例名称:停止参与者:用户目标:使得用户可以停止正在播放的歌曲前置条件:歌曲正在播放或暂停基本事件流:1.用户单击“停止”按钮 2.播放器将停止当前播放的歌曲用例名称:上一首/下一首参与者:用户目标:使得用户可以听上一首或下一首歌曲前置条件:歌曲正在播放或暂停基本事件流:1.用户单击“上一首或下一首”按钮 2.播放器将播放上一首或下一首歌曲用例名称:歌曲列表参与者:用户目标:使得用户可以进入播放清单前置条件:程序在运行基本事件流:1.用户单击“点击查看音乐列表”按钮 2. 用户点击点击选择歌曲 3.用户点击音乐列表中的取消后歌曲列表隐藏用例名称:进度条参与者:用户目标:使得用户可以快进当前播放的歌曲前置条件:歌曲正在播放或暂停基本事件流:用户拖动进度调后实现歌曲快进用例名称:当前播放歌曲时间显示参与者:用户目标:使得用户可以看到当前播放歌曲的时间前置条件:歌曲正在播放基本事件流:系统自动显示当前歌曲播放时间用例名称:当前播放歌曲总时间显示参与者:用户目标:使得用户可以看到当前播放歌曲的总时间前置条件:歌曲正在播放基本事件流:系统自动显示当前歌曲播放的总时间用例名称:连接数据库参与者:用户目标:使得用户可以连接MySQL数据库后获得URL地址并列表形式显示出来前置条件:服务器端开启基本事件流:点击在线下载连接数据库用例名称:在线下载参与者:用户目标:使得用户可以获得音乐歌曲URL地址后可以进行在线下载前置条件:获得数据库的音乐歌曲URL地址后基本事件流:点击在线下载按钮进行下载用例名称:退出参与者:用户目标:使得用户可以点击手机的返回键后可以突出播放器界面前置条件:程序正运行在基本事件流:点击手机的返回键退出2.1.2在线下载模块 在线下载模块的主要功能是获得数据库中的音乐歌曲的URL地址后,可以实现在线下载的功能。在该模块中,可以显示当前正在下载的音乐歌曲的URL地址,用户可以自定义下载歌曲的名字,用户可以控制下载开始。当用户点击下载后,系统会以对话框的形式提醒用户“歌曲下载中”。并且在该模块中会自动显示SD卡已有的歌曲列表。 图2.2 在线下载模块功能示意图2.1.2数据库模块在数据库模块中用到了Myeclipse和MySQL数据库。在Myeclipse端创建了一个名为Netmusic的Web工程,通过编写代码是实现了对MySQL数据库的增删改查功能。Android可以通过连接服务器实现对MySQL数据库的访问。 图2.3 数据库模块功能示意图2.2音乐播放器的实现原理2.2.1Mediaplayer 介绍 MediaPlayer 类可以用来播放音频、视频和流媒体,Android的MediaPlayer包含了Audio和video的播放功能,在Android的界面上,Music和Video两个应用程序都是调用MediaPlayer实现的。 2.2.2Mediaplayer 的生命周期图2.4 Mediaplayer 的生命周期 MediaPlayer类在播放之前要首先进入Prepared状态,有两种方法可以到达Prepared状态(异步方法和同步方法)。 一旦调用prepare()方法,MediaPlayer类就进入Prepared状态,调用prepareAsync()方法,直到处于休息状态内部播放组件完成准备工作之前类一直处于Preparing状态。当准备工作完成或者调用prepare()时,内部播放组件会调用用户提供的回调方法: OnPreparedListener接口的onPrepared()。 当调用start()方法成功后,MediaPlayer类进入Started状态。内部播放组件会调用OnBufferingUpdateListener.onBufferingUpdate() 回调方法,前提是OnBufferingUpdateListener被事先用setOnBufferingUpdateListener(OnBufferingUpdateListener)注册。这个回调方法允许应用跟踪缓存状态。 当调用seekTo(int),播放的位置就可以被调整。 调用seekTo(int)时,实际的寻求工作需要一段时间去完成,特别是视频或者是音频正在播放的时候。当实际的寻求工作完成时会调用OnSeekComplete.onSeekComplete(), 如果OnSeekCompleteListener提前用setOnSeekCompleteListener(OnSeekCompleteListener).注册过。 需要注意的是,seekTo(int)可以在其他的状态调用,例如 Prepared, Paused andPlaybackCompleted Stop这些状态。此外,用getCurrentPosition(),方法可以找到当前的播放位置。这个对应用很有帮助,例如音乐播放器需要跟踪播放进度的时候。 当播放到达数据流的末尾,播放就完成了。 如果循环模式设置了setLooping(ture),那么MediaPlayer类保持Started状态。 如果循环模式设置为false,播放组件就会调用OnCompletion.onCompletion(),前提是OnCompletionListener提前用 setOnCompletionListener(OnCompletionListener)注册过,这时类进入PlaybackCompleted 状态。 当进入PlaybackCompleted 状态,调用start()方法,就会在音频和视频源的开头重新开始播放。2.2.3音乐播放器的实现过程 本款音乐播放器是基于Android系统而设计,可以实现本地播放音乐和在线下载音乐功能。在播放本地音乐时,通过扫描SD卡上的音乐文件形成音乐列表,当用户选择列表中的某手音乐歌曲时就可以让其开始播放音乐。在本地音乐模块中有音乐歌曲播放时的控制按钮,用户可通过这些按钮实现音乐歌曲的播放、暂停、停止、快进、上一首和下一首等基本操作。而这些操作时调用Android系统中的MediaPlayer类,通过MediaPlayey类的各种状态从而实现音乐的控制操作。在在线下载模块中,通过连接MySQL数据库后获得音乐歌曲的URL,并将此URL作为下载地址进行音乐歌曲的下载。当然本设计也用到了服务,从而实现了后台播放音乐的功能。2.2.4音乐播放器流程图 图2.5音乐播放器流程图2.3 音乐播放器的界面需求 播放器要求界面布局合理,背景清晰,2.4 音乐播放器的性能要求 根据Android手机系统要求无响应时间为5秒,所以就有如下性能要求:(1) 当要求歌曲播放时,程序响应时间最长不能超过5秒(2) 当要求歌曲暂停时,程序响应时间最长不能超过5秒(3) 当要求歌曲停止时,程序响应时间最长不能超过5秒(4) 当要求歌曲上/下一首时,程序响应时间最长不能超过5秒(5)当要求进行清单列表时,程序响应时间最长不能超过5秒2.5 运行环境需求操作系统:Android手机基于Linux操作系统支持环境:Android 2.3.3版本开发环境:Eclipse 3.5 ADT-15.0.0 android-sdk-windows-r15 第三章 数据库的具体实现过程3.1 数据库简介 数据库可以用来存放数据,如存放音乐歌曲的URL地址。本款音乐播放器用到了MySQL数据库,用户得到音乐歌曲的URL地址后可以在线下载音乐歌曲。在设计中用到了Myeclipse,通过编写代码,可以实现对MySQL数据库的增、删、改、查功能。在实现时Myeclipse端加入了连接MySQL的驱动包,当然也用到TomCat服务器。3.2数据库中的安装过程3.2.1MySQL Server安装主要安装过程 图3.1 安装欢迎界面图3.2 正在安装中图3.3 注册账号图3.4 选择配置方式图3.5 数据库语言编码设置图3.6 确认设置无误3.2.2 MySQL -Front安装过程图3.7 欢迎界面图3.8 设置数据库名称图3.9 设置数据库端口号 图3.10添加数据库图3.11 本地音乐模块功能图3.2.3 表的结构 表名为music图3.12 数据库中表的结构 3.3 对MySQL据库进行增删改查的程序代码 3.3.1向MySQL数据库增加数据 DBAccess dbAccess=new DBAccess(getServletContext();dbAccess.executeUpate("insert into music values('out.flush();out.close();public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException doGet(request, response);3.3.2删除MySQL数据库中的数据 new DBAccess(getServletContext().executeUpate("delete from music where Ad1=''");out.close();public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException doGet(request, response);3.3.2更新MySQL数据库中的数据 int i=new DBAccess(getServletContext().executeUpate("update nusic set Ad1=?,Ad2=? where Ad3=?",Ad1,Ad2,Ad3);if(i>0)out.print("成功");elseout.print("失败");out.close();public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException doGet(request, response);3.3.2查询MySQL数据库中的数据 List list=new DBAccess(getServletContext().executeQuery("select * from music");Iterator iterator=list.iterator();while(iterator.hasNext()Map map=(Map)iterator.next();for (int i = 0; i <map.size(); i+)out.println(map.get(String.valueOf(i);/out.print("<br>");out.close();public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException doGet(request, response);第四章 Android项目介绍4.1 什么是Android?4.1.1 Android简介 Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备。目前尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。Android的主要竞争对手是苹果公司的iOS以及RIM的Blackberry OS。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2012年2月数据,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为68.4%。4.1.2 Android Features特性 Android系统有如下的几大特性: ·应用程序框架 支持组件的重用与替换 ·Dalvik虚拟机 专门为移动设备做了优化 ·内部集成浏览器 该浏览器基于开源的WebKit引擎 ·优化的图形库 包括2D和3D图形库,3D图形库基于OpenGL ES ·SQLite 用作结构化的数据存储 ·多媒体支持 包括常见的音频、视频和静态印象文件格式(如MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF) ·GSM电话(依赖于硬件) ·蓝牙Bluetooth, EDGE, 3G, and WiFi (依赖于硬件) ·照相机,GPS,指南针,和加速度计 (依赖于硬件) ·丰富的开发环境 包括设备模拟器,调试工具,内存及性能分析图表,和Eclipse集成开发环境插件4.1.3 Android基本框架(Android Architecture)图 4.1 Android Architecture(1) ApplicationsApplication Android会同一个核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是用JAVA编写的。(2) Application FrameWork 开发者完全可以访问核心应用程序所使用的API框架。该应用程序架构用来简化组件软件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。该应用程序重用机制使得组建可以被用户替换。 所有的应用程序都由一系列的服务和系统组成,包括:· 可扩展的视图(Views )可以用来建应用程序,包括列表(lists),网格(grids),文本框(text boxes),按钮(buttons),甚至包括一个可嵌入的web浏览器·内容管理器(Content Providers )使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。·资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串,图形,和分层文件(layout files )。·通知管理器(Notification Manager)使得应用程序可以在状态栏中显示客户通知信息。·活动类管理器(Activity Manager)用来管理应用程序生命周期并提供常用的导航回退功能。(3) Libraries库 Android 包括一个被 Android 系统中各种不同组件所使用的 C/C+ 库集。该库通过 Android 应用程序框架为开发者提供服务。以下是一些主要的核心库:系统 C 库- 一个从 BSD 继承来的标准 C 系统函数库( libc ),专门为基于 embedded linux 的设备定制。 媒体库- 基于 PacketVideo OpenCORE;该库支持录放,并且可以录制许多流行的音频视频格式,还有静态印像文件包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG。 Surface Manager - 对显示子系统的管理,并且为多个应用程序提供2D和3D图层的无缝融合。 LibWebCore - 一个最新的web浏览器引擎用来支持Android浏览器和一个可嵌入的web视图。 SGL - 一个内置的2D图形引擎 3D libraries - 基于OpenGL ES 1.0 APIs实现;该库可以使用硬件3D加速(如果可用)或者使用高度优化的3D软加速。 FreeType - 位图(bitmap)和向量(vector)字体显示。 SQLite 一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。(4) Android RuntimeAndroid 包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik是针对于同时高效地运行多个VMs来实现的。Dalvik虚拟机执行.dex的Dalvik可执行文件,该格式文件针对最小内存使用做了优化。该虚拟机是基于寄存器的,所有的类都经由JAVA汇编器编译,然后通过SDK中的dx工具转化成.dex格式由虚拟机执行。Dalvik虚拟机依赖于linux的一些功能,比如线程机制和底层内存管理机制。(5) Linux内核Android 的核心系统服务依赖于 Linux 2.6 内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。 Linux 内核也同时作为硬件和软件堆栈之间的硬件抽象层。未来发展老牌智能手机软件平台制造商Symbian发言人则表示:Google的android只不过是另一个linux,symbian对其它软件与其形成的竞争并不感到担心。除了北美之外,Symbian在其它地区智能手机市场都占有大部分市场份额。与iPhone相似,Android采用WebKit浏览器引擎,具备触摸屏、高级图形显示和上网功能,用户能够在手机上查看电子邮件、搜索网址和观看视频节目等,比iPhone等其他手机更强调搜索功能,界面更强大,可以说是一种融入全部Web应用的单一平台。但其最震撼人心之处在于Android手机系统的开放性和服务免费。Android是一个对第三方软件完全开放的平台,开发者在为其开发程序时拥有更大的自由度,突破了iPhone等只能添加为数不多的固定软件的枷锁;同时与Windows Mobile、Symbian等厂商不同,Android操作系统免费向开发人员提供,这样可节省近三成成本。Android项目目前正在从手机运营商、手机厂商、开发者和消费者那里获得大力支持。4.1.4 Android系统的四大组件在Android系统中,为我们提供了四大基本组件,每个组件是一个视图,但是有些是可见的,有些是不可见的视图,像Activity,ContentProvider是可见的视图,Service和BroadcastReceiver是不可见的,它们只在系统的后台运行。下面分别介绍四大组件:(1)Activity 简介 Android 中,Activity 是所有程序的根本,所有程序的流程都运行在Activity 之中,Activity可以算是开发者遇到的最频繁,也是Android 当中最基本的模块之一。在Android的程序当中,Activity 一般代表手机屏幕的一屏。如果把手机比作一个浏览器,那么Acitivity就相当于一个网页。在Activity 当中可以添加一些Button、Check box 等控件。可以看到Activity 概念和网页的概念相当类似。 一般一个Android 应用是由多个Activity 组成的。这多个Activity 之间可以进行相互跳转,例如,按下一个Button 按钮后,可能会跳转到其他的Activity。和网页跳转稍微有些不一样的是,Activity 之间的跳转有可能返回值,例如,从Activity A 跳转到Activity B,那么当Activity B 运行结束的时候,有可能会给Activity A 一个返回值。这样做在很多时候是相当方便的。 当打开一个新的屏幕时,之前一个屏幕会被置为暂停状态,并且压入历史堆栈中。用户可以通过回退操作返回到以前打开过的屏幕。我们可以选择性的移除一些没有必要保留的屏幕,因为Android 会把每个应用的开始到当前的每一个屏幕保存在堆栈中。Activity 是由Android 系统进行维护的,它也有自己的生命周期,即它的一个产生、运行、销毁的一个周期,对于Activity,关键是其生命周期的把握,其次就是状态的保存和恢复(onSaveInstanceState onRestoreInstanceState),以及Activity 之间的跳转和数据传输(intent)。 (2)Service 简介 Service 是android 系统中的一种组件,它跟Activity 的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。Service 是没有界面的长生命周期的代码。Service 是一种程序,它可以运行很长时间,但是它却没有用户界面。这么说有点枯燥,我们来看个例子。打开一个音乐播放器的程序,这个时候若想上网了,那么,我们打开Android 浏览器,这个时候虽然我们已经进入了浏览器这个程序,但是,歌曲播放并没有停止,而是在后台继续一首接着一首的播放。其实这个播放就是由播放音乐的Service进行控制。当然这个播放音乐的Service也可以停止,例如,当播放列表里边的歌曲都结束,或者用户按下了停止音乐播放的快捷键等。service 可以在和多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,比如检测SD 卡上文件的变化,再或者在后台记录你地理信息位置的改变等等,总之服务嘛,总