计算机应用技术专业毕业设计Android手机播放器

上传人:痛*** 文档编号:45699424 上传时间:2021-12-08 格式:DOC 页数:33 大小:56.50KB
收藏 版权申诉 举报 下载
计算机应用技术专业毕业设计Android手机播放器_第1页
第1页 / 共33页
计算机应用技术专业毕业设计Android手机播放器_第2页
第2页 / 共33页
计算机应用技术专业毕业设计Android手机播放器_第3页
第3页 / 共33页
资源描述:

《计算机应用技术专业毕业设计Android手机播放器》由会员分享,可在线阅读,更多相关《计算机应用技术专业毕业设计Android手机播放器(33页珍藏版)》请在装配图网上搜索。

1、计算机应用技术专业毕业设计:Android手机播放器 9 计算机应用技术专业毕业设计:Andrid手机播放器摘要Andrid(中名:安卓)是基于Linux平台开手机操作系统名称,该平台由操作系统、中间、用户界面和应用软组成,号称是首个为移动终端打造的真正开发和完整的移动软。目前在市场上可谓如日中天,越越受到玩家的青昧。因此,对于软开发技术从业人员说,Andrid平台具有无限的吸引力。本所实现的eb地图服务基于Andrid平台开发的,采用的网络地图是Ggle aps,该系统可以用浏览城市的地图,并能对其放大、缩小好移动,同时利用GPS定位技术,实现了自我定位、位置查找和路径跟踪等功能,满足了手机

2、用户基本的地图服务需求。本研究分析了Andrid平台的系统架构和组模型,接着解析了Andrid中的重要API和应用构成,以Intent和生命周期的机制。在此基础上,基于Andrid平台设计和开发为用户提供一款的基于Andrid平台的手机音乐播放软。关键词:Andrid;ava;手机音乐播放器;Intent;目录1、绪论111题背景112 Andrid平台与其他平台的比较113本主要工作214论组织结构22、Andrid的架构分析321 Andrid的功能特征322 Andrid架构分析221应用程序框架222类库6223 Andrid运行时组723 Andrid应用的构成和工作机制73、And

3、rid应用程序结构剖析831 Andrid的API832 Andrid应用程序结构解析9321活动9322意图接收器10323服务11324内容提供者1133 Intent的详细解析11331 Intent的抽象描述11332 Andrid如何解析Intent1234 Andrid活动的生命周期13341活动的生命状态14342活动的运作流程14、手机播放器软设计实现1741 系统设计需求17411需求分析17412下载开发资17413更新E1ipse并下载ADT(Andrid开发插)18414使用E1ipse开发Andrid应用1942手机播放器软程序中各类组20421 Paage Expl

4、rer中的组20422应用程序的资21423布局ainxl21424 Andridanifestxl2143手机播放器软设计实现22431系统主界面的实现22432手机播放器功能实现24433常见的错误分析解决291、绪论11题背景随着移动通信的发展以及互联网向移动终端的普及,网络和用户对移动终端的要求越越高,而Sbian,inds bile,Pal S等手机平台过于封闭,不能很好的满足用户的需求,因此市场迫切需要一个开放性很强的平台。Andrid是一套真正意义上的开放性移动设备综合平台,它包括操作系统、中间和一些关键的平台应用。Andrid是由Linux+ava 构成的开软,允许所有厂商和个

5、人在其基础上进行开发。Andrid 平台的开放性等特点既能促进技术(包括平台自身)的创新,又有助于降低开发成本,还可以使运营商能非常方便地制定自己的特色化的产品。因此,它具有很大的市场发展潜力。经过多年的发展,第三代数字通信( 3G)技术获得了广泛的接受,它为移动终端用户带了更快的数据传输速率。随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软和需要的服务将会有很大的发展空间。 Ggle与包括中国移动、摩托罗拉在内的三十多家技术和无线应用的领军企业组成的开发联盟为此于2007年11月推出了一个专为移动设备设计的软平台Andrid。Andrid最大特

6、点在于它是一个开放的体系架构,具有非常好的开发和调试环境,而且还支持各种可扩展的用户体验, Andrid里面具有非常丰富的图形系统, 对多媒体的支持功能和非常强大的浏览器。本题的目的在于掌握ava手机应用开发技术和移动软平台开发技术。在以ava语言为基础,结合Andrid移动开发平台,并利用Andrid提供的SD,完成在Andrid平台上运行的手机音乐播放器软,形成一款具有一定功能的手机应用软。本题的意义在于通过开发一款手机音乐播放器手机应用软,可以熟练应用Andrid平台提供的应用程序接口,掌握Andrid平台上的各种应用。12 Andrid平台与其他平台的比较首先看一下Sbian,它存在着

7、以下的致命不足:Sbian的主导者为诺基亚、索尼爱立信等传统的手机厂商,因此虽然Sbian非常成熟,但它基本上还带有浓厚的保守色彩,应用软与我们日常的P软有较大的理念差异。再者Sbian与互联网的结合给人感觉仍不够紧密,互联网应用更多只是作为陪衬存在。Andrid平台与此相反,移动互联网是它最重要的应用,无论系统内核、应用软还是硬设计,几乎都是围绕着快捷的移动互联网应用所展开,同时Andrid与P平台存在先天的基因联系,可以很好的实现与P设备的信息互享,更容易获得用户的广泛认可。与Andrid拥有相同属性的还有微软的inds bile。至于iPhne,它只是苹果公司的封闭平台,用户无法在iPh

