题注:Android五层系统架构学习笔记
Andoid的系统架构(Android软件栈)分为五层,由上到下分别是应用层、应用框架层、系统运行库层、硬件抽象层和Linux内核层。

一 、应用层(System Apps)
Android系统内置的一些核心应用,如短信,联系人,邮件,浏览器,日历,照相机等应用。
二 、应用框架层(Java API Framework)
该层为开发者提供了开发Android应用程序所需要的API,是Android应用开发的基础,我们自己的开发的应用和系统内置的应用都是通过这些API进行开发的,这些API都是使用Java语言开发。主要包括以下内容:
1、Content Providers
进程间通信工具,应用程序间进行通讯时使用,使自开发的应用程序可以访问其他应用程序的数据,或者共享自己的数据。
2、View System
框架层提供了许多丰富的,可扩展的视图组件来构建我们的应用界面,包括文本、按钮、列表,浏览器组件等。
3、Managers(管理器)
管理器 | 功能说明 |
---|---|
Activity Manager | 管理应用程序的生命周期,及Activity栈管理 |
Location Manager | 提供地理位置及地位功能服务 |
Package Manager | 提供和管理安装的应用程序信息 |
Notification Manager | 为应用程序提供在状态栏的自定义提醒信息 |
Resoure Manager | 管理应用程序中的非代码资源,如字符串,图片,颜色文件,布局文件等 |
Telephony Manager | 提供手机通信录相关信息的查询修改功能,包括手机状态,SIM,网络及手机用户等信息 |
Window Manager | 主要用来管理窗口的一些状态,view的变化及消息的处理 |
三 、系统运行库层(Native)
分为两部分,c/c++库层和Android运行时库
1、C/C++库层
为应用程序框架中的各组件调用,为Android平台提供了主要的特性支持。
名称 | 功能说明 |
---|---|
SQLite | 轻型关系数据库引擎 |
OpenGL/ES | 3D绘图功能支持 |
Webkit | 提供浏览器内核的支持 |
Media Framework | Androi多媒体框架的核心,音频、视频的播采集和播放都通过它实现 |
OpenMAX AL | Android多媒体框架标准,作为音频、视频及图像的解码器,与多媒体解码器交互,并以统一的行为支持组件 |
Libc | 标准的C系统函数库,专门为基于嵌入式的Linux设备定制 |
2、Android运行时库
包括核心库和Dalvik虚拟机(5.0后改为ART运行环境)
核心库允许开发者使用Java语言来编写Android应用程序。
ART运行环境是专门为移动设备定制,针对手机内存、CPU性能做了优化处理,它允许在内存中运行多个虚拟机实例,并且每个虚拟机实例都在一个独立的进程中执行。提供了预先(AOT)和及时(JIT)编译,优化垃圾回收(GC)等。
四 、硬件抽象层(HAL)
为Android平台提供了虚拟硬件平台,将控制硬件的操作放在硬件抽象层去处理。分为多个模块,比如蓝牙,相机等,当应用程序框架访问硬件时,Android系统就会为硬件加载库模块。
五、 Linux内核层
Android的核心服务是基于Linux内核的,这一层主要为Android的硬件提供驱动支持。如蓝牙驱动,显示驱动,Wifi驱动,电源管理等。
虽然网上已经有很多的资料介绍入门基础,还是想自己整理记录一下。
网友评论