Android系统架构详解

来源:互联网 发布:承德网络超市 编辑:程序博客网 时间:2024/05/16 05:21

作者:李利伟不加V

Android系统架构分为5个部分,分别是:Linux Kernel、Android Runtime、Libraries、Application Framework、Applications。

 

但是你对每一层有多少了解,反正我做android开发以后,头两年里对这些东西丝毫不关注,知道这几层也只是为了当初面试用。

今天先说下你可能不在乎的最底层Linux Kernel。


1.Linux Kernel

先讲一个小故事,做android开发第二年,当时已经对android的开发小有了解,逢人聊天如果说起android咱就是专家,呵呵,小骄傲。有一天和一个朋友聊天,他是主修C语言,做嵌入式开发,对linux系统了解很多,当时想请教我一些android中关于linux kernel的东西。结果是哑口无言,最后变成他给我演讲了。。。后来我才开始关注这方面的东西,做为android开发不要求对底层多么熟悉,单起码应该知道一些。
众所周知Android基于Linux提供核心系统服务,例如:安全、内存管理、进程管理、网络堆栈、驱动模型。Linux Kernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。

如果学过计算机网络知道OSI/RM,就会知道分层的好处就是使用下层提供的服务而为上层提供统一的服务,屏蔽本层及以下层的差异,当本层及以下层发生了变化不会影响到上层。也就是说各层各尽其职,各层提供固定的SAP(Service Access Point),专业点可以说是高内聚、低耦合。

如果你只是做应用开发,是不需要深入了解Linux Kernel层的。这也是我为什么两年开发以后才去了解。


下面是一表格是android和linux kernel之间的爱恨情仇史(表格内容引用自小米论坛原网址:http://www.miui.com/thread-896755-1-1.html)

 

Android和Linux kernel发展史(BY 夕つ云 整理)

英文名

中文名

Android系统版本

发布时间

Linux kernel内核版本

备注

Astro

铁臂阿童木

Android  beta

2007年11月5日

未知

它作为一个面向开发者的软件开发包(SDK)进行发布。

Wind Up Robots

发条机器人

1.0

2008年9月23日

未知

全球第一台Android设备HTC  Dream(G1)就是搭载Android 1.0操作系统。

1.1

2009年2月2日

未知

由于版权问题和员工喜好Android系统开始是以A-Z的字母开头的甜品命名!

Cupcake

纸杯蛋糕

1.5

2009年4月30日

2.6.27

拍摄/播放影片,支持立体声蓝牙耳机,支持复制/贴上和页面中搜索等。

Donut

甜甜圈

1.6

2009年9月15日

2.6.29

重新设计的Android  Market,手势支持,支持CDMA网络,文字转语音系统等。

Eclair

松饼

2.0

2009年10月26日

2.6.29

优化硬件速度,支持内置相机闪光灯和数码变焦,新的浏览器的用户接口和支持HTML5等。

2.0.1

2009年12月3日

部分API进行修改变化,BUG修复。

2.1

2010年1月12日

部分API进行修改变化,BUG修复。

Froyo

冻酸奶

2.2

2010年5月20日

2.6.32

支持将软件安装至扩展内存,USB分享器和WiFi热点功能,速度和性能优化。

2.2.1

2011年1月18日

存在的bug修复,安全性的提高,性能提升以及流畅性提升。

2.2.2

2011年1月22日

存在的bug修复,修复了Nexus  One中的短信问题。

2.2.3

2011年11月21日

修复了两个存在的安全性问题。

Gingerbread

姜饼

2.3

2010年12月7日

2.6.35

Linux  Kernel 2.6.33版代码库移除了Android代码。

2.3.3

2011年2月9日

进行了API改进

2.3.4

2011年4月28日

屏幕截图功能

2.3.5

2011年7月25日

改进了个别机型的功能,优化相机和电池续航。

2.3.6

2011年9月2日

修复了语音搜索存在的bug

2.3.7

2011年9月21日

增加NFC功能

Honeycomb

蜂巢

3.0

2011年2月2日

2.6.36

平板专用

3.1

2011年5月11日

3.2

2011年7月13日

3.2.1

2011年8月30日

3.2.2

2011年9月20日

Ice  Cream Sandwich

冰淇淋三明治

4.0

2011年11月14日

3.0.X

(目前miui V4-4.0.4的内核版本是3.0.8)

统一了手机和平板电脑使用的系统,提升硬件的性能以及系统的优化,支持在系统中使用虚拟按键等。

4.0.1

2011年10月19日

 

4.0.2

2011年11月28日

修复了存在于Verizon版本Galaxy  Nexus中的bug。

4.0.3

2011年12月16日

包括修复bug和系统的优化,并且针对图形,数据库,拼写检查,蓝牙功能和其他功能的改进。

4.0.4

2012年2月6日

更快的运行性能,电池漏洞修复,3G/4G切换改进,信号强度增强,更快速启动等。

4.0.9

 

由美国Spirit定制的非官方Android版本。

Jelly  Bean

果冻豆

4.1/4.1.1

2012年6月28日

3.0.31/3.1.10

“黄油计划”。

4.1.2

2012年10月9日

加入主画面的旋转功能,单手指开合通知中心讯息,提升性能及稳定性。

A new flavor of Jelly Bean

一种新口味的果冻豆

4.2

2012年10月30日

3.4.0
(目前miui V5-4.1.2的内核版本是3.4)

Android  的Linux kernel代码重新回归Linux kernel 3.3代码库。

4.2.1


4.2.2



4.3

2012年11月28日

2013
年2月11日


2013年7月24日

PhotoSphere  360°全景拍摄,手势输入键盘,支援多重帐户,修复丢失的12月等。

性能及稳定性的提升,一些错误的修正,优化电池耗电量,增加续航时间 

新增了Bluetooth Low Energy(低功耗蓝牙技术)功能,同时支持OpenGL ES 3.0。

KitKat

奇巧巧克力

4.4

2013年待定

3.8.0

 

 备注:2012年5月18日,Linux kernel  3.3发布,这个版本更新上第一个新特性也是最重要的新特性,便是Android 的Linux kernel代码重新回归Linux kernel  代码库,同时,内核中也包含着Android的硬件驱动。今后的Android内核将直接驱动硬件,对于软硬件开发者而言都是好事情,而芯片制造商则需要调整硬件架构,以兼容更强大的Linux  3.3以上版本内核了。对于Google而言,这是必须要做的事情,并且越快越好——为了更好的体验,和系统版本更好的融合与升级。


转载写个出处,提个名也行:http://blog.csdn.net/leeliwei/article/details/21242869

0 0
原创粉丝点击