Android——架构和源码包介绍
1. 说到Android的架构,大家第一眼想到的可能都是下面这张众所周知的图
(1) 应用程序层(applications):应用程序层主要是一些核心的应用程序包,比如电话,短信,地图,电子邮件等等。对应的源码包在 packages/apps 下,里面包含了各种应用程序的源码
(2) 应用框架层(application framework):这层是Android应用开发的基础,包含了视图管理器,电话管理器,等等,也提供了Android的四大组件。这个层主要就是提供了类似与各种组件使用的API。对应的源码直接在 frameworks 下,里面包含了base包,包含了framework的一些基础的代码,大量使用C++编写
(3) 系统库层:该层主要由两部分组成,一个是系统库,一个是android运行时。
android运行时比较简单,主要包括了核心库以及Dalvik虚拟机,核心库包含了大多数java语言需要的功能函数,同时包含了Android的核心库。Dalvik虚拟机主要完成了对生命周期的管理,线程的管理,堆栈的管理,垃圾回收机制以及相应的安全和异常的管理
系统库主要包含了9个子系统,就是上图所示的系统
android运行时中的core libraries对应的源码包在根目录下的libcore
android下的Dalvik虚拟机对应的源码包在根目录下的dalvik
系统库对应的源码包是根目录下的bionic
(4) linux内核层:Android的核心系统服务都是依赖与linux内核的,比如内存,进程等的管理,驱动模型以及网络协议栈。内核层也是硬件和软件的抽象层,一些驱动,比如显卡,键盘,摄像头,wifi等等
该层对应的源码是在根目录下的kernel中
硬件抽象层(HAL)则对应的是根目录下的hardware
更加详细的目录可以去看这个博客:http://blog.csdn.net/fengliang191/article/details/40678731