Android的系统架构

出门莫恨无人随,书中车马多如簇。这篇文章主要讲述Android的系统架构相关的知识,希望能为你提供帮助。
android系统的底层建立在Linux系统之上,整个系统采用软件叠层(Software Stack)的方式进行构建,包括4层:操作系统层、中间件层、用户界面层和应用软件层。叠层结构能够使层与层之间相互分离,明确各自的分工,保证了层与层之间的低耦合。下面根据Android系统的体系结构图,对各个部分进行介绍。

Android的系统架构

文章图片

一、Linux内核
Android系统建立在Linux2.6之上,Linux内核是系统硬件和软件叠层之间的抽象层,它提供了安全性、内存管理、进程管理、网络协议栈、驱动模型等核心系统服务。驱动模型包括:
Disney Driver:显示驱动
Camera Driver:摄像头驱动
Flash Memory Driver:闪存驱动
Binder(IPC) Driver:Binder(IPC)驱动
Keypad Driver:键盘驱动
WiFi Driver:WiFI驱动
Audio Driver:音频驱动
Power Management:电源管理
二、系统库
Surface Manager:管理对显示子系统的访问。
Media Framework:媒体库,基于PacketVideo的OpenCORE,支持查看静态图片、支持录制和播放多种主流格式的音视频文件,包括PNG、JPG、MPEG4、H.264、MP3、AAC、AMR等。
SQLite:功能强大的轻量级关系数据库。
OpenGL ES:用于3D开发的系统库
FreeType:位图和向量字体显示。
WebKit:Web浏览器引擎。
SGL:底层的2D图形引擎。
SSL:网络通信中进行SSL加密的库。
libc:标准C系统库。
【Android的系统架构】三、Android运行时
在Android5.0以前,Android运行时由两部分组成:Android核心库和Dalvik虚拟机。从5.0开始,ART取代了Dalvik虚拟机。原因在于,Dalvik虚拟机采用JIT(Just-in-time)解释器进行动态编译并执行,导致APP运行时比较慢;而ART模式在用户安装APP时进行预编译(Ahead-of-time,AOT)操作,将原本在程序运行时的编译动作提前到用户安装时,字节码预先编译成机器码,使其成为真正的本地应用。ART虽然占用了更多的存储空间,延长了应用安装和系统启动的时间,但是它可以减少程序运行时动态编译的开销,提高APP的运行效率。
四、应用程序框架
开发人员在开发Android应用程序时,就是面向底层的应用程序框架层进行的。应用程序框架层提供了大量API供开发者使用。应用程序框架既是应用程序开发的基础,也是软件复用的重要手段。该层包括:
Activity Manager:活动管理器
Window Manager:窗口管理器
Content Providers:内容提供者
View System:视图系统
Package Manager:包管理器
Telephony Manager:电话管理器
Resource Manager:资源管理器
Location Manager:位置管理器
Notification Manager:通知管理器
五、应用程序层
该层提供一些核心应用程序包,例如电子邮件、短信、日历、地图、浏览器和联系人管理等。同时,开发者可以利用java语言设计和编写属于自己的应用程序。
 





























    推荐阅读