Android系统架构(五层)

Android系统的五层架构

Android系统架构(五层)_第1张图片
最开始的Android系统框架分为5层(内核层、硬件抽象层、系统运行库层、应用程序框架层、应用程序层)
后来维基百科上搜索到的Android系统框架图为上图,少了一个硬件抽象层HAL(GPS、Wi-Fi、Camera….)
从下往上看

1.Linux内核层

Android的底层是基于Linux操作系统的,Linux系统的驱动开发的可扩展能力较强,这让android的嵌入式系统更为广泛,这也是产生了这么多手机厂商的原因,每个厂商的硬件上都会有一些细微的差异,这让Android有了较高的移植性。
Linux内核给Android提供了系统安全性、内存管理、进程管理等等。

2.硬件抽象层(HAL)

定义硬件“驱动”的接口去降低Android系统与硬件的耦合度。硬件的抽象化,可以保护了硬件厂商的知识产权,因为Linux遵循的是GLP协议(反版权协议,所有驱动都应该是开源的)

3.系统运行库层(c库层,Android运行时库)

a) 因为里面包含了系统运行的基本库,因为这些库大部分都是c/c++实现的,所以都叫他c库层。(我们熟知的SQLite、OpenGL、libc++、安全套接层SSL等)
b) Android运行时库
    核心库和ART(Android 5.0  API:21 前是图上的Dalvik)。

Dalvik使用的是JIT编译器(Just-In-Time)解释字节码转化为机器码,在应用安装时将dex文件优化为odex文件,每次启动应用都会重新的编译运行,所以性能较低。
ART使用的是AOT预编译(Ahead-Of-Time)在应用安装的时候就将字节码文件预编译为机器码,应用启动快,运行快,但会耗费较多的存储空间,安装时间较长。

4.应用程序框架层(Java库)

一般都由Java编写,为上层应用提供了API接口,包含了一些系统级服务进程的实现。这些 API 形成创建 Android 应用所需的构建块,它们可简化核心模块化系统组件和服务的重复使用。

5.应用程序层

Android 随附一套用于电子邮件、短信、日历、互联网浏览和联系人等的核心应用。平台随附的应用与用户可以选择安装的应用一样,没有特殊状态。因此第三方应用可成为用户的默认网络浏览器、短信 Messenger 甚至默认键盘(有一些例外,例如系统的“设置”应用)。

系统应用可用作用户的应用,以及提供开发者可从其自己的应用访问的主要功能。例如,如果您的应用要发短信,您无需自己构建该功能,可以改为调用已安装的短信应用向您指定的接收者发送消息。

你可能感兴趣的:(Android,Android,系统架构)