Android系统架构-文档资料_第1页
Android系统架构-文档资料_第2页
Android系统架构-文档资料_第3页
Android系统架构-文档资料_第4页
Android系统架构-文档资料_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、1Android系统架构2目录1.关于Android2.Android系统的优势3.Android的系统架构4.Android系统的四大组件5.Android的系统包31.关于Android 2007年11月5日谷歌公司宣布与其他一些手机制造厂商、移动运营商、芯片制造商等厂商联合组成开发手机联盟(Open Handset Alliance,OHA),并发布了基于Linux内核的开源的手机开发平台Android,Android不仅仅是一款手机操作系统,而更像是一个对任何开发人员开放的移动终端开发平台。该平台是由操作系统、中间件、用户界面以及应用程序组成,并且对外开放源代码,一经推出便引起世界各地

2、开源爱好者的关注。同时,谷歌与各大厂商的大力合作也大大的促进了Android新的手机的业务的不断推出,同时也使得Android更加的标准。41.关于Android 第一款搭载Android操作系统的手机应该是T-mobile G1手机了,该款手机是2008年9月22日由美国移动运营商T-mobile USA在纽约发布的,该款手机由台湾宏达电子HTC制造,支持WCDMA/HSPA网络,理论下载速率到达7.2Mbit/s,并支持Wi-Fi功能。 Android用甜点作为它们系统版本的代号的命名方法开始于 Android 1.5 发布的时候。作为每个版本代表的甜点的尺寸越变越大,然后按照26个字母数

3、序:51.关于Android纸杯蛋糕Android1.5-upcake甜甜圈Android1.6Donut松饼Android2.0Eclair冻酸奶Android2.2Froyo姜饼Android2.3Gingerbread蜂巢Android3.0,3.1,3.2Honeycomb冰激凌三明治Android4.0Ice Cream Sandwich根据最新消息新一代Android版本将命名为果冻豆(Android5.0-Jelly Bean)2009 . 52009.9 2009.10 2010.1 2010.12 2011.5 2011.1062.Android系统的优势72.Android

4、系统的优势(1)良好的开放性平台lAndroid系统最震撼人心之处在于它的开放性和服务免费。对第三方软件完全开放的平台,开发者在为其开发程序时拥有更大的自由度,突破了iphone等只能添加为数不多的固定软件的枷锁。l开放的海量市场网站下载:安卓网,机峰网,91助手等支持所有.apk文件82.Android系统的优势(2)个性化界面设置多种插件,快捷方式和文件夹,打造个性化的屏幕以满足个性需求。 轻松添加,得心应手,您可以随意更新排列主屏幕项目92.Android系统的优势(3)与google应用的无缝结合l由于android系统是由google主导研发的,因此android操作系统手机 将无缝

5、结合这些优秀的Google互联服务,如大家熟知的Google Map,Google Search,Gmail等,在手机上都可以使用。l支持google全方位服务,丰富最新的网络体验。103.Android的系统架构113.Android的系统架构 从上图中可以看出,Android系统架构为四层结构,从上层到下层分别是应用程序层、应用程序框架层、系统运行库层以及Linux内核层,分别介绍如下: 1)应用程序层应用程序层 Android平台不仅仅是操作系统,也包含了许多应用程序,诸如SMS短信客户端程序、电话拨号程序、图片浏览器、Web浏览器等应用程序。这些应用程序都是用Java语言编写的,并且这

6、些应用程序都是可以被开发人员开发的其他应用程序所替换,这点不同于其他手机操作系统固化在系统内部的系统软件,更加灵活和个性化。123.Android的系统架构2)应用程序框架层应用程序框架层 应用程序框架层是我们从事Android开发的基础,很多核心应用程序也是通过这一层来实现其核心功能的,该层简化了组件的重用,开发人员可以直接使用其提供的组件来进行快速的应用程序开发,也可以通过继承而实现个性化的拓展。 a) Activity Manager(活动管理器) 管理各个应用程序生命周期以及通常的导航回退功能b) Window Manager(窗口管理器)管理所有的窗口程序c) Content Pro

