ImageVerifierCode 换一换
格式:DOC , 页数:6 ,大小:477.50KB ,
资源ID:7329660      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-7329660.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Android架构简介林明祥(222008315222136).doc)为本站会员(kpmy5893)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

Android架构简介林明祥(222008315222136).doc

1、Android 架构简介摘 要:当今第三代数字通信(3G)技术获得了广泛的接受,为移动终端用户带来了更快的传输速率。移动终端不再仅仅是通信网络的终端,还成为了互联网的终端。在这样的背景下,移动终端的应用程序和需要的服务将会有一个很大的发展空间,而现在越来越普及的 android 也具有广大的发展前景。关键词:移动终端 android 应用程序1 引 言2007 年 11 月,Google 牵手有 30 多家移动技术和无线应用领域领先企业组成的开放手机联盟(Open Handset Aliance),公布了其智能手机平台Android,Android 是一个真正意义上的开放移动设备综合平台,它包

2、括操作系统、用户界面、中间件和应用程序,拥有移动电话工作所需要的全部部件,Android 的最大特点在于它是一个开放的体系架构,具有非常好的开发和调试环境,而且还支持各种可扩展的用户体验,Android 里面还具有非常丰富的图形系统,对多媒体的支持功能和非常强大的浏览器。Android 平台的开放性等特点既能促进技术(包括平台自身)的创新,又有助于降低开发成本,还可以使运营商能非常方便的定制特色化产品,因此它有着非常大的市场发展潜力。2 Android 的架构2.1 Android 系统的功能特性在硬件的支持下,Android 系统拥有以下功能特性:1有一套应用程序框架,支持各个组件的利用和替

3、换。2基于 Dalvik 虚拟机,专为移动设备上的 Java 运行作优化。3内置基于 Webkit 引擎的浏览器。4拥有优化的图形处理机制,包括可自定义的 2D 图形库和 3D 图形库,并且可选开启硬件加速。5可用 SQLite 存储结构化数据。6支持常见的音频、视频以及图片格式(如 MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF) 。7支持 GSM 协议。8支持蓝牙、EDGE、3G 以及 WIFI9支持摄像头、GPS、电子罗盘以及加速度感应。10拥有完善的开发环境,包括模拟器、调试工具、性能分析工具以及 Eclipse 插件。2.2 Android 的架

4、构下图是 Android 官方给出的架构图,从图中我们可以看到,Android 系统可分为五个部分,下文中将详细介绍各个部分:2.2.1 应用程序Android 系统内置一套核心应用程序,如联系薄、电话程序、短消息程序、日历、地图等。这些应用都是用 Java 语言开发的,此外,开发人员还可以使用 Android 的 SDK 开发各种各样的应用程序运行在这一层上。2.2.2 应用程序框架Android 的这一套应用程序框架主要优点就是增强了复用性。在程序框架安全机制的约束下,开发人员可以发布自己的组件,也可以使用其它应用程序中的组件。例如假设我们开发的一个音乐播放器中有一个播放列表的组件,那么在

5、另外一个视频播放器中,就可以直接调用这一个播放列表组件。这一特性在随后的应用开发一章中我们还将详细介绍。应用程序都运行于应用程序框架之上,一般情况下,应用程序会用到以下 Android 自带的组件:1.View 组件。Android 中的 View 组件种类繁多而且可扩展性强,类似于 HTML 中的各种标签,可以提供各种视图元素,如列表、输入框、按钮、内嵌的浏览器等。2.Content Provider。通过 Content Provider,应用程序可以把自己的数据共享给别的应用程序,也可以使用其它程序共享出来的数据。3.Resource Manager。通过它,应用程序就能访问各种资源,如

6、图片、布局文件、字符串资源等。4.Notification Manager。它负责向为应用程序向发户发出通知。通知的方式有许多种,如在窗口中的状态栏显示、振动手机、发出响铃等。5.Activity Manager。它管理应用程序的生命周期,处理程序的启动、退出、运行等状态。2.2.3 库Android 包含一套 C/C+库,可以为 Android 程序提供各种功能。这些功能通过Android 应用程序框架暴露给上层的开发人员。常用的核心的库有下面这一些: 1System C library - 这是一个专门为嵌入式的基于 Linux 的设备优化过的标准 C 库。2Media Libraries

