概述
Android系统底层内核空间以Linux Kernel为基石,其体系结构采用典型的分层架构,自底向上依次为:Linux内核、硬件抽象层、原生C/C++库、Java API框架、系统应用。
1.Linux Kernel
Android平台以Linux Kernel为基础底座,依靠Linux Kernel来执行底层功能,例如线程和底层内存管理。使用Linux Kernel可以让Android利用主要的安全功能,并允许为设备制造商开发硬件驱动程序。
2. 硬件抽象层
Hardware Abstraction Layer以封闭源码形式提供硬件驱动模块,HAL目的是为了把Android FrameWork和Linux Kernel隔开,让Android不至于过度依赖Linux Kernel,以使Android framework的开发能在不考量驱动程实现的前提下进行发展。
3. 原生C/C++库
Android系统的很多核心组件和服务需要以C/C++编写的原生库来进行构建,这些原生C/C++库,可以被安卓系统的不同组件使用,开发者可以通过Java API Framework来使用原生库的功能。这些系统库包括Media(用于支持播放盒录制音频和视频,以及静态图像文件)、WebKit(Web浏览器引擎,支持Android浏览器和内嵌的Web视图)、HWComposer(Android应用的显示框架,将图形合成显示到屏幕)、OpenGL(图形引擎)等。
4. Android Runtime
Android runtime包括核心库以及Dalvik虚拟机,用于保证每一个Android应用都运行在单独的进程中,每个Android应用拥有一个独立的Dalvik虚拟机实例。
5. Java API Framework
Android系统中的API框架为开发者提供大量的应用程序接口,集成了很多Android开发需要的组件,主要包括Activities(活动)、Broadcast Receiver(广播接收器)、Services(服务)、以及Content Provider(内容提供者)。
6. System Apps
应用程序层装配了一个核心的应用程序集合,包括所有的Android应用程序,其可以分为系统自带的核心应用程序以及用户自行开发的应用程序等。