版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、毕业设计(论文)报告纸毕 业 设 计 说 明 书课题名称基于Android的记事本应用的设计与实现院 系计算机与软件学院专 业计算机多媒体技术班 级计媒1011学 号1002553136学生姓名 指导教师: 2013年 5 月 30日计算机与软件学院毕业设计(论文)诚信承诺 我谨在此承诺:本人所写的毕业论文基于Android的记事本应用的设计与实现,系本人独立完成,没有抄袭行为,凡涉及其他作者的观点和材料,均作了注释与说明,若有不实,后果由本人承担。承诺人(签名): 年 月 日毕业设计(论文)报告纸摘要随着移动通信与Internet的飞速发展及相互融合,GPRS使无线网络高速接入到Intern
2、et成为现实,移动用户从而可以享受到Internet提供的服务。这样,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。本文首先给出了应用研究背景,对当前手机操作系统发展做了简单的介绍。进而详细的分析了Android的特征、架构、以及Android应用的构成和工作机制,并对Android于其他手机操作系统进行了比较,说明了Android在手机操作系统中的优势。本系统采用Eclipse开发,使用SQLite数据库,主要用于手机记录使用,可以记录下人们认为比较重要的事情,帮助记忆较差的人们更好的记住某件重要的事或某个会议。使用该应用快速,便捷,很大程度上的帮助人们记忆力,不再担心会忘了某件重大
3、的事情,所以它又被称之为“便签”。在当今社会,手机记事本深受人们的喜爱。关 键 词:Android;Eclipse;SQLite;移动便签;移动客户端1毕业设计(论文)报告纸AbstractWith the rapid development of mobile communication and Internet and mutual fusion, GPRS high-speed wireless network access to the Internet to become a reality, mobile users can enjoy the services provided
4、by Internet. In this way, the mobile terminal is not only the communication terminal, also will become the Internet terminal. This paper gives the system the research background, the development of mobile phone operating system to do a simple introduction. Then a detailed analysis of the Android fea
5、tures, architecture, and the Android application structure and working mechanism of Android, and other mobile phone operating system are compared, the Android in the mobile phone operating system advantage. The system uses the Eclipse development, using the SQLite database, mainly used in mobile pho
6、ne records, can record the people think the more important things, better help poor people memory to remember something important or a meeting. The application of fast, convenient, largely with the help of memory, no longer worry will forget something important things, so it is also called the "
7、;notes". In today's society, mobile phone Notepad, loved by the people, especially the girls. Key Words:Android;Eclipse;SQLite;Mobile note ; Client1目 录摘要IAbstractII1 引言11.1 课题背景11.2 手机操作系统的发展现状21.3 主要智能手机操作系统的前景展望62.Android的架构分析82.1 Android特征82.2 Android架构92.2.1.关键应用程序92.2.2.应用程序框架102.
8、2.3.系统运行库102.3 Android应用的构成和工作机制112.4 Android与其他手机操作系统的比较122.5 Android的总结分析133 Android应用程序结构剖析143.1 Android的API143.2 Android应用程序结构解析153.2.1 活动Activity153.2.2 Intent163.2.3 服务163.2.4 Content Provider173.3 Intent详细解析173.3.1 Intent抽象描述173.3.2 Android如何解析Intent183.4 Android活动Activity的生命周期193.4.1活动的生命状态1
9、93.4.2活动的运作流程214.应用的总体框架234.1应用需求分析234.2应用主要功能概述234.2.1应用主界面244.2.2信息新建功能244.2.3信息修改,删除功能244.2.4信息分享功能244.2.5数据统计244.3记事本存储实现245详细设计与实现265.1记事本逻辑设计265.2.详细设计265.2.1研究目标265.2.2小鱼记事本功能流程图275.3应用程序功能实现275.3.1应用主界面实现过程285.3.2信息新建功能实现295.3.3下拉列表功能实现305.3.4信息保存功能实现315.3.5信息修改功能实现325.3.6信息删除功能实现345.3.7信息分享
10、功能实现355.4结束语36致 谢37参考文献38附 录 139IV1 引言1.1 课题背景随着移动通信的发展以及互联网向移动终端的普及,网络和用户对移动终端的要求越来越高,而Symbian,windows Mobile,Palm OS等手机平台过于封闭,不能很好的满足用户的需求,因此市场迫切需要一个开放性很强的平台。Android是一套真正意义上的开放性移动设备综合平台,它包括操作系统、中间件和一些关键的平台应用。Android是由Linux+Java 构成的开源软件,允许所有厂商和个人在其基础上进行开发。Android 平台的开放性等特点既能促进技术(包括平台自身)的创新,又有助于降低开发
11、成本,还可以使运营商能非常方便地制定自己的特色化的产品。因此,它具有很大的市场发展潜力。经过多年的发展,第三代数字通信( 3G)技术获得了广泛的接受,它为移动终端用户带来了更快的数据传输速率。随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的服务将会有很大的发展空间。 Google与包括中国移动、摩托罗拉在内的三十多家技术和无线应用的领军企业组成的开发联盟为此于2007年11月推出了一个专为移动设备设计的软件平台Android。Android最大特点在于它是一个开放的体系架构,具有非常好的开发和调试环境,而且还支持各种可扩展的用户体验,
12、Android里面具有非常丰富的图形系统, 对多媒体的支持功能和非常强大的浏览器。Android 是一套真正意义上的开发性的移动设备综合平台,它包括操作系统、中间件和一些关键的平台应用。Android 是由Linux+Java构成的开源软件,允许所有厂商和个人在其基础上进行开发。Android平台的开放性等特点既能促进技术(包括平台本身)的创新,又有助于降低开发成本,还可以是运营商能非常方便地制定自己的特色化的产品。因此,它具有很大的市场发展潜力。根据中国互联网信息中心(CNNIC)发布的第22次中国互联网络发展状况统计报告显示,截止2008年6月底,我国网民数量达到了2.53亿,首次大幅超过
13、美国,网民规模跃居世界第一位,其中手机网民达到7305万,手机上网成为网络接入的一个重要发展方向。本课题的目的在于掌握Java手机应用开发技术和移动软件平台开发技术。在以Java语言为基础,结合Android移动开发平台,并利用Android提供的SDK,完成在Android平台上运行的手机相册图片浏览器软件,形成一款具有一定浏览照片以及分享照片等功能的手机应用软件。本课题的意义在于通过开发一款简易手机相册浏览器的手机应用软件,可以熟练应用Android平台提供的应用程序接口,掌握Android平台上的各种应用。1.2 手机操作系统的发展现状智能手机操作系统的主要特点是其对用户具有一定的开放性
14、,这种开放性可集中体现在手机操作系统允许用户自行安装可兼容的应用软件。目前主要的智能手机操作系统有诺基亚主导的Symbian、Linux平台阵营(较具代表性的有诺基亚主导的Maemo、Google主导的Andriod以及LiMo联盟的LiMo平台)、微软的Widows Mobile、Apple的Max OS X、Palm的Palm WebOS以及RIM针对Blackberry手机的Blackberry OS等,除此之外,新的智能手机操作系统正陆续加入竞争行列,如三星公司刚刚发布了其自有智能手机操作系统Bada OS。根据源代码、内核和
15、应用环境等的开放程度,智能手机操作系统可分为开放型平台和封闭型平台两大类:Maemo、LiMo和Andriod属于开放型平台,当然这三者的开放程度有差异;而Widows Mobile、Mac OS X、Palm WebOS、Blackberry OS等都是封闭型平台,而Symbian则处于从封闭向开放转型阶段,2008年前Symbian处于封闭状态,2008年被诺基亚全资收购后转向开源,但基于开源Symbian的终端产品还没有上市。从智能手机出货量来看,全球智能手机操作系统市场保持稳步增长,根据IDC的统计报告,2009年第三季度全球智能手机出
16、货量达到了4330万部,不仅达到了单季出货量的历史新高,而且分别实现4.2和3.2的同比增长率和环比增长率。从市场格局上看,Symbian近两年市场份额持续下滑但目前仍然领先;Mac OS X和Blackberry OS近两年快速发展,两者合计市场份额已超过Symbian;Andriod进入2009年以来异军突起,市场份额上跟Widows Mobile的差距正不断缩小;Palm WebOS则始终无法取得新的突破,市场份额较小。据Garner针对2009年第三季度全球智能手机出货量的统计数据,Symbian市场份额从2008年同期的49.7%下滑
17、至44.6%;Windows Mobile市场份额为7.9%,同比下滑28%;而Mac OS X市场份额从2008年同期的12.9%上升至17.1%;Blackberry OS市场份额也从2008年同期的16%增至20.8%;Android的市场份额则快速上升到3.9%并超过Palm WebOS。(1)SymbianSymbian公司最初于1998年由诺基亚、爱立信、摩托罗拉和Psion合资成立,随后Sony、松下等公司陆续加入。自2000年首款基于Symbian操作系统的手机上市后,Symbian平台目前已发展到9.X版本,而且具有Serie
18、s60、Series80、Series90和UIQ等多种针对不同硬件平台的界面,其中Series60是应用最广、市场占有率最高的界面产品。Symbian的发展优势基于手机操作的长期优化积累以及诺基亚等在智能手机市场领先的终端厂商支持,而且Symbian还拥有广泛的软件/应用开发支持,但是由于系统代码、体系结构等特点,Symbian对新的手机硬件(如高速处理器、大尺寸屏幕)和软件(如Firefox等第三方浏览器)支持已显乏力迹象。基于往互联网公司转型等战略考虑、诺基亚2008年利用其在Symbian终端市场份额上的绝对优势全资收购了Symbian,为了应对Andriod开源模式并降低其它原Sym
19、bian公司股东反对诺基亚全资收购的阻力,诺基亚同时宣布Symbian转向开源发展。然而,Symbian开源的实际进程相当缓慢,除了诺基亚不够积极外,其它终端厂商出于竞争目的(毕竟诺基亚是直接的竞争对手)也缺乏大力支持Symbian的意愿,索爱、摩托罗拉等原Symbian阵营的重要力量都已转向Windows Mobile和Andriod等平台。整体上看,Symbian已进入发展调整期,诺基亚的策略、自身开源的进程等都将影响其未来发展。(2)Mac OS X随着iPhone的更新换代,Mac OS X目前已发展到第三代的3.X版本。作为iPhon
20、e专用的手机平台,Mac OS X能够有效支持iPhone的硬件并具有较强的娱乐功能/应用和互联网访问支持。另外,2008年7月Apple公司开通了针对iPhone的应用软件商店APP Store,从而提升了Mac OS X的影响力。在iPhone的良好销售量推动下,APP Store取得了快速发展,截至2009年11月底,App Store内的软件数量已经超过10万款,市场覆盖包括中国在内的77个国家和地区,参与软件开发计划的开发者和开发商数量则超过12.5万。在APP Store的共20类软件中,游戏类、娱乐类
21、和书籍类处于前三位,分别占19.4、16和11.7。综合来看,Mac OS X是现阶段在娱乐和互联网应用方面相对领先的手机平台。(3)Blackberry OS近两年Blackberry在智能手机市场的份额之所以增长迅速,除了RIM的手机邮件服务保持了竞争力外,Blackberry手机不断丰富的功能和应用也是主要的驱动因素。2009年4月,RIM公司开通了针对Blackberry手机的应用商店,RIM对应用商店采取了比Apple的APP Store更优惠的收入分成政策,软件/应用销售收入的80归开发者(高于APP Store的70相应分成比例)
22、,剩下的20由RIM与通信运营商进行再分成。从功能来看,Blackberry OS的优势在于商务和集成应用上,而对游戏等娱乐功能的支持要稍弱于Mac OS X,不过,这些都是RIM对Blackberry手机的主要定位所根本决定的。(4)Linux阵营由于Linux一开始就采取开源模式,基于Linux的智能手机平台种类较为丰富,但由于长期缺乏主流的产业领导力量,Linux阵营内部分化严重,各厂商开发的手机平台互不兼容,这反而弱化了Linux阵营在智能手机平台领域的影响力。然而,自从LiMo和OHA两大Linux联盟成立后,Linux阵营正开始进入重新整合的新发展阶段
23、。LiMo成立于2007年1月,成员包括终端厂商、移动运营商、芯片制造商及其他相关企业,截至2009年10月底,基于LiMo平台的手机累计上市44款。然而,LiMo平台只面向联盟成员公开,并非完全的开放。与LiMo相比,OHA及其主推手机平台Andriod的发展速度更快。2007年11月Google发起成立OHA并宣布推出手机平台Andriod,目前OHA的成员已超过50家,其中相当部分成员也是LiMo的成员。2008年10月,随着第一部基于Andriod的手机(即HTC的G1)上市,Andriod也开始了正式商用。从正式商用的1.1版本起,Andriod已经历1.5、1.6、2.0等重大版本
24、的升级改进,而基于Andriod的终端型号也在加速丰富,2008年底Andriod手机只有几款,到2009年8月底已经增加到42款,而到2009年10月已经超过80款。从手机销售看,截至2009年8月底,全球Andriod手机已销售超过300万部,按照目前的销售速度,到2009年底的累计销售数量将达到650万部,届时其在智能手机市场的份额将进一步提高。在应用开发方面,2008年google针对Andriod移动终端平台建设了Andriod Market应用商店,经过一年的发展后,目前Andriod Market的应用已经超过2万个,虽然这还远远落后于APP Sro
25、re,但随着Andriod 手机销量的不断增长,Andriod Market的潜力仍不可忽视。(5)Windows MoblieWindows Moblie的前身WinCE早在1996年就已推出,微软也曾一度在智能手机终端操作系统市场领先,但后来由于缺乏持续的有力投入,尤其近两年遇到Mac OS X和Andriod等新兴的竞争对手,Windows Moblie的市场份额在不断下滑。Windows Moblie处于竞争劣势的因素主要有:首先是微软作为纯软件公司对芯片、终端等制造环节的影响力还比较有限,而且Window
26、s Moblie较高的授权费用降低了其对终端厂商的吸引力;其次是Windows Mobile应用丰富性也落后于Symbian、Mac OS X和Andriod等平台:虽然微软在个人PC操作系统市场拥有近90的份额并拥有对主流应用的较强把控能力,但由于手机处理器、屏幕等跟PC存在较大差异,大部分PC上的软件应用无法直接在Windows Moblie手机上运行,而微软过去长时期内也一直缺乏对Windows Moblie应用开发的主动有力支持,尽管2009年10月微软终于开通了Windows Moblie应用商店,可这个商店暂时只
27、支持Windows Moblie6.5版本,对Windows Moblie目前最常用的6.1版本还不能支持,而且商店的功能、对开发者的支持等都跟APP Store有一定差距,因此截至2009年11月商店中的应用程序仍不到500个。(6)Palm Web OSWeb OS是Palm公司最新的智能手机Palm Pre的操作系统,Palm Pre是早于iPhone 3GS上市的采用双核处理器的高端智能手机,但由于Palm手机的市场影响力主要在美国市场,而且合作运营商Sprint的较差业绩一定程度上影响了Palm
28、 Pre的销售,这些都阻碍了Web OS提高自身在智能手机操作系统市场的份额。2009年9月Palm公司开通了针对基于Web OS平台的应用商店App Catalog,而且采取跟APP Store相同的收入分成政策,但手机销售量的有限使业界的响应较为平淡。(7)小结从整体来看,在目前智能手机操作系统市场中,Symbian依靠前期的基础仍暂时处于市场领先地位,Mac OS X和Blackberry OS依靠终端热销使市场份额持续稳步提升,Andriod代表的Linux阵营依靠开源的优势正异军突起,而Windows
29、160;Moblie由于授权费、应用商店滞后等因素暂时面临较被动的竞争形势,Palm WebOS则还在为避免被市场边缘化而努力。1.3 主要智能手机操作系统的前景展望作为智能手机产业链的一个环节,操作系统市场的演变受到操作系统自身发展、终端厂商参与力度、应用丰富程度、电信运营商的支持等因素影响,因此,可以从手机操作系统自身发展、市场走向以及产业格局等方面去综合看待现有主要智能手机操作系统的前景。首先,从操作系统自身发展的角度看,性能、功能及兼容性仍是各种平台竞争的焦点。随着1Ghz处理器、4寸以上高分辨率屏幕以及大容量存储器的不断普及,良好支持最新的硬件已成为智能手机操作系
30、统应具备的基本特点。在手机和业务功能支持上,由于良好的软硬件整合能力是影响功能研发和体验的重要因素,预计Mac OS X、Blackberry OS等平台由于其所有者拥有终端、平台产品并掌控应用环节,将在功能创新上获得一定的有利地位。兼容性问题是一直困扰智能手机操作系统的共同问题,不仅现有不同平台互不兼容(即应用需要为不同平台开发不同的版本),相同平台的不同版本往往也无法实现后向兼容,针对老版本平台开发的应用软件无法在新版本平台上运行的情况比比皆是,而从桌面PC操作系统的发展发展实践看,相同平台下保持一定周期的后向兼容性是非常必要的,因此首先有效解决兼容性问题的平
31、台将有望在应用环节取得竞争优势。其次,从市场走向来看,未来一段时期内智能手机操作系统市场被若干主要产品瓜分的可能性较大,这是由各产品都有优劣势和各自代表的产业链都具相当实力的特点所决定的。Symbian面临开源进程缓慢、自身性能/功能趋向落后以及跟诺基亚关系处理等一系列问题,要重新取得当初的绝对领先地位难度很大。作为封闭系统,Mac OS X、Blackberry OS、Palm OS的市场表现完全取决于其终端销售情况,无论从Apple和RIM的公司实力还是其终端产品线看,这三个平台都将面临现实的发展边界问题(即市场份额上升到一定数量级后就难以继续提高)
32、。Linux阵营由于开源特点以及较良好的应用开发基础,如果能够有效地解决产业链整合以及开源带来的版本众多、兼容性难以保障等问题,其市场潜力将有望加速被释放。Windows Mobile的发展前景不容乐观,作为一种封闭、需要收取较高授权费、其所有者缺乏终端产品而且平台性能跟领先者存在相当差距的平台,Windows Mobile跟上述操作系统竞争都在不同方面存在劣势,近两年其市场份额不断下滑已验证了这一点,要扭转这种不利的发展态势,Windows Mobile需要在改革授权制度、加快新产品上市、加强应用开发支持等方面综合努力。最后,结合整个智能手机及相关产业格局看,未
33、来各方力量会围绕智能手机操作系统展开新的持续竞争和博弈。由于其所有者的终端销售业绩良好及应用环境建设较为顺利,Mac OS X、Blackberry OS预计将维持现有封闭而且从终端操作系统应用全环节掌控的发展模式。Andriod发展初期受部分功能不完善、应用较薄弱等因素影响,相当有实力的终端厂商持观望态度,而态度较积极的普通终端厂商又受技术研发实力制约面临较高的进入门槛;但随着Andriod在2009年加速完善,不仅越来越多的主流终端厂商加入,而且不少生产灰色手机的终端厂商也在积极研发基于Andriod的终端,Andriod手机有可能成为未来灰色智能手机市场的重
34、要力量。另外,中国移动基于Andriod开发了自有手机操作系统OMS并建设了与之对应的应用商店Mobile Market,从而力求在电信运营商围绕移动互联网的竞争中取得主动,但由于Andriod本质上由Google主导,而OMS由中国移动主导,这两种产品运作模式的关系仍有一些不清晰的地方,例如,Andriod仍在快速升级版本,OMS的升级速度则比较缓慢,未来Andriod跟OMS之间的兼容性就不容乐观,OMS也会沦为事实上半封闭的系统,也正是这些原因,其他运营商对中国移动的OMS模式仍持观望态度。Symbian虽然在开源及未来发展方面有一定不确定性,但一旦顺利进入开源发展阶段,由于S
35、ymbian拥有较良好的主流硬件平台支持、成熟的程序开发基础及丰富的免费应用,如果届时采取免费授权策略,Symbian会对普通终端厂商采用其研发入门级的智能手机有相当的吸引力,而部分运营商也可能基于Symbian开发自有的手机平台并建设与之相当应的应用软件环境,这也跟中国移动在OMS上的举措类似。Palm OS封闭但功能较完善而且在美国市场有一定影响力的特点,使其对强势的电信运营商、终端厂商都会产生一定的吸引力:强势的电信运营商可通过收购Palm OS作为真正自有的智能手机主流平台并建设相应的应用环境,以提升自身在移动互联网领域的主动权,而原来在智能手机市场表现一般甚至尚未
36、大规模介入的终端厂商,如果收购获得Palm OS则有望缩短操作系统研发以及竞争力形成的周期。2.Android的架构分析Android是一个移动设备的软件平台,是由Linux+Java构成的开源软件,它提供包括SDK、Key Apps、Middleware、Linux Kernel四个部分在内的全套手机软件方案。它开放了基于Linux内核以上的开发工具,从而保证了内容的可移植性和多样性。Android平台为我们开发应用程序提供了一套很好的框架,我们可以在这个平台的基础上开发不同的应用程序,也可以开发新的组件供应用程序调用。2.1 Android特征应用框架:用于开发可重用、可替代的组
37、件。Dalvik虚拟机:Android采用的Java虚拟机是自主开发的代号为Dalvik的虚拟机技术,在保证API方面兼容的同时Dalvik针对移动手机进行了大幅优化,占用资源更小,运行效率更高。内嵌浏览器:基于开源的浏览器网页排版引擎WebKit。优化的图形:强大的自定义二维图形库。基于OpenGL ES 1.0标准的3D图形功能,在移动3D开发中有着至关重要的地位。SQLite数据库:SQLite提供结构化的数据存储。它是一款轻型免费的且开源的数据库,它的设计目标是嵌入式的,它占用的资源非常低、需要的内存空间少、处理速度比较快和支持事务处理功能等。多媒体支持:支持各种通用的音频、视频和静态
38、图像格式,如MP3、JPG、PNG等。Open Core是Android多媒体框架的核心,所有Android平台的音频和视频采集、播放的操作都是通过它来实现的。通过Open Core,程序员可以方便快速的开发出想要的多媒体应用程序。GSM技术:(依赖硬件)Global System for Mobile Communications,全球通讯系统,俗称“全球通”,是第二代移动通信技术,其开发目的是让全球各地可以共同使用一个移动电话网络标准,让用户使用一部手机就能行遍全球。蓝牙,EDGE,3G and WiFi:(依赖硬件)蓝牙和Wi-Fi都是一种短距离的无线连接技术,在短距离内可以实现话音和数
39、据的无线传输。EDGE(Enhanced Data Rate for GSM Evolution),是增强型数据速率GSM演进技术。Cameram,GPS,compass,andaccelerometer:(依赖硬件)GPS(Global Positioning System),即全球定位系统。它是由一个由覆盖全球的24颗卫星组成的卫星系统。Compass是一个开放源码的Java搜索引擎框架。强大的开发环境:包括一个设备模拟器,调试工具,内存和性能检测,以及Eclipse IDE的开发插件。Eclipse是个集成开放环境。2.2 Android架构Android的架构是由Linux内核、C/C
40、+函数库、Dalvik虚拟机、应用框架以及关键应用程序构成的。通过编译基于框架的应用程序可以降低开发负荷。应用软件原则上是在DalvikVM上运行的。 图2.1 Android架构2.2.1.关键应用程序 Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。2.2.2.应用程序框架开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框
41、架的安全性限制)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。隐藏在每个应用后面的是一系列的服务和系统, 其中包括; 丰富而又可扩展的视图(Views),可以用来构建应用程序, 它包括列表(lists),网格(grids),文本框(text boxes),按钮(buttons), 甚至可嵌入的web浏览器。 内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库), 或者共享它们自己的数据 资源管理器(Resource Manager)提供 非代码资源的访问,如本地字符串,图形,和布局文件( layout files )。 通知管理
42、器 (Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。 活动管理器( Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。2.2.3.系统运行库 1)程序库Android 包含一些C/C+库,这些库能被Android系统中不同的组件使用。它们通过 Android 应用程序框架为开发者提供服务。以下是一些核心库: 系统 C 库 - 一个从 BSD 继承来的标准 C 系统函数库( libc ), 它是专门为基于 embedded linux 的设备定制的。 媒体库 - 基于 PacketVideo OpenCORE;该库
43、支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括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
44、)字体显示。SQLite - 一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。 2)运行库Android 包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。 每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。 Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,然后通过SDK中 的 "dx" 工具转化成.dex格式由虚拟机执行。Dalvik虚拟机
45、依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。2.2.4.Linux内核Android 的核心系统服务依赖于 Linux 2.6 内核,如安全性、内存管理、进程管理、网络协议和驱动模型。Linux 内核也同时作为硬件和软件栈之间的抽象层。 2.3Android应用的构成和工作机制Android应用程序来说,是由Activity、Intent Receiver、Service、ContentProvider四部分组成,但并不是每一个Android应用程序都必须由这四部分组成。在应用程序中使用时,需要在配置文件Android应用程序中所必需的,用于定义应用程序的组件、组件的功能以
46、及必要条件等。Android应用的构成和工作流程图如下:图2.2 Android的构成和工作流程2.4 Android与其他手机操作系统的比较我们主要从手机操作系统的移植性(Portablity)、可靠性(Reliability)、连通性( Connectivity)、产品多样性(Product Diversity)、开放性( Open Platform)、可伸缩性( Kernal Size)、安全性(Standards、Security)和特殊性(Special Features)这九个方面进行了比较,具体的比较结果如下表:表2.1 android与其他手机系统的比较对上表比较的九项每一项以
47、1分、0.5分、0分三个级别来进行了评分,综合各项评分,最好得到的评分结果是Android 8.5分、Windows mobile 5.5分、Symbian6.5分。Android基于开源的Linux以及标准的跨平台的编程语言Java,而且源代码开放,并且免费允许所有厂商和个人在其基础上进行开发,其开源和免费政策将赢得不少手机制造商的支持。而且在其平台上集成了不少优秀的开源工程,如Webkit、OpenGL等,相信在不久,将会有更多的优秀工程加入到Android中来。相比其他手机操作系统过于封闭的特性来说,Android在手机操作系统领域将会占有很大的优势,其功能也将会越来越强大。2.5 An
48、droid的总结分析 本章对Android平台的特征、架构以及Android应用的构成和工作机制进行了详细的分析。对于Android应用程序来说,主要由Activity、 Service、 Intent Receiver和Content Provider四部分组成,但并不是对于每一个应用程序,这四部分都是必须的。Activity是应用程序中最重要的一种构成块,我们对其进行了详细的分析,包括Activity的生命周期以及Activity之间的切换。最后对Android与其它的手机操作系统从九个方面进行了比较,说明了Android的优势。3 Android应用程序结构剖析3.1 Android的A
49、PIAndroid API主要包含了以下几个部分: (1)AndroidManifest.xmlAndroidManifest.xml是系统的控制文件,它告诉系统如何处理所创建的所有应用组件(尤其是活动(Activity),服务(Service),意图接收器(Intent Receiver)和内容提供者(Content Provider)。举例来说,控制文件就是把活动和要接收的意图(Intents)连接在一起的“胶水”。(2)活动活动就是一个有生命周期的对象。一个活动就是完成某些工作的代码块,这部分工作还可能包括对用户UI界面的显示。不过这不是必须的,有些活动从不显示UI界面。(3)视图视图可
50、以将其自身绘制到屏幕上。Android的用户界面由一系列的视图树构成。接口都是由一组以树的形式出现的视图组成的。开发者可以通过创建一个新的视图的方法来使用自定义的图形处理技术(比如开发游戏,或者是使用了不常用的用户图形窗口界面)。(4)意图意图是一个简单的消息对象,它表示程序想做某事的“意图”。比如应用程序想要显示一个网页,那么它可以通过创建一个Intent实例并将其传递给系统来表示意图浏览这个URI。系统将定位到能处理这一Intent的代码(在当前情况下就是浏览器),并运行之。意图也可以用于广播系统范围内的有效事件(例如通知事件)。(5)服务服务是运行在后台的一段代码。它可以运行在它自己的进
51、程,也可以运行在其他应用程序的进程里,这取决于自身的需要.。其它的组件可以绑定到一个服务上来,通过远程过程调用(RPC)来调用这个方法。例如媒体播放器的服务,当用户退出媒体选择的界面时,仍然希望音乐依然可以继续播放,这时就可用服务来保证当用户界面关闭时音乐还继续播放着。(6)通知通知将以小图标的形式呈现在状态栏里,用户通过与图标的交互来接收消息。最常见的通知包括短信息、通话记录和语音邮件,但是应用程序也可以创建它们自己的通知事件。 (7)内容提供者内容提供者是用来提供对设备上数据进行访问。典型的例子就是使用内容提供者来访问联系人列表。应用程序也可以使用其它程序通过内容提供者提供的数据,同时也可
52、以定义自己的内容提供者来向其它应用提供数据访问服务。3.2 Android应用程序结构解析通常由以下四个组件来构建一个完整的Android应用程序。活动Activity意图接收器Intent服务Service内容提供者Content Provider然而,并不是所有的Android应用程序都必须具备上面的四个组件,可以由上面的一个或几个来组建。当决定使用以上哪些组件来构建Android应用程序时,需要将它们注册在AndroidManifest.xml文件中,这是一个XML配置文件,在这个文件中可以声明应用程序组件以及它们的特性和要求。这个配置文件是每个Android应用程序所必需的。3.2.1
53、 活动Activity活动是以上四个组件中最常用的一个。每个活动都是Activity的子类,并实现了一些独有的功能,如管理UI显示和UI的反馈事件。一个活动就相当于应用程序的一个用户界面,由事件响应以及视图等组成。大多数的应用程序通常包括多个界面。例如:一个文本聊天应用程序,至少应该包含一个联系人列表界面、一个聊天界面、一个设置界面、一个聊天记录查询界面等等。每个界面其实都可看作是一个活动。显示一个新界面就相当于生成一个对应的活动对象。在一些情况下,活动能够返回给它的上级界面一个返回值,例如一个提供给用户选择照片的活动可以返回给它的调用者用户选择了哪个照片文件。当一个新的活动出现时,前一个活动
54、被中断并被放入到一个历史堆栈中。用户可以使用返回键使前一个活动重现。当一个活动不再需要时,可以将它们从历史堆栈中移除。默认情况下,Android会为每个应用程序保留从主界面开始的历史堆栈。Android通过一个被称作意图的特殊类,来实现界面与界面之间的跳转。一个意图描述了一个应用程序想要做什么。在意图的描述结构中,含有两个重要的数据结构:动作和动作对应的数据。典型的动作类型包括MAIN、VIEW、PICK、EDIT等等,而动作对应的数据则以URI的形式表示。例如:显示一个联系人信息的界面,可以创建一个意图,并将它的动作设置成VIEW,数据设置成表示这个人信息的URI。除此之外,还有一个被称作意
55、图过滤器(IntentFiher)的相关类。当发生一个有效的目的请求时,意图过滤器用来描述一个活动能够处理什么意图。如上例中所描述,想要正常显示一个联系人信息的界面,必须声明一个意图过滤器,它说明当有联系人数据要被在界面上显示时,知道如何处理它们。通常意图过滤器要被注册在AndroidManifest.xml文件中。从一个界面跳转到另一个界面是由解析各种意图实现的。例如:一个活动使用startActivity(myIntent)来调用其他活动时,系统会查找所有已经安装的应用程序的意图过滤器,并从中挑选出能够匹配myIntent意图的活动。随后,这个新的活动接收到意图(myIntent)的通知并
56、开始运行。当startActivity方法被调用,解析意图的处理过程随之发生,这个机制有以下两个突出的优点:活动可以通过一个以意图形式产生的请求来重用其他组件的功能。活动可以在任何时候被一个具有等价意图过滤器的新活动所替代。3.2.2 IntentAndroid用Intent类来实现在Activity与Activity之间的切换。在Intent的描述结构中,有个两个重要的部分:动作和动作对应的数据。典型的动作类型有MAIN、VIEW、PICK、EDIT等,而动作对应的数据则以URL的形式表示。3.2.3 服务Service即"服务"的意思,既然是服务,那么Service将是
57、一个生命周期长而且没有用户界面的程序。比如一个正在从播放列表中播放歌曲的媒体播放器,在这个媒体播放器应用中,应该会有多个activity,让使用者可以选择歌曲并播放歌曲。然而,音乐重放这个功能并没有对应的activity,因为使用者会认为在导航到其他屏幕时音乐应该还在播放。在这个例子中,媒体播放器这个activity会使用Context.startService()来启动一个service,从而可以在后台保持音乐的播放。同时,系统也将保持这个service一直执行,直到这个service运行结束。另外,我们还可以通过使用Context.bindService()方法连接到一个service上(
58、如果这个service当前还没有处于启动状态,则将启动它)。当连接到一个service之后,还可用service提供的接口与它进行通讯3.2.4 Content Provider在Android中,每个应用程序都是有自己的userID及在自己的进程中执行。这样做的好处是,可以保护系统及应用程序,避免被其他不正常的应用程序所影响。可以把每个进程想像成是一个黑盒子,彼此不会互相影响,连内存的资料都无法共享。如果应用程序之间想要共享数据,就需要使用用内容提供者。一个内容提供者就是一个类,它实现了一个标准的方法集合。其他的应用程序可以使用这些方法来保存和检索此内容提供者处理过的数据。3.3 Intent详细解析在一个Android应用中,主要是由四种组件组成的,这四种组件可参考上一节的内容。而这四种组件是独立的,它们之间可以互相调用,协调工作,最终组成一个真正的Android应用。在这些组件之间的通讯中,主要是由意图协助完成的。意图负责对应用中一次操作的动作、动作对应的数据、附加数据进行描述,Android则根据此意图的描述,负责找到相应的组件,将意图传递给它,并完成组件的调用。因此,意图在这里起着一个媒体中介的作用,专门提供组件之间互相调用的相关信息,实现调用者与被
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 抖音运营工作制度
- 护士查对工作制度
- 护理核心工作制度
- 换药班工作制度
- 控制学生工作制度
- 提前预防工作制度
- 摸底排查工作制度
- 支部经费工作制度
- 放松室工作制度
- 2026年航运业综合管理岗位面试题及答案解析
- 人教统编版六年级语文下册第二单元《习作:写作品梗概》公开课教学课件
- 2026年3月山东济南轨道交通集团运营有限公司社会招聘备考题库附参考答案详解(典型题)
- 2026内蒙古环投集团社会招聘17人笔试备考试题及答案解析
- 2026年高考物理二轮复习:专题16 热学(复习讲义)(全国适用)(原卷版)
- TSG 08-2026 特种设备使用管理规则
- 2026年安徽粮食工程职业学院单招职业技能考试题库附答案详细解析
- DBJ-T36-073-2026 江西省装配式建筑评价标准
- 建功新时代做一名合格的共青团员
- JJF 1059.1-2012测量不确定度评定与表示
- 河北唐山遵化经济开发区工作岗位竞聘【共500题含答案解析】模拟检测试卷
- 第二章 运动的守恒量和守恒定律
评论
0/150
提交评论