Android Framework系列之系统架构

376 阅读2分钟

前言

如何快速高效的掌握一门学问,建议先阅读下这篇文章关于学习的一些看法

码字不易,记得关注+点赞+收藏

Android Framework系列文章:

Android Framework系列之系统架构

Android Framework系列之启动流程

Android Framework系列之Binder机制

Android Framework系列之Handler机制

Android 平台架构图(熟记)

Linux Kernel(内核)

主要管理:电源,驱动,进程,内存,网络协议,安全等。

简记:电动车进内网比较安全。

硬件抽象层(HAL Hardware Abstraction Layer)

将音视频,相机,蓝牙等硬件抽象化,并公开其相关功能的标准接口,以便于 Java API Framework 层访问。

Android 运行时环境

Android 5.0(API 级别 21)及以上使用ART,5.0以下使用DVM。

ART 的部分主要功能包括:

  • AOT(预编译)和 JIT(即时编译)
  • 优化的垃圾回收 (GC)
  • 在 Android 9(API 级别 28)及更高版本中,可将应用软件包的 DEX 文件转换为更紧凑的机器代码
  • 可提供更好的调试支持,包括专用采样剖析器、详细的诊断异常和崩溃报告,以及设置观察点以监控特定字段的能力

Android 还包含一套核心运行时库,可提供 Java API 框架所使用的 Java 编程语言中的大部分功能,包括一些 Java 8 语言功能。

ART与DVM的区别(重点):

  • ART中,系统安装应用时会进行一次预编译,将字节码预先编译成机器码并存储在本地,使得应用每次运行时就不需要执行编译了,运行效率提高。
  • DVM中,应用每次运行时,字节码都需要通过即时编译器转换为机器码,使得应用的运行效率降低。

本地库 (Native C/C++ Libraries)

包括SQLite,Webkit,Media,Surface,OpenGL等核心库。

Java API Framework

为开发者提供API(Java代码编写)如常用的四大组件,View体系,通知管理器,资源管理器等。

应用层(System Apps):

系统内置应用及非系统级应用,负责与用户直接交互。