基于+Android+平台音频播放系统设计与实现.pdf_第1页
基于+Android+平台音频播放系统设计与实现.pdf_第2页
基于+Android+平台音频播放系统设计与实现.pdf_第3页
基于+Android+平台音频播放系统设计与实现.pdf_第4页
基于+Android+平台音频播放系统设计与实现.pdf_第5页
已阅读5页,还剩80页未读 继续免费阅读

基于+Android+平台音频播放系统设计与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

题题题题(中、英文)(中、英文)(中、英文)(中、英文)目目目目 基于基于 androidandroidandroidandroid 平台音频播放系统设计与实现平台音频播放系统设计与实现 designdesigndesigndesign andandandand implementimplementimplementimplement ofofofofaudioaudioaudioaudio playbackplaybackplaybackplayback systemsystemsystemsystem basedbasedbasedbased ononononandroidandroidandroidandroid platformplatformplatformplatform 作 者 姓 名作 者 姓 名赵金龙赵金龙王保保王保保 教授教授 计算机技术计算机技术 提交论文日期提交论文日期二一二年二月二一二年二月 牛防伟牛防伟 高工高工 代号代号代号代号 分 类 号分 类 号分 类 号分 类 号 学号学号学号学号 密级密级密级密级 10701107011070110701 tp311.52tp311.52tp311.52tp311.52公开公开公开公开 0951490231095149023109514902310951490231 u d cu d cu d cu d c编号编号编号编号 学校指导教师姓名职称学校指导教师姓名职称 工 程 领 域工 程 领 域企业指导教师姓名职称企业指导教师姓名职称 论 文 类 型论 文 类 型应用基础技术类应用基础技术类 西安电子科技大学西安电子科技大学 学位论文独创性(或创新性)声明学位论文独创性(或创新性)声明 秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在 导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标 注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成 果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的 材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说 明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切的法律责任。 本人签名:日期 西安电子科技大学西安电子科技大学 关于论文使用授权的说明关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。学校有权保 留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内 容,可以允许采用影印、缩印或其它复制手段保存论文。同时本人保证,毕业后 结合学位论文研究课题再撰写的文章一律署名单位为西安电子科技大学。 (保密的论文在解密后遵守此规定) 本学位论文属于保密,在年解密后适用本授权书。 本人签名:日期 导师签名:日期 摘要 摘要 android 是谷歌公司发布的基于 linux 平台的开源手机操作系统,android 以 其良好的开放性受到广大移动终端开发商及软件开发爱好者的青睐。随着 android market 的建立及不断完善,极大地促进了 android 系统的不断完善与应用功能创 新,基于 android 平台的智能手机、平板电脑等智能终端设备数量逐渐增多,各种 应用性能也不断提升。 多媒体应用是 android 系统的重要开发领域,特别是移动互联网的不断发展, 极大地丰富了智能终端的多媒体应用资源。open core 是 android 多媒体框架的核 心,所有 android 平台的音视频采集、播放均由其实现,通过 open core 可以开发 各种多媒体应用。移动终端开发商一般较少使用第三方软件,因此开发一款高性 价比的多媒体应用软件对终端设备整体性能提升具有重要意义。鉴于上述,本文 设计并实现了一款基于 android 平台的音频播放系统。 本文首先介绍了 android 平台发展以及与其他手机平台的性能优劣对比, 然后 对 android 平台整体架构及 android 多媒体做详细描述;之后通过需求分析研究, 设计并实现本音频播放系统各个模块;最后通过系统详细测试对系统的整体性能 作出评价,并提供相应测试报表及效果展示图。 关键字:androidandroidandroidandroidopenopenopenopen corecorecorecore多媒体 音频播放 abstract abstractabstractabstractabstract android is an open source mobile operating system based on the linux, which was released by google. due to the opening, android is used by the majority of mobile terminal company and software development enthusiast. with the establishment of android market and its continuous improvement, android system is becoming more perfect on the aspect of functional innovation. on the market, there are more and more intelligent terminals, like android-based smart phones, tablet computers, theirs application performance is gradually rising. multimedia applications are one of the important fields of the android system development. especially, with the development of the mobile internet, it enriches the intelligent terminal multimedia application resources. open core is the core of android multimedia framework, all the audio and video capture based on android platform are fulfilled on it and all kind of multimedia applications could be developed by it. mobile terminals developers seldom use third-party software. so its significant to develop cost-effective multimedia applications software on the purpose of the overall performance of terminal equipment. given the above, this paper has designed and implemented an android-based audio playback system. in this paper, firstly, describes the development of the android platform and the comparison of other mobile platforms on the performance of the pros and cons; secondly, introduces the whole framework of the android platform and android multimedia in detail; after the needs analysis, the paper will provide the various modules that can execute the audio playback system; at last, the paper will evaluate the overall performance of the system through the system detailed test, and provide test reports and the results exhibited. keywords:keywords:keywords:keywords:androidandroidandroidandroidopenopenopenopen corecorecorecoremultimediamultimediamultimediamultimediaaudioaudioaudioaudio playbackplaybackplaybackplayback 目录i 目录 第一章 绪论.1 1.1 研究背景1 1.2 课题意义1 1.3 国内外研究现状2 1.4 论文主要工作与章节安排3 第二章 android 操作系统5 2.1android 概述5 2.1.1android 发展历程5 2.1.2android 特征5 2.1.3android 与其它主流手机平台比较6 2.2android 系统结构7 2.2.1android 操作系统组成7 2.2.2android 应用程序架构10 2.3android 数据存取16 2.4android 开发分类18 2.5 本章小结.18 第三章 android 多媒体19 3.1 技术介绍.19 3.1.1 open core.19 3.1.2 android 多媒体处理21 3.2 多媒体播放.23 3.2.1 mediaplayer23 3.2.2 mediaplayer 生命周期.24 3.2.3 主要方法及流程.26 3.3 多媒体录制.27 3.3.1 mediarecorder.27 3.3.2 多媒体数据采集.28 3.3.3 mediarecorder 生命周期28 3.3.4 主要方法及流程.30 3.4android 音频系统31 3.5 本章小结33 第四章 音频播放系统概要设计.35 ii基于 android 平台音频播放系统设计与实现 4.1 音乐播放器需求分析35 4.1.1 可行性分析35 4.1.2 用户体验需求分析35 4.1.3 功能需求分析与设计36 4.2 音乐播放器概要设计37 4.2.1 音频播放系统模块架构37 4.2.2 音频播放系统数据映射39 4.3 本章小结40 第五章 音频播放系统详细设计与实现.41 5.1 界面设计41 5.2 音频文件识别与播放.42 5.2.1 音频文件提取42 5.2.2 播放功能44 5.2.3 音乐播放控制46 5.3 播放列表49 5.4 在线服务51 5.4.1 用户信息歌曲搜索52 5.4.2 系统提供内容搜索56 5.5 文件管理56 5.6 本章小结59 第六章 系统测试.61 6.1 系统测试报告61 6.2 本章小结67 第七章 总结与展望.69 7.1 总结69 7.2 展望69 致谢.71 参考文献.73 第一章 绪论1 第一章 绪论 1.1 研究背景 新世纪以来,互联网技术与无线通信技术得到了迅猛的发展。作为互联网技 术一个重要发展方向移动互联网也日臻完善,当前世界已经进入移动互联网 时代1,2。移动互联网即将互联网技术与移动通信相融合,以移动终端方式接入互 联网,这样在及时快捷获取网络资源的同时,又摆脱了固网访问的地域限制。随 着我国 3g 通信的发展与普及,移动互联网用户数目迅速增加,基于移动互联网的 系统与平台也正逐步走向成熟。 手机作为一种重要的通信终端设备,以其良好的手持性、随身性和身份鉴别 等优势,成为移动互联网平台终端系统的佳选。随着硬件水平的逐步提高,将手 机基本功能与无线互联网相结合的智能手机迅速发展,成为人们最常用的移动计 算机设备3。新技术的不断涌现,人们对移动设备的功能要求也越来越高。如何在 移动终端设备上开发出高性能、低功耗、友好界面的应用程序,是摆在众多开发 商眼前的一项重要任务。 手机软件系统优劣决定手机质量,手机功能不断提升的同时,软件系统的复 杂度也在加大。人们一般选择成熟稳定的软件平台进行开发和移植。当前比较优 秀的手机软件平台主要有 symbian、iphone、android、black berry 以及 windows phone 等47。android 是谷歌公司于 2007 年推出的开源手机系统平台,包括操作 系统、用户界面与应用程序。android 具备真正意义上的开放性,且不依赖于终端 设备。因此,人们可以根据个人意识对其任一功能进行优化,或开发新功能、新 应用。android 图形系统丰富,易于开发各种多媒体产品。android 的诸多优势使 其在众多移动终端开发系统平台中脱颖而出, 越来越多的开发商选择 android 为开 发平台3134。 1.2 课题意义 信息化时代,人们的生活与网络和移动通信之间的关系愈发密切。随着手机 市场的迅猛发展,各种图像及音视频等多媒体资源也日益丰富,几乎成为人们生 活所不可或缺的重要组成部分。相应的,各类媒体播放器也不断涌现。 媒体播放器发展主要有两个趋势8: (1)多样化格式支持,如常见的 mp3、wma 等格式音频以及 rm、mkv 格式 等视频文件等。尽可能多的格式支持是当前多媒体播放的重要研究方向。 (2)良好的可扩展性,即媒体播放器可以在现有功能的基础上进行功能扩充。 2基于 android 平台音频播放系统设计与实现 当前播放器功能日益强大,人们对其要求也不断提高,良好的可扩展性是鉴别其 性能的重要指标。 音频播放不仅是多媒体技术的重要分支,而且是智能手机多功能性的重要体 现。现在几乎任意一款智能手机都有自己的音频播放器,良好的音频播放器可以 提高手机性价比指数。手机操作系统是多任务操作,资源紧缺问题相对其它操作 系统更加突出,在有限的资源环境下设计出高性价比的音频播放系统颇为关键。 为满足人们对更美音质的追求,各类音频播放系统开发商也不断地绞尽脑汁,各 式各样的音频播放器层出不穷。然而市场上很多播放器过于追求功能强大、外观 新奇等,不但不易操作,用户体验不佳,而且容易导致 cpu、内存等占用率过高 等一系列问题。不止如此,手机用户种类繁多,某些功能对多数客户而言毫无意 义。 鉴于上述,我们选择 android 最为我们的系统平台,android 的开源性是其功 能扩展的先天优势,而且便于功能扩展。并在此平台上开发一个功能丰富且更加 人性化的智能手机音频播放系统。 1.3 国内外研究现状 android 经近几年飞速发展,已经成为一个生态系统,现在 android 在移动领 域得到了广泛的应用。android 应用开发在国内与国外基本一致,有一点差异是 android 在国内基本全部是免费的,而在国外可以通过 google market 来获取一些 薪金。目前国内 android 开发主要分为三类:为企业开发应用、开发通用应用以及 游戏开发,第一类开发一般是为智能终端设备设计系统总体方案,后两种开发一 般是通过 android market 或其它 app market 进行应用产品销售。 android 开源性特点使其应用产品数量繁多,最大化地提高应用性能是应用开 发的最终目标。本文对 android 音频播放系统进行研究, 并在此基础上进行功能扩 展和技术创新。本文主要研究工作包括: (一)android 音频系统研究 android 平台本身带有音频播放系统,可以支持特定编码格式的音频文件播 放。通过研究音频播放中数据在 android 系统内核、android runtime、android framework 及 androidapplication 的流程,可以深刻的理解其工作机制,助于开发 过程中提出好的技术革新。 (二)android 音乐播放与移动互联网相结合 android 是一款良好的智能手机操作系统,智能手机发展与移动互联网技术的 不断完善密切相关,将移动互联网技术嵌入到音频播放系统中,可以大大提高音 频播放系统的性能,对智能手机的整体性能提高也有很大的意义。 第一章 绪论3 (三)播放系统对文件的合理管理 当前 android 音频播放系统大多对文件系统而言只具有可读性权限, 只有在点 击音频文件时才可判断系统是否支持此类编码格式文件,本系统首先对文件编码 格式进行主动检索,并提取出其所支持的格式文件。其次,本播放系统对手机存 储系统具有管理权限,优化了手机存储系统的文件管理。 1.4 论文主要工作与章节安排 本论文深入研究了 android 操作系统的内核结构、应用程序架构、数据存储方 式等,并从实际应用角度分析 android 开发的主要分类。android 多媒体开发是 android 开发中一个十分重要的领域,尤其是基于当前移动互联网的智能手机、掌 上电脑的飞速发展,多媒体开发领域逐步拓宽,开发技术也日趋高端。音频播放 作为多媒体开发中的重要分支,也有较大的开发和提升空间。本文首先分析 android 多媒体开发过程中的主要技术,详细研究音频播放系统的需求分析,然后 结合 android 当前技术水平和硬件支持平台, 设计并实现一个性能良好的音频播放 系统。 第一章绪论,分析当前 android 发展现状以及 android 音频开发中主要领域, 并讨论了其中可能潜在的问题。 第二章 android 操作系统介绍,首先介绍了 android 发展历程及前景,讨论了 android 与其它手机操作系统的优势所在;其次,介绍 android 操作系统结构,涵 盖 linux 内核及 android 应用架构等;最后,简要介绍了 android 应用开发中的几 个主要方向。 第三章 android 多媒体技术详细介绍, android 多媒体开发核心即是 open core, 本文对其做了详细介绍;本文工作主要研究音频系统,详细介绍其主要涉及领域 为 media player 与 media recorder。 第四章音频播放系统概要设计,主要是从用户角度来获取各种需求,通过数据 提取确定功能需求,结合当前软硬件平台发展现状,设计出本音频播放系统的功 能框架。 第五章音频播放系统详细设计与实现,本文从功能角度将音频播放系统的几个 重要模块音频播放、文件管理、在线支持、数据检索等分别做详细的介绍, 核心技术实现时有代码提供。 第六章系统测试,对系统进行功能、性能等进行针对性测试,并以测试报表 予以展示。 第七章总结与展望,对本文工作进行总结,并结合现状对今后研究工作进行 展望。 第二章 android 操作系统5 第二章 android 操作系统 本章内容将主要介绍android操作系统特征与android系统结构, 以及android 开发分类及其主要流程。 2.1 android 概述 2.1.1android 发展历程 android 是谷歌公司于 2007 年 11 月发布的基于 linux 平台的开源手机操作系 统,主要由操作系统、中间件、用户界面和应用软件组成,是专门为移动终端打 造的开放完整的移动平台16。 android是google公司进军移动互联网市场企业战略的重要组成部分, 并以 “随 时随地为每个人提供信息”为最终目标。通过与软硬件开发商、制造商以及运营 商团结协作,google 希望建立标准化、开放式的移动电话软件平台,最终在移动 通信领域形成一个立体式系统。特别是开放手机联盟(open handset alliance)的成 立,更将极大地促进这一进程的实现17。开放手机联盟表示,android 将继续推进 移动设备的不断更新,设计出更加友好的人机交互界面以及开发出更加优秀的应 用服务。 “android market”是 google 公司为 android 系统用户开发的手机应用软件下 载商店18,它允许用户下载自己喜欢的 app(应用程序) ,也允许研发者上传自己 的 app。android market 与 2008 年 10 月正式上线,开始只允许发布免费 app, 现 在已开发付费 app 发布与下载,更是调用了更多手机应用研发爱好者的积极性, 极大地促进了 android 平台的不断完善与提升。 自 2008 年推出第一款基于 android 的手机产品以来, android 得到了迅猛地发 展。系统版本自 android 1.1 逐渐升级,迄今已经发布 android 4.0 系统。各版本系 统都在手机市场有着广泛的应用, 目前 android 系统的智能手机越来越受到人们的 推崇。 2.1.2android 特征 android 的飞速发展与其良好的特征密切相关,android 特征很多,主要特征 如下9。 开放性:android 平台是免费、开源的。而且 google 通过与开发商设备制造商 和运营商等机构的不断深入合作,也逐步将 android 推广为一个立体的、开放式的 6基于 android 平台音频播放系统设计与实现 生态系统。 开发人员决定应用程序权限:开发 symbian、java me 程序,可能会出现无法 访问某些限制级的 api。如果想取消这一限制,需向第三方认证机构购买签名, 而 且可能价格不菲。android 开发则仅仅需要在自己的应用程序中配置一下即可,这 也在一定程度上降低了 android 的开发成本。 我的平台我做主:android 上所有的应用程序都是可以替换或扩展的,包括诸 如 home、contacts 类核心组件。开发人员完全可以勾勒出属于自己的 android 蓝 图。 无障碍的的应用程序交互: 应用程序间的交互历来是一个挠首问题, 而 android 提供了至少 4 种通信方式, 它们支撑起了整个 android 应用程序框架,我们可以适 时的选择任意一种。 拥抱 web 时代:在 android 应用程序中潜入 html、javascript 是十分简单的 事情,基于 webkit 的 webview 组件会完成;不止如此,javascript 还可以和 java 无缝隙的衔接在一起。 物理键盘和虚拟键盘双重使用:android 系统同时支持这两种键盘,极大地丰 富了用户的输入选择。尤其是虚拟键盘,已经成为当前 android 智能终端的主流输 入方式。 个性的充分体现:崇尚新个性是时代的主旋律,android 也提供了众多体现个 性的性能。例如,widget、shortcut、livewallpaper 等,无不尽显手机的华丽与时 尚。 舒适的开发环境:android 的主流开发环境是 eclipse+adt+android sdk,不 但环境配置非常容易,而且开发过程中较传统手机操作系统更加简单、快捷,容 易调试。 android 的特点还有很多,正是这些优势使其得到了飞速的发展,android 的 未来令人充满期待。 2.1.3android 与其它主流手机平台比较 前面已经提过除 android 之外当前主流智能手机操作系统, 各种操作系统各有 千秋,其对比如下10。 android 与 symbian 目前包括诺基亚、 三星在内的大型移动终端厂商都拥有大量的 symbian 平台产 品,而且这一平台的设备产品和应用产品设计经验也较为丰富。在用户层面分析, 特别是中国市场,symbian 仍是使用用户最多的平台。因此,在未来一段时间内, symbia 仍会是中国市场的主流。 第二章 android 操作系统7 但以诺基亚为代表的 symbian 队伍有两个明显的弱势:首先是开源不彻底, 操 作系统使用版权费对中小型手机厂商仍是一笔不小的开支。其次,symbian 虽然采 用多种平台,来适应不同人群和各类需要,但平台间的第三方软件不兼容给用户 带来一定不便。 相对而言,android 的免费性对很多中小型手机厂商极具诱惑,而且运营商也 希望通过开源免费的 android 平台来定制自己的操作系统以达到控制终端业务的 目的。 android 与 iphone iphone 手机的商业模式与 windows mobile 和 symbian 有所不同,这取决于 iphone 手机硬件和软件的一一绑定特性。apple 采用与运营商分成的策略,因为 apple 深信 iphone 手机就是个卖点。在美国市场,运营商在 iphone 内预植业务还 算可观,但多数业务都是通过 apple 门户提供。iphone 虽然开放了 sdk,但不能 在普通 pc 上运行,这对中国的应用开发市场是个不小的障碍36,37。 android 与 windows phone 2011 年 2 月, 诺基亚与微软达成战略合作关系, 诺基亚公司采用微软 windows phone 系统作为其主要智能手机操作系统,并参与技术开发。2011 年 10 月 26 日, 诺基亚正式发布了与微软合作的首批 windows phone 手机,对于 windows phone 的前景,我们拭目以待。 2.2 android 系统结构 在 android 平台进行软件开发,必须对 android 的系统框架结构、android 各 应用组件及其相互关系、android 应用程序结构、android 数据存储方式,以及 android 开发分类等有深刻的理解11。本节将对其分别予以介绍。 2.2.1android 操作系统组成 android 系统不再是单纯意义的手机操作系统,而是集操作系统、中间件和应 用程序于一身的立体式平台系统。 android 平台架构以软件栈的方式实现,android 平台下层结构的核心为嵌入 式 linux2.6 操作系统,中间层是 google 为 android 开发的 libraies(函数库)和 android runtime(核心库与 dalvik 虚拟机) ,上层分别为 application(应用程序) 与 application framework(android 应用框架) 。android 系统良好的层次结构为其 开发带来极大便利,稍后将详作介绍。 便于更加直观理解,我们以一个图来详细展示 android 系统的结构,见图 2.1。 8基于 android 平台音频播放系统设计与实现 applications android framework libraries linux kernel homecontactsphonebrowser package manager telephony manager resource manager location manager xmpp service activity manager w indow manager content provider v iew s ystem notification manager surface manager opengl|e s s g l media framework freetype s s l sqlite l ib c webkit android runtime core libraries dalvik vm display driver u s b driver camera driver keypad driver bluetooth driver wifi driver flash mem driver audio drivers binder(ip c) driver power managemen 图 2.1android 系统结构图 第一部分:linux kernel android 平台目前是基于 linux 2.6 版本12, 选择 linux kernel 因其有以下主要 优势: (1).linux 有着良好的驱动模型以及已存在的、 广泛的、 运行良好的各种软硬件 驱动。 (2).可靠地内存管理模块、安全机制、网络以及良好的操作系统内核框架。 (3).linux 在越来越多的设备上使用,证明了 linux 的可靠性。 第二部分:libraries 第二章 android 操作系统9 libraries 采用 c/c+语言编写, 主要是为 android gui、 android 系统服务提供 一些底层实现。applications 不能直接访问 libraries,需要通过 application framework 进行。 surface manager:surface 是 android 定义的一种视图,子程序可以通过该视图 直接在屏幕上绘图,而不需要 gui 干涉,该模块用于管理 surface 视图。 opengl|es,sgl:提供了一套 opengl(3d)、sgl(2d)绘图函数库。 media framework:音视频处理库,包括 mp3、mpeg4、h.263、aac、jpg、 amr、png 等。 freetype:位图以及向量字体显示。 ssl:ssl 协议库。 sqlite:android 系统提供的 sqlite 数据库引擎。 webkit:一个开源的浏览器引擎。 libc:标准 c 库。 第三部分:android runtime android 应用程序使用 java 语言开发, google 开发了一个属于自己的 java 虚拟 机。与 sun 公司的 java 虚拟机相比,android 采用的是 dalvik 虚拟机。dalvik 虚 拟机对执行嵌入式 java 程序进行优化,真要针对有限的内存、有限的 cpu 处理能 力以及能耗方面。 core libraries:提供 dalvik 虚拟机运行时所需要的一些核心 java 类库。 dalvik vm:能够执行 java 字节码的嵌入式 java 虚拟机。dalvik vm 是整个 android 操作系统中唯一没有开源的部分。 第四部分:application framework application framework 全部使用 java 语言编写,主要作用就是实现 android 的 系统框架和 gui。 activity manager:activity 是 android 应用程序的一个最小执行单元,该模块 用于管理 activity 的生命周期与相关的行为。 windows manager:android 应用程序包含多个 windows,该模块就是用来管 理 windows。 package manager:每一个 android 应用程序都是一个 package,该模块用于管 理应用程序的安装和卸载。 telephony manager:手机一般都是由一个应用处理器和一个调制解调器 (modem)构成,应用处理器用于界面操作和内容管理,调制解调器用于电话、信息 等通信工作。该模块用于通信管理,如接打电话、收发信息、gprs 等。 content providers:android 系统中,每个应用程序都运行在不同的 linux user id 中,因此应用程序间不能看到彼此拥有的文件,该模块便是用于不同的应用程 10基于 android 平台音频播放系统设计与实现 序间的数据传递。 view system:一个编辑框、按钮等都是一个 view,该模块是 android gui 的 核心模块。 resource manager:android 应用程序可以通过 resource 的类型访问字符串、 位图等资源,该模块用于管理此类资源。 location manager:gps 等定位设备的服务模块,主要负责为应用程序提供位 置服务。 notification manager:notification 用于事件通知,比如新短信等。该模块即管 理各种事件通知。 xmpp service:xmpp 是一种应用层的通信协议,gtalk 就是基于 xmpp 协议 设计的。xmpp 是一种标准协议,可用于即时通信、rss 等多种 web 服务。该模 块提供了 xmpp 协议的底层实现,应用程序可以调用该服务模块。 第五部分:applications application 是千变万化的,android 系统提供了一些常用的应用程序,其中包 括: contacts 电话薄; sms program 短信收发; email 邮件收发; calendar 日历; maps 地图服务; browser 浏览器; 以及各种多媒体应用等。 值得一提的是,android 提供的这些典型应用程序与设计者开发的程序是平等 的,用户完全可以像优化或卸载普通程序一样对它们进行操作。这在多数手机平 台上是不被允许的,而这也正是 android 提供个性化服务的重要体现方面。 2.2.2android 应用程序架构 android 应用程序资源 任何类型的程序都需要使用资源,android 自然也不例外。android 应用程序 使用的资源很多都被封装在 apk(android 安装包)文件中,并随 apk 发布9。 android 资源一般分为三大类:xml 文件、图像及任意类型资源(如音频、 视 频文件) 。这些资源文件分别放在 res 目录中不同的子目录中。当我们编译 android 应用程序同时,系统会使用一个资源文件编译程序(aapt)对其中资源进行编译。 android 支持资源列表如表 2.1 所示。 第二章 android 操作系统11 表 2.1android 资源 目录资源类型描述 res/animxml存放帧(frame)动画或补间(tweened)动画文件 res/drawable图像该目录中文件可以是多种格式图像文件, 如 bmp、 png、 gif、jpg 等。如需按字节流读取图像文件,需将图像文件置 于 res/raw 目录中。 res/layoutxml存放 xml 布局文件 res/valuesxml系统使用该目录内xml文件内容作为资源, 而非xml 文 件 本 身 。 xml 文 件 内 定 义 了 各 种 类 型 的 键 值 对 (key-value)。目录下可以自由建立多个 xml 文件,而且可 以使用标签来定义不同的键值对。 res/xmlxml存放任意类型的xml文件, 这些文件在运行时被读取。 res/raw任意类型目录文件被封装在 apk 内, 但并不编译。 该目录下可以 存放各种类型文件,如文档、音频、视频文件等。 在表 2.1 所示的目录中放入资源文件之后,adt 会在 gen 目录中建立一个 r.java 文件。文件内包含一个 r 类,该类为每一个资源定义了一个唯一的 id,id 为 int 型。一般而言,我们不需要管理此类,更无需修改,直接访问其中的 id 即 可引用各种资源。 android 应用程序组件 android 程序没有入口点(main 函数) ,取而代之的是一系列组件,这些组件 可以单独实例化。本节介绍 android 支持的 4 种基本组件9,13,应用程序间的共享 功能也是通过这 4 种组件实现的。 activity activity(活动组件)是 android 应用开发的核心类,该类的全名是 android.app.activity。activity 相当于 c/s 程序中的窗体(form)和 web 程序设计中 的页面。每一个 activity 都提供了一个可视化区域,区域内可以放置各种 android 组件,如按钮、图像、文本框等35。 手机服务的特殊性决定了 android 必须是一个多任务作业系统, 现在的智能手 机用户都已经习惯在听音乐的同时,执行其他操作(如看电子书、浏览网页或玩 一款自己喜爱的游戏) 。同时执行多个应用程序的优点无须赘述,而这并不表示它 已经尽善尽美。每执行一个程序,便会占有一定的系统内存,前面已经提到手机 系统内存异常紧缺。若是执行程序过多,亦或是已关闭的程序仍未释放掉相应地 资源,会对操作系统和用户带来难以估量的影响。为解决此问题,android 引入了 一个新机制生命周期,其中 activity 生命周期最具代表性。 android 应用程序的生命周期由 android 框架进行管理,而不是由应用程序直 接控制。一个 activity 从启动运行结束的过程中,可能会产生许多状态切 换。activity 需在各时期中进行状态保存、恢复、数据传送等工作,以便开发人员 12基于 android 平台音频播放系统设计与实现 进行数据追踪、错误调试及功能优化等。 我们通过图示来直观的描述 activity 生命周期,见图 2.2。 oncreat( ) 启 动activity onstart( ) onresume( ) 正 在 运 行 的activity activity失 去 了 焦 点 onpause( ) activity仍未获得焦点 onstop( ) ondestroy( ) 关 闭activity activity重新获得焦点 activity重新获得焦点 其他程序占用内存 进 程 被 终 止 用 户 导 航 至activityonrestart( ) 图 2.2 activity 生命周期 activity 主要有四种状态: (1)active:activity 处于栈顶时,它是可见的、有焦点的前台 activity,用来响 应用户动作。当用户启动应用程序 activity 后,该 activity 便处于 active 状态。在 android 平台中,同一时刻只会有一个 activity 处于 active 状态。 (2)paused:activity 可见但并不拥有焦点,在这一时刻,该 activity 就是暂停 的。表现形式一般为当前 activity 暂时暗下来,退到背景画面。例如,某一应用所 弹出的警告对话框。 (3)stopped:当一个 activity 不可见,即处于“停止”状态。但 activity 仍保留 在内存中,且包含其所有的状态和成员信息。如果需要再次访问该 activity,可以 第二章 android 操作系统13 通过通知机制来唤醒。然而如果系统需要内存,可能会将该状态的 activity 杀掉, 若要再次访问该 activity,则需重建。 (4)inactive:activity 尚未被启动、或一个曾经被启动过的 activity 被杀掉后, 都是 inactive。如需手动终止某 activity,需调用 finish 方法。 service service(服务组件)是 android 应用程序片段的一种,可以独立启动与停止。 service 是运行在后台的服务程序,主要用途是提供后台服务调用,它既可以运行 在自己的进程中,也可以嵌入到其它应用程序的进程中。service 没有可视化接口, 但仍可以在后台运行,这样保证用户进行当前操作的同时,可以享受 service 在后 台提供的服务。 service 有多种分类形式,按其运行地点可以分为本地服务与远程服务,两者 主要区别是本地服务依附于宿主进程之上,而不是独立的进程,这一机制可以在 一定程度上节约资源;远程服务则是独立运行的进程,优点是主 activity 所在进程 被杀死时,该服务依然在运行,而不受其他进程影响,有利于为多个进程提供服 务,具有较高的灵活性。按运行类型分类可以分为前台服务与后台服务,两者区 别为 service 是否会在通知一栏显示 ongoing 的 notification, 默认的服务类型即为 后台服务。按使用方式主要分为三类:startservice 启动的服务(主要用于启动一 个服务执行后台任务,不进行通信;停止服务使用 stopservice)与 bindservice 启 动的服务(该方法启动的服务要进行通信,停止服务使用 unbindservice) , startservice 同时也 bindservice 启动的服务(停止服务应同时使用 stepservice 与 unbindservice) 。 与 activity 类似,service 也有其生命周期:启动 service 时,首先会调用其 oncreat()方法,然后调用 onstart()方法;停止 service 时,会调用其 ondestroy() 方法。service 使用方式不同,其生命周期也会有相应的差异。 对于本文将要讲述的音频播放系统而言,service 机制则更为关键,此处使用 的 service 即是本地前台 service。几乎所有用户都会使用音频播放器,然而用户可 能会在聆听音乐的同时发送短信、浏览网页等。此时完全透明的 service 组件便是 最佳选择。 broadcast receiver 广播接收者组件的功能是接收广播信息, 同时对广播消息作出响应。 一般而言, 广播消息由系统发出,如时区变化、未读短信等。应用程序也可以发送广播消息, 比如利用广播消息通知其它程序数据已经下载完毕且可以使用。 一个 android 应用程序可以有多个广播接收者,所有广播接收者类都需继承 android.content.broadcastreceiver 类。broadcast receivers 与 service 一样,没有 ui 界面,但它可以通过 notificationmanager 来通知用户他们感兴趣的事件的发生。 当 14基于 android 平台音频播放系统设计与实现 一个 broadcastreceiver 被触发时,系统会根据需要启动相应应用程序。 content provider 内容提供者组件,android 系统中,每个应用程序都有唯一的 id 且拥有自己 的进程,这样可以有效避免其它应用程序对自己产生影响。然而,有时候不同的 应用进程间需要进行数据交互、共享等,为实现这一目标,需要引用 content provider 组件。 content provider 可以为其它应用程序提供数据, 这些数据可以保存在文件系统 中,如 sqlite 数据库或者其它文件等。每个 content provider 都是一个类,它们均 继承自 android.content.content provider 类。 content provider 类中定义了一系列方法, 通过这些方法可以使其它的应用程序 获

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论