8、ne中自行安装应用,所有的东西都应该苹果自行设计制造,从而确保利润不被第三方分享。苹果自己为iPhne开发了嵌入系统以及完整的应用,但它干脆都不宣扬iPhne的软设计,而是将iPhne作为一个包含软硬卖点的手机产品出售。同样,苹果式的奢华与时尚让iPhne大获成功,以至于成为手机市场的风向标。与苹果相反,Andrid则是走完全开放的道路,这种模式的巨大优点在P软领域已为业界所公认:自由软高度活跃,错误可以被快速修正,新的应用、新的创意可以不断出现。Andrid平台的另外一个优势是标准化和跨平台。Andrid和操作系统进行了紧密的整合,从而可以方便地使用操作系统的功能。这与难于使用操作系统功能的

9、2E相比,无疑对开发者有很大的吸引力。并且从图形应用界面的开发上面看,Andrid可以使用配置描述图形控的布局,用ava代码编写实际响应代码,这样方便得多。当然由于Andrid己经提供了大量现成的应用API和应用工具,使得常规智能手机功能的开发变得非常容易和简单。13本主要工作Andrid是基于Linux+ava的手机操作系统平台,XPP是基于XL的开的即时通讯协议,本从实际应用出,提出了开发基于Andrid平台的手机音乐播放器软。本的主要工作包括:在Elipse开发环境下,运用ava语言和andrid 的sd 开发一款可以实现查询手机音乐播放器功能的软。本软除了即时本信息的传输显示外,还可以

10、进行图片的显示,并对软客户端的功能进行了美化扩展,增加了背景和浏览的功能。并且该系统在Andrid模拟器上运行,取得了很好的运行效果。14论组织结构本首先分析了系统的研究背景,介绍了Andrid的发展现状以及本的主要内容。并对Andrid与其它手机操作系统进行了比较,说明了Andrid的优势。第二,介绍了Andrid的特征、Andrid的架构,运行组以及Andrid应用的构成和工作机制。第三,提出了在Andrid平台上开发基于ava的手机音乐播放器软,提出了系统的架构、系统服务器端和客户端的解决方案,对系统采用的Intent进行解析,并且介绍了Andrid的生命周期。第四,对如何实现手机音乐播

11、放器软功能进行了详细的分析,对软设计从客户端界面,代码段的实现,XL解析模块,手机音乐播放器界面跳转和客户端扩展功能几个方面进行了详细的学士学位论实现,最后对系统的流程进行了描述。第五,总结了本的主要研究内容和研究成果,分析了存在的问题,并对今后的发展方向进行了展望。2、Andrid的架构分析Andrid是一个包含操作系统、中介架构层及应用程序所产生出的软堆栈架构。由下而上,其核心为嵌入式Linux26作业系统,向上搭配Ggle为Andrid开发的类库及Andrid运行时,再配合应用程序架构,开发各种不同的应用程序。21Andrid的功能特征(l)应用程序架构:在应用程序架构内已经具备多种不同

12、的基础组,在开发应用程序时,就可以直接调用这些组使用,可以节省开发应用程序的心力及时间。(2)Dalvi虚拟机器:在Andrid平台上所使用ava虚拟机,不是Si公司的标准ava虚拟机,而是使用Ggle自主开发的代号为Dalvi的虚拟机,它在保证API方面的兼容的同时,针对移动手机进行了大幅优化,占用资更小,运行效率更高。(3)集成的浏览器:集成的浏览器是Andrid内建的浏览器,是以ebit的浏览引擎为基础所开发成的。edit是一个开浏览器网页排版引擎,目前使用ebit引擎的浏览器主要有:Safari,idri,Epiphan等。配合Andrid手机的功能,可以在浏览网页时,达到更好的效果,

