作者:李利伟不加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)