Android系统架构
1.应用层(System Apps)
系统内置应用程序和非系统应用程序,源码目录中的 packages 目录对应系统应用层
2.应用架构层(Framework)
为开发人员提供应用程序开发所需要的API,向下与c/c++程序及硬件抽象层进行衔接, 源码主要是在 frameworks/base 和 frameworks/av 目录
名称 | 功能 |
---|---|
Activity Manager | 管理各个应用程序的生命周期,以及常用的导航回退功能 |
Location Manager | 提供地理位置及定位功能 |
Package Manager | 管理安装在Android系统中的应用程序 |
Notification Manager | 使得应用程序可以在状态栏中显示自定义的提示信息 |
Resource Manager | 提供应用程序使用的各种非代码资源,如本地化字符串,图片,布局文件,颜色文件等 |
Telephony Manager | 电话管理器,管理所有的移动设备功能 |
Window Manager | 窗口管理器,管理所有开启的窗口程序 |
Content Manager | 内容提供器,使得不同应用程序之间可以共享数据 |
View System | 视图系统,构建应用程序的基本组件 |
framework/base 目录:
3.系统运行库层(Native)
分为C/C++程序库和Android 运行时库,Android 运行时库分为核心库和ART(Android 5.0之后,Dalvik虚拟机被 ART取代),核心库提供了Java语言的大多数功能,
名称 | 功能 |
---|---|
bionic | 谷歌开发的系统C库 |
frameworks/av/media | 系统媒体库 |
frameworks/native/opengl | 第三方图形渲染库 |
frameworks/native/services/surfaceflinger | 图形显示库,主要负责图形的渲染,叠加绘制等功能 |
external/sqlite | 轻量级关系型数据库 SQLLite 的C++实现 |
4.硬件抽象层(HAL)
位于操作系统内核与电路之间的接口层,目的在于将硬件抽象化,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。同时隐藏了特定平台的硬件接口细节,保护硬件厂商的知识产权。
主要位置:hardware/
5.Linux内核层(Linux Kernel)
Android 的核心系统服务基于Linux 内核,在此基础上添加部分 Android 专用的驱动,系统的安全性,内存管理,进程管理,网络协议栈和驱动模型等