1. 应用层(SystemApps)
这层主要是JAVA开发的,负责与用户交互
2.应用框架层(Java API Framework)
这层是为开发人员提供了开发应用程序 所需的API,由JAVA编写的,可以称为Java Framework
包括:Activity Manager, Location Manager, Pakage Manager, Notification Manager, Reource Manager,Telephony Manager,Window Manager,Content Provider, View System
3.系统运行库层(Native)
这层分为两个部分:C/C++程序库 和 Android运行时库
C/C++程序库:它能被Android系统中的不同组件所使用,并通过应用程序框架为开发者提供服务,它的主要库有:
OpenGL ES: 3D绘图函数库
Libc:从BSD继承来的标准C系统函数库,专门为基于嵌入式Linux的设备定制
Media Framework: 多媒体库,支持多种常用的音频、视频格式录制和回放
SQLite: 轻型的关系型数据库引擎
SGL: 底层的2D图形渲染引擎
SSL: 安全套接层,是一种为网络通信提供安全及数据完整性的安全协议
FreeType:可移植的字体引擎,它提供统一 的接口来访问多种字体格式文件
Android运行时库:运行时库又分为核心库 和ART(Android5.0系统之后,Dalvik虚拟机被 ART取代)
运行时库:提供了Java语言核心库的大多数功能
ART :它与Dalvilk(DVM)的区别在于:
与JVM相比,Dalvik 虚拟机是专门为移动设备定制的,允许在有限的内存中同时运行多个虚拟机制的实例。
DVM中的应用每次运行时,字节码都需要通过限时编译器转换为机器码,这会使得应用的霆效率低,
ART,系统在安装应用时会进行一次预编译,将字节码先预先编译成机器码,并存储在本地,这样每次运行就不需要执行编译了,运行效率就大大提高
4.硬件抽象层(HAL)
HAL位于操作系统内核与硬件电路之间的接口层,其上目的在于将硬件抽你化,为了保护硬件厂商的知识产权,它隐藏了特定平台的硬件接口细节
5.Linux内核层(Linux Kernel)
Android的核心系统服务基于Linux内核,在此基础上添加了部分Android专用 的驱动。系统的安全性、内存管理、进程管理、网络协议和驱动模型等都依赖于内核
原文:https://www.cnblogs.com/baizhou168/p/14339684.html