7、vider(内容提供器)使不同应用程序之间存取或者分享数据133.Android的系统架构d) View System(视图系统)构建应用程序的基本组件e) Notification Manager(通告管理器)使得应用程序可以在状态栏中显示自定义的提示信息f) Package Manager(包管理器)Android系统内的程序管理g)Telephony Manager(电话管理器)管理所有的移动设备功能h)Resource Manager(资源管理器)提供应用程序使用的各种非代码资源,如本地化字符串、图片、布局文件、颜色文件等143.Android的系统架构i)Location Manag

8、er(位置管理器)提供位置服务j)XMPP Service(XMPP服务)提供Google Talk服务3)系统运行库层系统运行库层 从图中可以看出,系统运行库层可以分成两部分,分别是系统库和Android运行时,分别介绍如下:a a)系统库)系统库系统库是应用程序框架的支撑,是连接应用程序框架层与Linux内核层的重要纽带。其主要分为如下几个:153.Android的系统架构u Surface Manager:执行多个应用程序时候,负责管理显示与存取操作间的互动,另外也负责2D绘图与3D绘图进行显示合成。u Media Framework: 多媒体库,基于PacketVideo OpenCo

9、re;支持多种常用的音频、视频格式录制和回放,编码格式包括MPEG4、MP3、H.264、AAC、ARM。u SQLite:小型的关系型数据库引擎u OpenGL|ES:根据OpenGL ES 1.0API标准实现的3D绘图函数库163.Android的系统架构u FreeType:提供点阵字与向量字的描绘与显示uWebKit:一套网页浏览器的软件引擎uSGL:底层的2D图形渲染引擎uSSL:在Android上通信过程中实现握手u Libc:从BSD继承来的标准C系统函数库,专门为基于embedded linux的设备定制173.Android的系统架构b b)Android runtimeA

10、ndroid runtime Android应用程序采用Java语言编写,程序在Android runtime中执行,其运行时分为核心库和Dalvik虚拟机两部分。u核心库核心库提供了Java语言API中的大多数功能,同时也包含了Android的一些核心API,如android.os、android.media等等。uDalvik虚拟机Android程序不同于J2me程序,每个Android应用程序都有一个专有的进程,并且不是多个程序运行在一个虚拟机中,而是每个Android程序都有一个Dalvik虚拟机的实例,并在该实例183.Android的系统架构 中执行。Dalvik虚拟机是一种基于寄

11、存器的Java虚拟机,而不是传统的基于栈的虚拟机,并进行了内存资源使用的优化以及支持多个虚拟机的特点。需要注意的是,不同于J2me,Android程序在虚拟机中执行的并非编译后的字节码,而是通过转换工具dx将Java字节码转成dex格式的中间码。4)LinuxLinux内核层内核层 Android是基于Linux2.6内核,其核心系统服务如安全性、内存管理、进程管理、网路协议以及驱动模型都依赖于Linux内核。194.Android系统的四大组件 在Android中,一个应用程序可以使用其它应用程序的组件,这是Android系统一个非常重要的特性。在需要的时候Android会启动另外一个程序的

12、部分代码,这部分代码实现了你请求执行的动作的功能,而不是在你的应用程序中直接包含另外一个应用程序的代码。为了实现这样的功能,Android系统必须能够在其它应用程序有请求的时候启动一个应用程序进程并实例化部分java对象。因此,Android应用程序包含一些运行应用程序所必须的能够被Android系统实例化的组件。这些组件主要包括以下四种类型:204.Android系统的四大组件1)Activity 一个Activity通常展现为一个可视化的用户界面。每个Activity都会有一个用于绘制用户界面的窗口。通常这样一个窗口会填充整个屏幕,当然这个窗口也可以比屏幕小并漂浮在其他窗口之上。展示Act