7、 - Android 内的多媒体库基于 OpenCORE;支持多种流行的音频和视频格式和静态图形文件格式(包括 MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG )的播放和录制。3LibWebCore - 这是一个流行的浏览器引擎, Android 的浏览器和嵌入到应用程序中的 Web View 都是由它驱动的。4SGL - 底层的2D 图形引擎53D libraries - 它基于 OpenGL ES 1.0 API 实现; 如果硬件支持的话,它可以使用硬件3D 加速,即使没有硬件支持,它也可以使用内置的、高度优化的3D 软件加速。6FreeType - 这

8、是一个使用十分广泛的开源位图和矢量字体渲染库。7SQLite - SQLite 是一个使用越来越广泛的轻量级开源数据库引擎,在嵌入式设备上运用十分广泛。Android 程序可以使用 SQLite 来存储结构化的数据。2.2.4 Android 运行时 (Android Runtime)Android 的运行时实际上包括核心类库和 Dalvik 虚拟机两部分。核心类库包括了最基本的类库,如 data structure, network, Utilities, File system 等的,很多实现代码都是来自Apache Harmony 项目,主要目的是保证虚拟机的类库能够和 Java SE

9、的类库最大可能的兼容,从而降低应用开发者从 Java SE 阵营转移到 Android 开发阵营的难度,增加其可用性。Dalvik 虚拟机主要是完成对象生命周期的管理,堆栈的管理,线程管理,安全和异常的管理,以及垃圾回收等等重要功能。在 Android 中,每一个应用程序的进程都会运行在一个独立的 Dalvik 虚拟机中。Dalvik 是 Android 系统的一个关键部件,开发人员为其作了大量有针对性的优化工作,从而保障了 Android 系统的运行效率。鉴于 Dalvik 虚拟机的重要性,下文我们还将详细介绍 Dalvik。2.2.5 Linux 内核Android 的许多核心系统服务都建

10、立在 Linux 之上,例如内存管理、进程调度、网络协议栈、安全管理以及驱动程序(如 WiFi 设备驱动、闪存驱动、键盘驱动、摄像头驱动等) 。Dalvik 虚拟机就直接依赖下层的 Linux 内核来实现线程管理、低级内存管理这些功能。同时 Linux 内核还负责把下层的硬件抽象出来,形成一个硬件抽象层,为上层的软件提供了一套与硬件无关的接口。也正是因为这样,Android 才得以充分利用 Linux 的易移植性实现了它跨平台的目标。但是同时 GNU Linux 里的许多功能 Android 都没有支持,包括Cairo, X11, Alsa, FFmpeg, GTK, Pango, Glibc

11、 等都移除掉了。而且 Android 还以 bionic 取代Glibc, 以 Skia 替换了 Cairo, FFmpeg 也被换成了 opencore 。 2.3 Dalvik 虚拟机Dalvik 是 Android 系统的一个关键组件,对它的深入了解有助于我们理解 Android 开发者构思整个系统的思路。Dalvik 是由 Dan Bornstein 为 Google 开发的,这个名字也是他的祖先曾经居住过的一个村庄的名字。作为 Android 系统中的 Java 虚拟机,Dalvik 很好地解决了版权问题和性能问题。众所周知,Java 是 Sun 公司(现已被 Oracle 收购)推

12、出的产业产品,并未开放源代码。Google 为了打造一个开放的 Android,决定自行开发 Java 虚拟机,绕过 Sun 的 J2ME 平台,于是才有了 Dalvik。Dalvik 相比于普通的 Java 虚拟机作了许多的优化工作。它采用了基于寄存器的架构,经过优化后,可以在限的内存中同时运行多个虚拟机的实例,并且每一个 Dalvik 应用作为一个独立的 Linux 进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。根据 Google 的测算,64M 的 RAM 已经能够令系统正常运转了。其中 24M 被用于底层系统的初始化和启动,另外 20M 被用于高层启动高层服务。当然,

13、随着系统服务的增多和应用功能的扩展,其所消耗的内存也势必越来越大。归纳起来,Dalvik 虚拟机有如下几个主要特征:1.一个应用中会定义很多类,编译完成后即会有很多相应的 CLASS 文件,CLASS 文件间会有不少冗余的信息;而 DEX 文件格式会把所有的 CLASS 文件内容整合到一个文件中。这样,除了减少整体的文件尺寸,I/O 操作,也提高了类的查找速度。2.增加了新的操作码的支持3.文件结构尽量简洁,使用等长的指令,借以提高解析速度4. 尽量扩大只读结构的大小,借以提高跨进程的数据共享。Dalvik 虚拟机上运行的不是普通的 CLASS 文件,而是特有的 dex 文件。在 Androi

