当前位置: 首页 > news >正文

【新手入门】Android基础知识(一):系统架构

目   录

Android 系统架构图

 1. 应用

2. JAVA API 框架

3. 原生 C/C++ 库

4. Android 运行时(Android Runtime)

5. 硬件抽象层 (HAL)

6. Linux 内核

参考资料


Android 系统架构图

    Android底层内核空间以Linux Kernel作为基石,上层用户空间由Native系统库、Android运行时、JAVA API框架和应用组成,通过系统调用(Syscall)连通系统的内核空间与用户空间。对于用户空间主要采用C++和Java代码编写,通过JNI技术打通用户空间的Java层和Native层(C++/C),从而连通整个系统。下图所示为Android系统架构。

Android系统架构

 1. 应用

       应用程序是 android 架构的顶层,包含在Android设备上运行的所有应用(包括系统应用和第三方应用),它们是Android系统中直接面向用户的部分。

        第三方应用都是基于Android提供的SDK(Sofware Development Kit)开发,并受到 SDK接口的约束。系统应用则可以调用整个框架层的接口和模块,其中的很多接口在 SDK 中是隐藏的,因此系统应用具有比第三方应用更多的权利。

2. JAVA API 框架

        Java API 框架是指构建应用所依据的一组 Java 类、接口和其他预编译代码,是 Android 的核心部分,为开发人员提供构建应用程序所需的工具和服务。

        框架层包括几项重要的服务,可以更轻松地构建功能强大且一致的 Android 应用程序,而无需从头开始创建所有内容。服务如下表所示。

关键组件功能
Activity Manager (AM)管理应用生命周期、任务栈、Activity 切换
Window Manager (WM)管理应用界面窗口、布局和绘制
Content Provider (CP)数据访问接口,实现不同应用间的数据共享
Notification Manager管理通知栏消息
Resource Manager管理资源文件,如图片、布局、字符串
Package Manager (PM)管理安装的应用包、权限信息
Telephony Manager / Location Manager提供电话、定位等硬件功能访问
View 系统 / UI 组件提供 Button、TextView、RecyclerView 等界面元素
其他系统服务SensorManager、MediaPlayer、ClipboardManager 等

3. 原生 C/C++ 库

       Native系统库主要基于C\C++实现的一些原生组件,开发者需要通过 Java API 框架层调用这些库。

库名称功能描述
OpenGL ES用于 2D 和 3D 图形渲染,提供高性能的图形处理能力,直接与 GPU 交互,可实现复杂图形效果。
Media Framework基于 PacketVideo OpenCORE,支持多种常用音频、视频格式的回放和录制,以及静态图像文件的处理。
SQLite一个轻量级的关系型数据库引擎,为所有应用程序提供数据存储和管理功能。
Surface Manager对显示子系统进行管理,为多个应用程序提供 2D 和 3D 图层的无缝融合。
Libc标准 C 系统函数库,专门为嵌入式 Linux 设备定制,提供基础的系统调用和功能支持。
OpenMAX AL一个多媒体应用程序的标准框架,用于构建和管理多媒体应用程序。
Webkit用于 WebView 的功能实现,支持网页浏览和渲染。

4. Android 运行时(Android Runtime)

        Android 运行时主要包括以下两个关键部分:

  • 核心库(Core Libraries):提供了一系列的 Java 和 Kotlin 标准库,是 Android 应用开发的基础。
  • 运行时环境(ART):负责运行Android应用程序。

从 Android 5.0(Lollipop)开始,Android 运行时默认使用 ART(Android Runtime),取代早期的 Dalvik 虚拟机。Dalvik 虚拟机采用 JIT(Just-In-Time)的解释器在程序运行时进行编译,而ART 通过预先编译(Ahead-Of-Time, AOT)应用程序代码为机器代码,显著提高了应用程序的运行效率,但同时ART需要更多的存储空间。

5. 硬件抽象层 (HAL)

      硬件抽象层(Hardware Abstraction Layer,HAL)主要提供对Linux内核驱动的封装,这种封装可以向上提供各种设备的编程接口,并且隐藏底层实现细节。HAL 让 Android 无需关注较低级别的驱动程序实现,当框架API请求访问设备硬件时,Android系统将为该硬件加载相应的库模块。

6. Linux 内核

       Android系统基于Linux内核实现,同时在该基础上添加了Android专用的驱动,例如:Binder。由于Linux系统的优秀性,基于Linux在安全性、内存管理、进程管理等都有了很大优势。
Linux内核提供安全性、内存管理、进程管理、网络协议栈和驱动模型等核心系统服务,同时也是系统硬件和软件叠层之间的抽象层。

参考资料:

1.《Android全面分析》

2.《最强Android书:架构大剖析》

3. 架构概览  |  Android Open Source Project

4. Android 架构 - GeeksforGeeks

5.《疯狂Android讲义》

http://www.xdnf.cn/news/1302823.html

相关文章:

  • 【Golang】:流程控制语句
  • 【Vibe Coding 工程之 StockAnalyzerPro 记录】- EP1.先写 PRD
  • 【秋招笔试】2025.08.15饿了么秋招机考-第一题
  • P4069 [SDOI2016] 游戏 Solution
  • 微信小程序 拖拽签章
  • Git版本控制器
  • spring中异步任务注解@Async和@scheduled的使用
  • 2025年机械制造、机器人与计算机工程国际会议(MMRCE 2025)
  • Docker Compose 入门教程
  • MySQL、PolarDB、PolarDB-X、TableStore、MongoDB、TiDB、ClickHouse选型
  • docker入门
  • Java 调用 Python 脚本:实现 HelloWorld
  • 计算机视觉(opencv)实战五——图像平滑处理(均值滤波、方框滤波、高斯滤波、中值滤波)附加:视频逐帧平滑处理
  • 从根本上解决MAC权限问题(关闭sip)
  • SSL和TLS协议的消息认证码(MAC)
  • Android RxJava变换操作符详解
  • 使用SQLALCHEMY的outerjoin时的bug
  • 训练大模型的前提:数据治理工程:从原始数据到高质量语料的系统化治理实践
  • vector接口模拟实现及其原理
  • Redis 官方提供免费的 30 MB 云数据库
  • 阿里云出里两款新的云服务器
  • Uniapp之微信小程序自定义底部导航栏形态
  • 订单簿数据智能解析深度学习算法筛选大单并预测即时价格变动
  • MuMu模拟器Pro Mac 安卓手机平板模拟器(Mac中文)
  • 智能家居【home assistant】(二)-集成xiaomi_home
  • 云原生俱乐部-k8s知识点归纳(3)
  • 【计算机视觉与深度学习实战】02基于形态学的权重自适应图像去噪系统
  • 自学大语言模型之Transformer的Tokenizer
  • Android 欧盟网络安全EN18031 要求对应的基本表格填写
  • 对抗损失(GAN)【生成器+判断器】