13、ivity窗口的可视化内容区域是一些具有层次关系的视图,而视图则是由类View的子类表示的。视图就是Activity与用户交互的接 口。例如,一个显示图片的视图,当用户单击的时候它可能会启动一个动作。Android有许多开发人员可以直接使用的视图,包括按钮,文本域,滚动条,菜 单,复选框等。通过调用Activity.setContentView()方法来设置展现Activity的窗口的视图。内容视图则是视图层次结构中的根节点视图。214.Android系统的四大组件2)Serviceservice没有用户界面,但它会在后台一直运行。例如,service可能在用户处理其它事情的时候播放背景音乐,

14、或者从网络上获取数据,或者执行一些运算,并把运算结构提供给Activity展示给用户。每个service都扩展自类Serivce。应用程序可以连接到一个正在运行中的service。当连接到一个service后,可以使用这个service向外暴露的接口与这个service进行通信。对于上面提到的播放音乐的service,这个接口可能允许用户暂停,停止或重新播放音乐。与activity以及其它组件一样,service同样运行在应用程序进程的主线程中。所以它们不能阻塞其它组件或用户界面,通常需要为这些service派生一个线程执行耗时的任务。224.Android系统的四大组件3)Broadcase

15、 receiverbroadcase receiver不执行任何任务,仅仅是接受并响应广播通知的一类组件。大部分广播通知是由系统产生的,例如改变时区,电池电量低,用户选择了一幅图片或 者用户改变了语言首选项。应用程序同样也可以发送广播通知,例如通知其他应用程序某些数据已经被下载到设备上可以使用。broadcast receiver不包含任何用户界面。然而它们可以启动一个activity以响应接受到的信息,或者通过NotificationManager通知用 户。可以通过多种方式使用户知道有新的通知产生:闪动背景灯、震动设备、发出声音等等。通常程序会在状态栏上放置一个持久的图标,用户可以打开这个

16、图标并 读取通知信息。234.Android系统的四大组件4)Content provider应用程序可以通过content provider访问其它应用程序的一些私有数据,这是Android提供的一种标准的共享数据的机制。共享的数据可以是存储在文件系统中、SQLite 数据库中或其它的一些媒体中。content provider扩展自ContentProvider类,通过实现此类的一组标准的接口可以使其它应用程序存取由它控制的数据。然而应用程序并不会直接 调用ContentProvider中的方法,而是通过类ContentResolver。ContentResolver能够与任何一个 Con

17、tentProvider通信,它与ContentProvider合作管理进程间的通信。244.Android系统的四大组件备注:任何时候当Android系统收到一个需要某个组件进行处理的请求的时候,Android会确保处理此请求的组件的宿主进程是否已经在运行,如果没有,则立即启动这个进程,当请求的组件的宿主进程已经在运行,它会继续查看请求的组件是否可以使用,如果不能立即使用,它会创建一个请求的组件的实例来响应请求。255.Android的系统包开发Android应用程序基本上使用的都是Java语言。那么要想灵活的应用这一系统,就应当熟悉其中的Android Java包的各种功能。一般的JAVA

18、应用中,如果需用引用基础类库,通常需要使用如下的方式:import javax.swing.*;以上代码表示了引用JAVA的GUI组件Swing,javax.swing即JAVA中的一个包。Adroid提供一些扩展的JAVA类库,类库分为若干个包,每个包中包含若干个类。例如:在Android中计算器是一个相对简单的程序,其入口程序文件为Calculator.java265.Android的系统包uAndroid.app:提供高层的程序模型,提供基本的运行环境。uAndroid.content:包含各种对设备上的数据进行访问和发布的类。uAndroid.database:通过内容提供者浏览和操作数据库。uAndroid.graphics:底层的图形库,包含画布,颜色过滤,点,矩形,可以将他们直接绘制到屏幕上。uAndroid.location:定义android的位置和相关服务的类。uAndroid.media:提供一些管理多种音频,视频的媒体接口。uA:提供帮助网络访问的类,除了普通的.*APIs.uAndroid.animation:提供动画系统的功能属性。275.Android的系统包uAndroid.app:包含高层次的类,封装整体的android应用程序模型。uAndroid.appwidget:包含必要的组件,以创建“应用程序部件”,

温馨提示

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

评论

0/150

提交评论