Android系统架构|青训营笔记

129 阅读2分钟

Android 系统架构

这是我参与「第四届青训营 」笔记创作活动的第1天
其百度定义:
image.png
以下这张图形象的展示了安卓的系统架构 image.png
image.png
image.png

Applications(应用程序)

android与核心应用程序包(email、map、calendar、browser...),应用程序编写语言为Java(Kotlin成为官方语言)

Application Framworks(应用程序框架)

大部分为Java编写,提供各种API。

Views

视图用来构建app,有按钮、文本框、网格、列表、可嵌入的web浏览器等等。

Content Providers

内容提供器:一个应用程序可以访问另一个的数据或者与之共享。

Resource Manager

资源管理器:访问如本地文本、图形和布局文件等非代码资源。

Notification Manager

通知管理器:状态栏显示自定义信息

Activity Manager

image.png
活动管理器:管理应用生命周期

Libraris

系统运行库:C/C++库,能被不同组件使用。 Bionic系统C库、媒体库(音视频回放及录制、图像文件)、Surface Manager、Webkit、SGL、SQLite...

Android Runtime

运行环境:Java核心库的大多数功能 每个应用都在其自己的进程中运行,都有自己的虚拟机实例。ART通过执行DEX文件可在设备运行多个虚拟机,DEX文件是一种专为Android设计的字节码格式文件,经过优化,使用内存很少。ART主要功能包括:预先(AOT)和即时(JIT)编译,优化的垃圾回收(GC),以及调试相关的支持。
image.png

HAL

image.png
硬件抽象层: 提供标准接口,HAL包含多个库模块,其中每个模块都为特定类型的硬件组件实现一组接口,比如WIFI/蓝牙模块,当框架API请求访问设备硬件时,Android系统将为该硬件加载相应的库模块。 主要提供硬件组件的封装,包括相机、传感器和蓝牙等。当框架API要求访问设备硬件时, Android系统将为该硬件组件加载库模块。

Linux Kernel

image.png
Linux内核:作为软硬件之间的抽象层。支持安卓的核心系统服务如安全性、内存管理、进程管理、网络协议栈和驱动模块。Binder(IPC)和电源管理部分修改。 image.png

安卓启动架构

image.png
Boot Leader引导开机 -> Kernel -> Native -> Framework -> app

总结:

通过对Android系统框架的学习,我初步认识了安卓框架及每部分的作用,为之后进步学习打下体系上的基础。