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
- Android系统架构详解
- Android系统架构详解
- Android 系统架构详解
- Android系统架构详解
- android系统架构详解
- android 系统架构及详解
- Android系统架构的详解
- Android系统架构详解(2)--Android Runtime
- Android系统架构详解(3)-Android Libraries
- 谷歌工程师详解Android系统架构
- 谷歌工程师详解Android系统架构
- Android系统架构和应用程序基本概念详解
- android 系统架构 源码目录结构详解
- Android系统架构和应用程序基本概念详解
- Android系统架构和应用程序基本概念详解
- Google Android工程师多图详解Android的系统架构
- iOS 系统架构 详解
- HBase系统架构详解
- 一步步学习SPD2010--第九章节--使用可重用工作流和工作流表单(1)--创建和使用可重用工作流
- Hibernate实战_笔记21(创建动态的应用程序)
- C++本质:类的赋值运算符=的重载,以及深拷贝和浅拷贝(收藏)
- 一步步学习SPD2010--第九章节--使用可重用工作流和工作流表单(2)--创建关联栏目
- C++程序中内存使用情况简析
- Android系统架构详解
- SlidingMenu+ViewPage+ListView嵌套(类似网易 ) ListView点击事件失效冲突问题解决
- 一步步学习SPD2010--第九章节--使用可重用工作流和工作流表单(3)--使用工作流模板
- Oracle ResultSetMetaData
- ffmpeg 接收h264+aac并解码
- 一步步学习SPD2010--第九章节--使用可重用工作流和工作流表单(4)--重用全局可重用工作流
- 一步步学习SPD2010--第九章节--使用可重用工作流和工作流表单(5)--创建全局可重用工作流
- 线性代数(三十二) : 矩阵的谱映射定理
- JSP中路径的获取方法