什么是Android?我将其简单理解成:一个移动操作系统。

下图来源于Android官方,详细的描述了Android的系统架构

由下到上依次分为Linux内核层、库和运行时、框架层和应用层。

Linux内核层

Android底层的核心部分,包含了Android底层的核心服务内容,如安全机制、进程分配管理、硬件驱动等等。我们常在Android系统的移动设备中,在设置→关于手机中看到的内核版本即为Linux内核的版本。

库和运行时

APP运行的虚拟环境,每个APP都会分配一个Dalvik虚拟机,确保多个APP之间不受干扰,保持相互独立,在运行时进行编译。在Android4.4以上的版本中,ART模式取代了Dalvik,其在安装时进行编译,运行时不再进行重复编译。

Art(Android Runtime)是和Dalvik类似的虚拟机,不同的是Dalvik虚拟机执行的是dex字节码,Art虚拟机执行的是本地机器码,这也是Google为了解决android性能问题所采取的方法,让Art虚拟机直接执行本地机器码,以提高性能。

框架层

提供了Android应用所需的一系列类库,便于开发者快速开发应用。

应用层

包含了各类与用户直接交互的应用程序,和运行在后台的服务程序。