14、d的 SDK 中有一个叫做 dx 的工具可以用来把 Java 的.class 文件转换成.dex 格式。一般来说,同样的 class 文件转换成的 dex 文件比它转换成的 jar 文件要小不少。2.4 架构与许可证之间的关系Google 在设计 Android 时,就在版权问题上煞费苦心。Android 的架构也与其许可策略有着莫大的关系。Linux 内核的许可是 GPL V2,Android 基于 Linux 内核构建,但开放手机联盟却为它选择了 Apache 许可第二版(ASL V2)来发布。不过,它对于运行在 Android 之上的应用程序的许可则没有任何限制,第三方应用程序开发者可以

15、选择任何版权许可。这种在不同层次上选取不同许可协议的做法,对于 Android 的推广有重要的作用。众所周知,GPL V2 协议是典型的“Copyleft“ 协议,自由软件运动的精神领袖 Richard Stallman 把它设计成具有传染性,不但使用该协议的软件自身要公开源代码,对它的所有修改和衍生代码也都必须公开而且必须以相似的许可证发布。而 ASL 则不同,它虽然也是一种使用广泛,并且得到了 OSI 认可的开源许可,但它却并不限制商业性的开发和垄断式的发布。对于许多厂商来说,这一点是至关重要的。许多软件厂商更愿意采用 ASL,BSD这类不设限的开源许可,因为在这样的许可下,他们既可以充分

16、利用开源代码,又可以选择不公开自己所作的修改。所以 ASL 协议促进了软件厂商对开源软件的使用,因为这可以让厂商获利。在开源软件的基础上吸引尽可能多的厂商的参与,也很可能正是 Android 以ASL 协议发布的原因。但是,Android 的这种许可方式也招致了许多批评的声音。2010 年 2 月 3 日,Linux 内核开发者 Greg Kroah-Hartman 将 Android 的驱动程序从 Linux 内核代码库中删除,这就意味着,Linux 内核小组不认可 Android 对 Linux 内核的贡献。这其中的原因就是 Android 出于授权许可考虑而精心设计的架构。本来 Linu

17、x 的驱动程序是位于内核空间的,但是这样的话厂商为自己的硬件开发的驱动程序就得依照 GPL 协议公开源码,而显然厂商是不愿意因此而泄露出硬件细节的。因此Android 开发人员特意对 Linux 内核作了修改,将原本应该位于 Linux 内核空间的驱动程序部分上移到了用户空间。然后再将 Linux 内核之上的部分以 ASL 许可发布,这样厂商就可以选择不公开其源码了,Android 也从而争取到了大量厂商的支持。可是这样做带来的恶果就是 Android 的开发人员的成果无法为主线上的 Linux 内核所用,厂商为 Android 开发的驱动也根本无法用于其它的 Linux 内核,Android

18、 只从 Linux 社区获取,却未能提供回报。这就招致了开源社区的不满,并迫使 Linux 小组决定将 Android 从内核源码主线上删除。3 结论通讯移动的发展。带动了手机的发展。而手机的发展。带动了手机软件的发展,手机软件的发展。最终形成了手机操作系统的诞生。An droid的诞生不仅具有它固有的时代背景。更带来了新的手机操作系统的革命。Android不仅是一种操作系统它更是一个开源的平台,集合34家包括高通,摩托罗拉,三星HTC等来自诸多领域的领先技术和无线公司组成“开放手机联盟”(0HA),共同努力开发Android平台。在国内。中国移动已经加入OHA并有机会成为第一家在中国运营Android手机的公司。中国的许多软件公司已经将目光投向了Android。通过Google Android将对移动产业带来较大的影响,Android会变得更加的强壮和易用。参考文献1 公磊,周聪,基于 Android 的移动终端应用程序开发与研究2 陈昱,江兰帆,基于 Google Android 平台的移动开发研究3 昱曼,刘卫国,Android 的架构与应用开发研究3 百度百科. http:/ Android 维基百科 .http:/

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报