13、例如:局部性的缩放网页上的资讯、触控式的操作等效果。(4)优化的绘图能力:在程序里可以用到的绘图功能分为2D与3D两个方面。在2D方面,Andrid提供了一套特有的类库(SGL;而在3D方面则是使用penGLES10(penGL fr Ebedded sstes)规范的类库。它们是一种非常快的图形引擎,并且支持硬加速。()SQLite数据库:SQLite提供结构化的数据存取。SQLite是一款轻型的数据库,它的设计目标是嵌入式的,目前已经在很多嵌入式产品中使用了它,它占用的资非常低。它能够支持inds/Linux/U nix等主流的操作系统,同时能够跟很多程序语言相结合,比如php,ava等,

14、还有DB接口,同样比起sql,PstgreSQL讲,它的处理速度比它们都快。它无需安装和管理配置,它是一个储存在单一磁盘中的完整数据库,体积小只有20B但支持数据库大小至2TB。它虽然很小巧,但是支持的SQL语句毫不逊色于其它开数据库。同时它还支持事务功能和并发处理等等。SQLite也是一套开放性的关联式资料库,其特点在于轻量性方面的设计结构,更适合在手机上使用。(6)多媒体的支持能力:主要用于播放媒体。这同时包括对音频(如播放P3或其他音乐等)和视频(如播放从网上下载的视频)的支持,并支持“播放URI地址”(Nte:URI即是统一资识别地址)模式在网络上直接播放的流媒体。另外支持各种通用的静

15、态图像格式,例如:PG、PNG、GIF等格式。(7)GS技术:Glbal Sste fr bile uniatins,即全球移动通讯系统,俗称”全球通”,是一种起于欧洲的移动通信技术标准,是第二代移动通信技术,其开发目的是让全球各地可以共同使用一个移动电话网络标准,让用户使用一部手机就能行遍全球。GS技术是属于手机硬方面的展现,也是在开发Andrid应用程序时可以突出的特点之一。(8)蓝牙、EDGE、3G及i-Fi:蓝牙是一种新型、开放、低成本、短距离的无线连接技术,可取代短距离的电缆,实现话音和数据的无线传输。EDGE(Enhaned Data Rate fr GS,Evlutin),即增强

16、型数据速率GS演进技术。EDGE是一种从GS到3G的过渡技术,它主要是在GS系统中采用了一种新的调制方法,即最先进的多时隙操作和SPS调制技术。由于8PS可将现有GS网络采用的GS调制技术的信号空间从2扩展到8,从而使每个符号所包含的信息是原的4倍。i-Fi(irelessFidelit),即无线保真技术,与蓝牙技术一样,同属于在办公室和家庭中使用的短距离无线技术。该技术使用的是24GHz附近的频段,该频段目前尚属没用许可的无线频段。其目前可使用的标准有两个,分别是IEEE802lla和IEEE80211b。这些通讯能力也是属于手机硬方面的展现,也是在开发Andrid应用程序时可以突出的特点之

17、一。(9)GPS: Glbal Psitining Sste,即全球定位系统,它是一个由覆盖全球的24颗卫星组成的卫星系统。这个系统可以保证在任意时刻和任何地点都可以同时观测到4颗卫星,以保证卫星可以采集到该观测点的经纬度和高度,以便实现导航、定位、授时等功能。这项技术可以用引导飞机、船舶、车辆以及个人。这个同样也是属于手机硬体方面的体现,也是在开发Andrid应用程序是可以突出的特点之一。22 Andrid架构分析图中显示的是Andrid架构的五个主要部分。221应用程序框架在Andrid SD中,定义了让开发者使用与核心应用程序相同API的权限应用程序框架是为了要简化组的重新利用而设计的,

18、应用程序可以发布功能为其它应用程序所使用。但是,这要受限于应用程序架构的安全机制,使用者以用同样的机制新增、置换组。目前所有的应用程序是由服务及系统组成,包含有:(l)一套强大和可扩展的视图系统:用建构一个应用程序的基本组,包了在开发系统画面时,常用的列表、网格、本框、按钮等控制项,甚至是内嵌的eb浏览器。 图2-1 Andrid架构的五个部分(2)内容提供者:使应用程序可以访问另一个应用程序的数据(如联系人数库),或者共享它们自己的数据。(3)资管理器:提供各种非程序代码的资让应用程序去使用。例如:本字符串、图形或排版相关的布局。(4)通知管理器:提供应用程序在状态栏中显示应用程序自定义的提

19、示信息。()活动管理器:管理所有应用程序的生命周期及提供常用的导航回退功能。例如:启动应用程序要用到的资准备及关闭应用程序时释放内存及相关资等工作。(6)视窗管理器:用管理所有启动程序的视窗。(7)位置管理器:用管理地图服务的相关功能。(8)电话管理器:用管理用户拨打与接听电话的相关功能。(9)包管理器:管理所有安装在Andrid系统内的包。222类库在Andrid中包含一些/+的类库,这些类库能被Andrid系统中不同的组使用。开发者可以通过应用程序框架使用这些功能。部分核心类库列表如下:(1)surfae anager:主要的功能是让开发者可以去存取/显示系统及管理的功能,在显示与存取操作

20、间的对应、互动以及实现无接缝的2D/3D多应用程序之间的整合。例如:在2D、2D显示上的合成、叠合动作。(2)3Dlibraries:主要是依penGLES10规范所定义的3D绘图引擎。该库使用硬加速(当硬可用时),可以将硬的3D功能做最佳化的处理显示。(3)SGL:主要是处理有关显示2D方面的绘图引擎。(4)edia Frae r:主要是以paetVide公司的penRE为基础所发展的多媒体类库,该库支持回放和录制大量流行的音视频格式和静态图片。例如:PEG4、H264、P3、AA、AR、PG、PNG、GIF等格式()Free Tpe:主要是用显示点阵图和处理向量字形的。(6)SSL:(se

21、ureSetsuer),中名为“安全套接层协议层”,它是网景公司提出的基于EB应用的安全协议,当前版本为30。SSL协议指定了一种在应用程序协议(如HTTP、Telenet、NTP和FTP等)和TP/IP协议之间提供数据安全性分层的机制,它为TP/IP连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证。它已被广泛地用于eb浏览器与服务器之间的身份认证和加密数据传输。SSL协议位于TP胆协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层:SSL记录协议(SSL Rerd Prt l):它建立在可靠的传输协议(如TP)之上,为高层协议提供数据封装、压缩、加密等基本功能

22、的支持。SSL握手协议(SSL Hand shae prt l):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。SSL协议提供的服务主要有:认证用户和服务器,确保数据发送到正确的客户机和服务器;加密数据以防止数据中途被窃取;维护数据的完整性,确保数据在传输过程中不被改变。(7)SQLite:SQLite是一套开放性的关联式资料库,能够被所有应用程序使用的轻量级的关系数据库引擎。(8)eb it:是一个先进的网页浏览器引擎,被用构建Andrid浏览器和内嵌的eb视图,也可以让开发者利用这个引擎做不同的应用。(9)lib :就是一个BS

23、D标准类库。但是,针对Linux嵌入式装置进行过最佳化的调整。223 Andrid运行时组虽然Andrid是用ava语言开发、撰写应用程序,但却不使用ava运行时组执行ava程序,而是使用了由Ggle自行研发的Andrid运行时组执行程序。Andrid运行时组包括两个重要的部分,一个是核心类库,另一个是Dalvi虚拟机。23Andrid应用的构成和工作机制对于一个Andrid应用程序说,是由Ativit、IntentReeiver、Servie、ntent Prvider四部分组成,但并不是每一个Andrid应用程序都必须由这四部分组成。在应用程序中使用时,需要在配置Andridanifest

24、xl中进行配置。这个配置是每个Andrid应用程序所必需的,用于定义应用程序的组、组的功能以及必要条等。Andrid应用的构成和工作流程如图2-2: 图2-2 Andrid的构成和工作流程3、Andrid应用程序结构剖析31 Andrid的APIAndrid API主要包含了以下几个部分:(1)AndridanifestxlAndridanifestxl是系统的控制,它告诉系统如何处理所创建的所有应用组(尤其是活动(Ativit),服务(Servie),意图接收器(Intent Reeiver)和内容提供者(ntent Prvider)。举例说,控制就是把活动和要接收的意图(Intents)连

25、接在一起的“胶水”。(2)活动活动就是一个有生命周期的对象。一个活动就是完成某些工作的代码块,这部分工作还可能包括对用户UI界面的显示。不过这不是必须的,有些活动从不显示UI界面。(3)视图视图可以将其自身绘制到屏幕上。Andrid的用户界面由一系列的视图树构成。接口都是由一组以树的形式出现的视图组成的。开发者可以通过创建一个新的视图的方法使用自定义的图形处理技术(比如开发游戏,或者是使用了不常用的用户图形窗口界面)。(4)意图意图是一个简单的消息对象,它表示程序想做某事的“意图”。比如应用程序想要显示一个网页,那么它可以通过创建一个Intent实例并将其传递给系统表示意图浏览这个URI。系统

26、将定位到能处理这一Intent的代码(在当前情况下就是浏览器),并运行之。意图也可以用于广播系统范围内的有效事(例如通知事)。()服务服务是运行在后台的一段代码。它可以运行在它自己的进程,也可以运行在其他应用程序的进程里,这取决于自身的需要。其它的组可以绑定到一个服务上,通过远程过程调用(RP)调用这个方法。例如媒体播放器的服务,当用户退出媒体选择的界面时,仍然希望音乐依然可以继续播放,这时就可用服务保证当用户界面关闭时音乐还继续播放着。(6)通知通知将以小图标的形式呈现在状态栏里,用户通过与图标的交互接收消息。最常见的通知包括短信息、通话记录和语音邮,但是应用程序也可以创建它们自己的通知事。

27、(7)内容提供者内容提供者是用提供对设备上数据进行访问。典型的例子就是使用内容提供者访问联系人列表。应用程序也可以使用其它程序通过内容提供者提供的数据,同时也可以定义自己的内容提供者向其它应用提供数据访问服务。32Andrid应用程序结构解析通常由以下四个组构建一个完整的Andrid应用程序。活动意图接收器服务内容提供者然而,并不是所有的Andrid应用程序都必须具备上面的四个组,可以由上面的一个或几个组建。当决定使用以上哪些组构建Andrid应用程序时,需要将它们注册在Andridanifestxl中,这是一个XL配置,在这个中可以声明应用程序组以及它们的特性和要求。这个配置是每个Andri

28、d应用程序所必需的。321活动活动是以上四个组中最常用的一个。每个活动都是Ativit的子类,并实现了一些独有的功能,如管理UI显示和UI的反馈事。一个活动就相当于应用程序的一个用户界面,由事响应以及视图等组成。大多数的应用程序通常包括多个界面。例如:一个本聊天应用程序,至少应该包含一个联系人列表界面、一个聊天界面、一个设置界面、一个聊天记录查询界面等等。每个界面其实都可看作是一个活动。显示一个新界面就相当于生成一个对应的活动对象。在一些情况下,活动能够返回给它的上级界面一个返回值,例如一个提供给用户选择照片的活动可以返回给它的调用者用户选择了哪个照片。当一个新的活动出现时,前一个活动被中断并

29、被放入到一个历史堆栈中。用户可以使用返回键使前一个活动重现。当一个活动不再需要时,可以将它们从历史堆栈中移除。默认情况下,Andrid会为每个应用程序保留从主界面开始的历史堆栈。Andrid通过一个被称作意图的特殊类,实现界面与界面之间的跳转。一个意图描述了一个应用程序想要做什么。在意图的描述结构中,含有两个重要的数据结构:动作和动作对应的数据。典型的动作类型包括AIN、VIE、PI、EDIT等等,而动作对应的数据则以URI的形式表示。例如:显示一个联系人信息的界面,可以创建一个意图,并将它的动作设置成VIE,数据设置成表示这个人信息的URI。除此之外,还有一个被称作意图过滤器(IntentF

30、iher)的相关类。当发生一个有效的目的请求时,意图过滤器用描述一个活动能够处理什么意图。如上例中所描述,想要正常显示一个联系人信息的界面,必须声明一个意图过滤器,它说明当有联系人数据要被在界面上显示时,知道如何处理它们。通常意图过滤器要被注册在Andridanifestxl中。从一个界面跳转到另一个界面是由解析各种意图实现的。例如:一个活动使用startAtivit(Intent)调用其他活动时,系统会查找所有已经安装的应用程序的意图过滤器,并从中挑选出能够匹配Intent意图的活动。随后,这个新的活动接收到意图(Intent)的通知并开始运行。当startAtivit方法被调用,解析意图的

31、处理过程随之发生,这个机制有以下两个突出的优点:活动可以通过一个以意图形式产生的请求重用其他组的功能。活动可以在任何时候被一个具有等价意图过滤器的新活动所替代。322意图接收器当想要编写代码对外部事做一些处理时,可以使用意图接收器。意图接收器并不显示UI界面,它是通过Ntifiatinanager通知用户他们感兴趣的事发生了。意图接收器同样可以被注册在Andridanifestxl中,同时也可以在代码中使用ntextregisterReeiver()注册自己的意图接收器。当一个意图接收器被触发时,系统会根据需要启动应用程序。323服务服务是具有长生命周期并且没有用户界面的代码。324内容提供者

32、在Andrid中,每个应用程序都是有自己的userID及在自己的进程中执行。这样做的好处是,可以保护系统及应用程序,避免被其他不正常的应用程序所影响。可以把每个进程想像成是一个黑盒子,彼此不会互相影响,连内存的资料都无法共享。如果应用程序之间想要共享数据,就需要使用用内容提供者。一个内容提供者就是一个类,它实现了一个标准的方法集合。其他的应用程序可以使用这些方法保存和检索此内容提供者处理过的数据。33 Intent的详细解析在一个Andrid应用中,主要是由四种组组成的,这四种组可参考上一节的内容。而这四种组是独立的,它们之间可以互相调用,协调工作,最终组成一个真正的Andrid应用。在这些组

33、之间的通讯中,主要是由意图协助完成的。意图负责对应用中一次操作的动作、动作对应的数据、附加数据进行描述,Andrid则根据此意图的描述,负责找到相应的组,将意图传递给它,并完成组的调用。因此,意图在这里起着一个媒体中介的作用,专门提供组之间互相调用的相关信息,实现调用者与被调用者之间的解耦。例如,在一个联系人维护的应用中,当在一个联系人列表屏幕(假设对应的Ativit为listAtivit)上,点击某个联系人后,希望能够调出此联系人的详细信息,为了实现这个目的,listAtivit需要构造一个Intent,这个Intent用于告诉系统,要做“查看”动作,此动作对应的查看对象是“某联系人”,然后

34、调用startAtivit(intent intent),将构造的Intent传入,系统会根据此intent中的描述,到Andridanifestxl中找到满足此Intent要求的Ativit。系统会调用找到的Ativit,即为detailAtivit,最终传入Intent,detailAtivitv则会根据此Intent中的描述,执行相应的操作。331Intent的抽象描述在Andrid参考档中,对意图的定义是执行某操作的一个抽象描述。该抽象描述的具体内容如下:首先,它是要执行的动作的一个简要描述,如查看、修改等,Andrid定义了一套标准动作。此外,还可以根据应用的需要,定义自己的动作,并

35、可定义相应的活动处理自定义的动作。其次,是执行动作要操作的数据,Andrid采用指向数据的一个URI方式实现。另外,除了动作和数据这两个重要属性外,还有一些附加属性:类别:被执行动作的附加信息。例如LAUNHER_ATEGR表示意图的接受者应该在Launher中作为顶级应用出现;而ALTERNATIVEATEGR表示当前的意图是一系列的可选动作中的一个,这些动作可以在同一个数据上执行。数据类型:显式指定意图的数据类型。一般意图的数据类型能够根据数据本身进行判定,但是通过设置这个属性,可以强制采用指定的类型。组:指定意图的目标组的类名称。通常Andrid会根据意图中包含的其它属性的信息,比如动作

36、、数据/数据类型、类别进行查找,最终找到一个与之匹配的目标组。但是,如果组这个属性有指定的话,将直接使用它指定的组,而不再执行上述查找过程。指定了这个属性以后,意图的其它所有属性都是可选的。附加信息:是其它所有附加信息的集合。使用附加信息可以为组提供扩展信息,比如,如果要执行“发送电子邮”这个动作,可以将电子邮的标题、正等保存在附加信息里,传给电子邮发送组。总之,动作、数据/数据类型、类别和附加信息一起形成了一种语言。这种语言使系统能够理解诸如“查看某联系人的详细信息”之类的短语。随着应用不断的加入到系统中,它们可以添加新的动作、数据/数据类型和类别扩展这种语言。应用也可以提供自己的活动处理已

37、经存在的这样的“短语”,从而改变这些“短语”的行为。332Andrid如何解析Intent在应用中,可以以两种形式使用Intent:(l)直接意图:指定了组属性的意图。通过指定具体的组类,通知应用启动对应的组。(2)间接意图:没有指定组属性的意图。这些意图需要包含足够的信息,这样系统才能根据这些信息,在所有的可用组中,确定满足此意图的组。对于直接意图,Andrid不需要去做解析,因为目标组已经很明确,Andrid需要解析的是那些间接意图,通过解析,将意图映射给可以处理此意图的活动、意图接收器或服务。意图解析机制主要是通过查找己注册在Andridanifestxl中的所有意图过滤器及其中定义的意

38、图,最终找到匹配的意图。在这个解析过程中,Andrid是通过意图的动作、数据类型、类别这三个属性进行判断的,判断方法如下:如果意图指明定了动作,则目标组的意图过滤器的动作列表中就必须包含有这个动作,否则不能匹配。如果意图没有提供数据类型,系统将从数据中得到数据类型。和动作一样,目标组的数据类型列表中必须包含意图的数据类型,否则不能匹配。如果意图中的数据不是ntent:类型的URI,而且意图也没有明确指定它的数据类型,将根据意图中数据的格式(比如http:或者ailt:)进行匹配。同上,意图的格式必须出现在目标组的格式列表中。如果意图指定了一个或多个类别,这些类别必须全部出现在组建的类别列表中。

39、比如意图中包含了两个类别:LAUNHER_ATEGR和ALTERNATIVE_ATEGR,解析得到的目标组必须至少包含这两个类别。34Andrid活动的生命周期Andrid平台是个手机作业系统。撇掉其他功能不谈,手机的特性,就是应该能随时在未完成目前动作的时候,暂停正在使用的功能,切换到接电话、接收短信模式,而且在接完电话回到应用程序时,还希望能看到一样的内容。现在用户使用智能手机,大多已习惯使用多工的作业系统(如indsbile),可以在用手机听音乐的同时,执行其他多个程序。同时执行多个程序有它的明显好处,但也有它的缺点。每多执行一个应用程序,就会多耗费一些系统内存,而手机里的内存是相当有限

40、的。当同时执行的程序过多,或是关闭的程序没有正确释放掉内存,系统运行时就会觉得越越慢,甚至不稳定。为了解决这个问题,Andrid引入了一个新的机制生命周期。Andrid应用程序的生命周期是由Andrid框架进行管理,而不是由应用程序直接控制。通常,每一个应用程序(入口一般会是一个活动的nreate方法),都会占据一个进程。当系统内存即将不足的时候,会依照优先级自动进行进程的回收。不管是使用者或开发者,都无法确定应用程序何时会被回收。关于进程的生命周期将在下一节中介绍,本节主要介绍活动的生命周期。一个活动类别除了nreate方法之外,还预先定义了nPause(暂停)、nResue(继续)等的基本

41、方法,当从一个活动切换到另一个活动的时候,原的活动将经过一连串的状态改变。开发者可以在程序中添加一些各状态相对应的流程,每次活动状态改变时,就会执行相对应的流程。要让用户有好的使用体验,活动需要在各个周期中负责保管状态、恢复状态、传送资料等工作。341活动的生命状态Andrid的虚拟机是使用堆栈管理。主要有四种状态:(l)活动状态活动状态是指用户启动应用程序或活动后,活动运行中的状态。在Andrid平台上,同一个时刻只会有一个活动处于活动或运行状态。其他的活动都处于未启动、停止或是暂停的状态。(2)暂停状态暂停状态是指当活动暂时暗下,退到背景画面的状态。当警告对话框或电话了时,都会让原运行的活

42、动退到背景画面。新出现的警告对话框等界面元盖住了原的活动画面。活动处在暂停状态时,用户无法与原活动互动。(3)停止状态停止状态是指有其他活动正在执行,而这个活动己经离开屏幕,不再动作的状态。通过按返回键,可以调出所有处于停止状态的应用程序列表。处于停止状态的活动,还可以通过通知唤醒。(4)已回收或未启动状态已回收或未启动状态是指活动尚未被启动、已经被手动终止或己经被系统回收的状态。要手动终止活动,可以在程序中调用finish方法。如果是被系统回收,可能是因为内存不足了,所以系统根据内存不足时的回收规则,将处于停止状态的活动所占用的内存回收。图3-1 Andrid活动生命周期图3-1所示的七个状

43、态又可以归纳成三组:(l)资分配(创建/销毁)完整的活动生命周期由创建状态开始,由销毁状态结束。创建时分配资,销毁时释放资。(2)可见与不可见(启动/重新启动/停止)当活动运行到启动状态时,就可以在屏幕上看到这个活动。相反地,当活动运行到停止状态时,这个活动就会从屏幕上消失。当用户按下返回键回到上一个活动时,会先到重新启动状态,再到一般的启动状态。(3)用户取得屏幕的控制权(继续/暂停)当有个警告对话框、短信、电话等信息进入时,原的活动会进入暂停状态,暂时放弃屏幕的控制权,被中断到背景去,将前景交给优先级高的事。当这些优先级高的事处理完后,活动就改进入继续状态,此时又取得屏幕的控制权。342活

44、动的运作流程由实际运行看,我们可以归纳出所有Andrid应用程序都遵循的运作流程:(l)一般启动启动一个活动的基本流程为nreate一>nstart一>nResue。该流程首先分配资给这个活动(创建状态),然后将活动的内容显示到屏幕上(启动状态);在一切就绪后,取得屏幕的控制权(恢复状态),用户可以开始使用这个程序。(2)调用另一个活动调用另一个活动的基本流程为npause(l)一>nreate(2)一>nstart(2)一>0nResue(2)一>nStp(l)。该流程首先冻结原的活动,再交出屏幕控制权;直到活动2完成一般启动流程后,活动1才会被停止。(3

45、)回到原活动回到原活动的基本流程为nPause(2)一>nRestart(1)一>nstart(l)一>nResue(1)一>nstp(2)一>nDestr(2)。另外按返回键也可以回到原的活动。(4)退出结束退出结束的基本流程为nPause一>nStp一>nDestr。如果程序中有直接调用finish方法关闭活动的话,系统会跳过先冻结的阶段,直接暂停,停止,然后销毁。()回收后再启动回收后再启动的基本流程为nreate一>nstart一>nresue。如果被回收掉的活动一旦又重新被调用时,会像一般启动一样再次调用活动的nreate方法。当

46、在模拟器上已经执行过多个应用程序,只要按下返回键,就会开启最近一次开启过的活动。这时要是按下多次返回键,理论上迟早会返回到某个已经销毁的活动。如果应该开启的活动己经被回收了,那么这个活动会再次被创建。再次被创建的活动,跟原开启过的活动是不一样的。所以如果要让再次被创建的活动跟原开启过的一样,那么在活动之间切换时,就要保存资料:即在每次活动运行到暂停或停止状态时先保存资料,然后在创建时将资料读出。4、手机播放器软设计实现41 系统设计需求411需求分析设计需要结合使用几种技术。Elipse平台:Elipse 是一个运行插的平台。可以下载安装 Elipse lassi 的最新版本。Andrid D

47、evelper Tls:按照安装说明安装 Andrid Develper Tls(Elipse 插)。代码:本设计中的代码片段包括:Andridanifestxl(片段) 这个是 Andrid 应用程序的应用程序部署描述符。IntentReeiver 演示 IntentReeiver 的实现,这个类处理 Andridanifestxl 中 IntentFilter 标记所公布的 intent。ainxl 这个包含 Andrid 活动所用的视觉元素或资。Rava 这个是由 Andrid Develper Tls 自动生成的,它把视觉资 “连接” 到 ava 代码。Andridanifestxl(

48、完整) 这是完整的 Andridanifestxl ,包含每个重要元素的描述。412下载开发资(l)首先打开网址http:/deggle/andrid/dnladhtl下载最新的AndridSD。国内基本是用inds系统,所以就选择inds版本的SD。下载后直接解压缩就可以使用,为了在控制台中直接使用SD中的工具,把SD目录添加到inds的path环境变量中。图4-1(2)接着打开网址http:/avasune/avase/dnlads/indexsp下D6。安装完后,设置D环境变量ava_he,lassPath,path)。(3)最后是打开网址http:/elipserg/dnlads/下载

49、Elipse32或33版本(开发Andrid的IDE)。413更新E1ipse并下载ADT(Andrid开发插)(1)启动Elipse,选择Help>sftare updates>find and Install。(2)弹出对话框后,选择Searh fr ne features t install,然后点击Next。(3)点击Ne Rete Site。(4)在编辑框中输入更新插的地址:https:/dl-sslggle/andrid/elipse/,点击。()看到一个更新的列表,点击Finish。(6)在返回的对话框中选择Andrid plugin>Elipse Integr

50、atin>Andrid develpent Tls并且点击Next。(7)选择Aept ters f the liense agreeent,点击Next。(8)点击Finish。(9)选择Install All。(10)重新启动Elipse。(11)重启后设置Andrid属性中的Andrid SD目录(不包括SD下的Tls):选择ind>Preferenes打开编辑属性窗口。选择Andrid属性面板。点击Brse,选择加入Andrid SD的目录。选择Appl,最后点击。414使用E1ipse开发Andrid应用使用Elipse IDE开发一个Andrid应用。首先是创建一个An

51、drid工程,然后设置应用启动配置。然后可以编辑代码,启动,调试应用。(l)创建一个Andrid工程。ADT插提供了一个新的工程向导帮助快速的建立Andrid工程和编辑现存的Andrid项目的代码。按照下面的步骤建立Andrid工程:选择File>Ne>pret。选择Andrid>Andrid pret,点击Next。设置工程的用途:选择reate ne pret in rspae可以建立一个新的Andrid工程,输入工程的名字,代码的开发包的名字,应用界面的类名字,应用程序的标题的名字。选择reate pret fr existing sure可以根据现存的代码建立一个工程

52、通过这个选项可以建立并运行现存的Ggle提供的Exaple Appliatin(在AndridSD的目录中可以找到)。点击Finish。ADT插将会为工程建立sr/代码存放的目录、res/资目录和Andridanifestxl应用工程的主配置。(2)创建Andrid虚拟机点击inds>andrid SD and AVD anager,选中Virtual Devies,选择ne按钮,填写需要创建的nae,并且选择Target,从Andrid1-22版本。填写虚拟机的sd卡内存(如设置size为26B),然后点击reate AVD。就完成对应版本的andrid虚拟机创建。图4-2(3)调试应

53、用程序。一旦建立了工程启动配置就可以按照如下的步骤调试程序:从Elipse的主菜单中选择Run>Run或Run>Debug或者点击工程右键选择run as>Andrid Appliatin。如果需要还可以重新配置启动参数,比如选择其他的程序界面作为启动的主界面。42手机播放器软程序中各类组421Paage Explrer中的组sr 夹包含示例应用程序的包RavaAndrid Develper Tls 自动创建这个,它提供访问 Andrid 应用程序的各种资所需的常量。res 夹包含应用程序的资,包括:图标,布局,字符串。Andridanifestxl422应用程序的资正如前面

54、提到的,Andrid 中的资放在项目的 res 子目录中。资分为三类:1Draables:这个夹包含图形,比如图标和位图。2Lauts:这个夹包含表示应用程序布局和视图的 XL 。后面会详细研究这些。3Values:这个夹包含stringsxl 。这是为应用程序实现字符串本地化的主要方法。423布局ainxl图4-3fill_parent使视图元素占满可用的空间。也可以认为这就是 “拉伸”。rap_ntent这个值让 Andrid 把元素一个接一个地排列,不进行拉伸。在构建期间对所有资进行编译。编译过程的输出之一是 Rava ,这个向应用程序的其余部分提供资。424Andridanifestx

55、l图4-4 Andridanifestxl是 Andrid 应用程序的部署描述符。这个列出应用程序中包含的所有活动、服务、内容提供器和接收器,以及应用程序支持的IntentFilter。43手机播放器软设计实现431系统主界面的实现本软开始执行后,便直接进入了系统的主界面,为了系统以后能扩展其他服务,故将主界面设置成一般界面,如图4-6所示。图4-图4-中是点击开始播放菜单,歌曲会自动播放,点击停止播放按钮点击后,歌曲会停止播放。主界面的总体实现过程如下:(1)首先创建布局。打开Laut里的ainxl,在这个布局里需要添加Buttn和四个TextVies的布局。整体布局采用的垂直型方式,单面嵌

56、套一个水平型方式的布局和相对型布局方式。(2)在程序一开始时,框架就反向调用nreate方法,也调用nliListener()。调用nreate()方法时,此函数首先正向调用父类别Ativit的nreate()方法,先执行父类别的预设行为,然后才执行自己(Andridservie)的nreate()方法的附加行为。继续执行到setntentvie(Rlautain)指令时,就去读取ainxl的内容,依据它进行屏幕画面的布局,并显示出。并可以在ainxl中设置背景图片。(3)其中在调用nliListener()方法时,执行到指令:图4-6(4)当选取<usi>选项时,有以下程序实现:

57、音乐播放的实现:图4-7432手机播放器功能实现软界面编辑:在ainxl中 设置TextVie,EditVie以及Buttn。并在Ativit01ava中进行配置,如图4-10:图4-8如图所示,usiserverava程序表达如下: 图4-9最后显示出xl中设置的内容,其内容体现在stringsxl中。 图4-10另外,在Rava中会对所有用到的类生成对应的id,在使用时直接调用id。最后,在Andridanifestxl中要对andrid nae,lable进行注册。代码为:图4-11433常见的错误分析解决当调试软完成后,对代码进行修改,在对程序就行第二次调试时,容易遇到下面的提示错误,AVD anager无法再次调试出程序:图2-12则可以用一下解决方案,进入到模拟器中,点击settings->appliatins->angeappliatins-> selet the appliatin->selet “uninstall”,将启动的手机音乐播放器手机播放器软删除掉,下次就可以成功启动。 9

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!