Android操作系统架构
Android操作系统架构
-
Android系统架构和一些普遍的操作系统差不多,都是采用了分层的架构,从他们之间的架构图看,Android系统架构分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。
-
1.应用程序
Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。
2.应用程序框架
开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。
隐藏在每个应用后面的是一系列的服务和系统, 其中包括;
◆丰富而又可扩展的视图(Views),可以用来构建应用程序, 它包括列表(lists),网格(grids),文本框(text boxes),按钮(buttons), 甚至可嵌入的web浏览器。
◆内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库), 或者共享它们自己的数据
◆资源管理器(Resource Manager)提供 非代码资源的访问,如本地字符串,图形,和布局文件( layout files )。
◆通知管理器 (Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。
◆活动管理器( Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。
有关更多的细节和怎样从头写一个应用程序,请参考 如何编写一个 Android 应用程序.
3.系统运行库
1)程序库
Android 包含一些C/C++库,这些库能被Android系统中不同的组件使用。它们通过 Android 应用程序框架为开发者提供服务。以下是一些核心库:
◆系统 C 库 - 一个从 BSD 继承来的标准 C 系统函数库( libc ), 它是专门为基于 embedded linux 的设备定制的。
◆媒体库 - 基于 PacketVideo OpenCORE;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括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)字体显示。
◆SQLite - 一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。
2)Android 运行库
Android 包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。
Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,然后通过SDK中 的 “dx” 工具转化成.dex格式由虚拟机执行。
Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。Linux 内核Android 的核心系统服务依赖于 Linux 2.6 内核,如安全性,内存管理,进程管理, 网络协议栈和驱动模型。 Linux 内核也同时作为硬件和软件栈之间的抽象层。4.linux核心
-
Android2.0 (Eclair松饼)
Android2.2 (Froyo冻酸奶)
Android3.0(HoneyComb蜂巢)
Android4.0(Ice Cream Sandwish冰激凌三明治)
版本 | 备注 | |
---|---|---|
Android1.1 |
2008 年9月发布的Android第一版 | |
Android 1.5 Cupcake (纸杯蛋糕) |
2009年4月30日,官方1.5版本(Cupcake 纸杯蛋糕)的Android发布。主要的更新如下: 1、拍摄/播放影片,并支持上传到Youtube 2、支持立体声蓝牙耳机,同时改善自动配对性能 3、最新的采用WebKit技术的浏览器,支持复制/贴上和页面中搜索 4、GPS性能大大提高 5、提供屏幕虚拟键盘 6、主屏幕增加音乐播放器和相框widgets 7、应用程序自动随着手机旋转 8、短信、Gmail、日暦,浏览器的用户接口大幅改进,如Gmail可以批量删除邮件 9、相机启动速度加快,拍摄图片可以直接上传到Picasa 10、来电照片显示 |
|
Android 1.6 Donut (甜甜圈) |
2009年9月15日,1.6(Donut 甜甜圈)版本软件开发工具包发布。主要的更新如下: 1、重新设计的Android Market手势 2、支持支持CDMA网络 3、文字转语音系统(Text-to-Speech) 4、快速搜索框 5、全新的拍照接口 6、查看应用程序耗电 7、支持虚拟私人网络(VPN) 8、支持更多的屏幕分辨率。 9、支持OpenCore2媒体引擎 10、新增面向视觉或听觉困难人群的易用性插件 |
|
Android2.0/2.0.1/2.1 Eclair (松饼) |
2009年10月26日,2.0(Eclair 松饼)版本软件开发工具包发布。主要的更新如下: 1、优化硬件速度 2、"Car Home"程序 3、支持更多的屏幕分辨率 4、改良的用户界面 5、新的浏览器的用户接口和支持HTML5 6、新的联系人名单 7、更好的白色/黑色背景比率 8、改进Google Maps3.1.2 9、支持Microsoft Exchange 10、支持内置相机闪光灯 11、支持数码变焦 12、改进的虚拟键盘 13、支持蓝牙2.1 14、支持动态桌面的设计 |
|
Android 2.2/2.2.1 Froyo (冻酸奶) |
2010年5月20日,2.2(Froyo 冻酸奶)版本软件开发工具包发布。主要的更新如下: 1、整体性能大幅度的提升 2、3G网络共享功能。 3、Flash的支持。 4、App2sd功能。 5、全新的软件商店。 6、更多的Web应用API接口的开发。 |
|
Android 2.3 Gingerbread (姜饼) |
2010年12月7日,2.3(Gingerbread 姜饼)版本软件开发工具包发布。主要的更新如下: 1、增加了新的垃圾回收和优化处理事件 2、原生代码可直接存取输入和感应器事件、EGL/OpenGL ES、OpenSL ES。 3、新的管理窗口和生命周期的框架。 4、支持VP8和WebM视频格式,提供AAC和AMR宽频编码,提供了新的音频效果器 5、支持前置摄像头、SIP/VOIP和NFC(近场通讯) 6、简化界面、速度提升: 7、更快更直观的文字输入: 8、一键文字选择和复制/粘帖: 9、改进的电源管理系统: 10、新的应用管理方式: |
|
Android 3.0 Honeycomb (蜂巢) |
2011年2月2日, 3.0(Honeycomb 蜂巢)版本主要更新如下: ·优化针对平板 ·全新设计的UI增强网页浏览功能 ·n-app purchases功能 |
|
Android 3.1 Honeycomb (蜂巢) |
2011年5月11日在Google I/O开发者大会宣布发布,版本主要更新如下: Honeycomb 蜂巢(改进3.0BUG) 经过优化的Gmail电子邮箱; 全面支持GoogleMaps 将Android手机系统跟平板系统再次合并从而方便开发者。 任务管理器可滚动,支持USB 输入设备(键盘、鼠标等)。 支持 Google TV.可以支持XBOX 360无线手柄 widget支持的变化,能更加容易的定制屏幕widget插件。 |
|
Android 3.2 Honeycomb (蜂巢) |
2011年7月13日发布,版本更新如下: 支持7英寸设备 引入了应用显示缩放功能 |
|
Android 4.0 Ice Cream “冰激凌三明治” |
2011年10月19日 在香港发布, 4.0(Ice Cream Sandwich 冰激凌三明治)版本主要更新如下: 1、全新的ui 2、全新的Chrome Lite浏览器,有离线阅读,16标签页,隐身浏览模式等。 3、截图功能 4、更强大的图片编辑功能 5、自带照片应用堪比Instagram,可以加滤镜、加相框,进行360度全景拍摄,照片还能根据地点来排序 6、Gmail加入手势、离线搜索功能,UI更强大。 7、新功能People:以联系人照片为核心,界面偏重滑动而非点击,集成了Twitter、Linkedin、Google+等通讯工具。有望支持用户自定义添加第三方服务。 8、新增流量管理工具,可具体查看每个应用产生的流量。 9、正在运行的程序可以像电脑一样的互相切换 10、人脸识别功能 11、系统优化、速度更快 12、支持虚拟按键,手机可以不再拥有任何按键 13、更直观的程序文件夹: 14、平板电脑和智能手机通用 15、支持更大的分辨率 16、专为双核处理器编写的优化驱动 17、全新的Linux内核 18、增强的复制粘贴功能 19、语音功能 20、全新通知栏: 21、更加丰富的数据传输功能 22、更多的感应器支持 23、语音识别的键盘: 24、全新的3D驱动, 游戏支持能力提升 25、全新的谷歌电子市场 26、增强的桌面插件自定义 |
|
Android N.n Jelly Bean “果冻豆” |
继“冰激凌三明治” |