恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

Android随笔-平台架构

  • 首页
  • 资讯中心
  • /
  • Android随笔-平台架构

相关资讯

Linux软件生态全攻略:从开发到娱乐的实用工具清单 2026/7/25 22:41:26
佐治亚理工2025版AI课程:从符号AI到深度学习的实战指南 2026/7/25 22:41:26
Java后端面试7天冲刺:从八股文到实战的系统复习指南 2026/7/25 22:41:26

最新资讯

AI 工程方法论完整知识地图
MindPaw 技术解析(三):情感引擎 —— PAD 三维模型与多模态融合
3分钟快速掌握:GetQzonehistory终极QQ空间历史数据备份指南
Audiobookshelf移动应用完整指南:打造个人有声图书馆的终极解决方案
终极指南:如何用NGINX Prometheus Exporter快速搭建监控系统 [特殊字符]
Fate/Grand Automata:解放双手的FGO自动化神器,告别重复刷本的终极指南

今日推荐

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

本周热门

G-Helper完整指南:免费开源工具彻底优化华硕笔记本性能
解决全部报错!OpenClaw Windows适配优化+网关修复教程
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

Android随笔-平台架构

发布时间:2026/8/1 13:51:43
Android随笔-平台架构 Android 系统架构采用分层设计从上到下大致分为五层。一、总体架构图┌─────────────────────────────────────────────────────────────┐ │ 第 5 层应用层 (Applications) │ │ System UI、Launcher、Settings、微信、抖音... │ │ Java/Kotlin 代码SDK API │ ├─────────────────────────────────────────────────────────────┤ │ 第 4 层应用框架层 (Application Framework) │ │ ActivityManagerService、WindowManagerService、 │ │ PackageManagerService、ContentProvider、ResourceManager... │ │ Java 代码system_server 进程 │ ├─────────────────────────────────────────────────────────────┤ │ 第 3 层系统运行库层 (Native Libraries Android Runtime) │ │ SurfaceFlinger、OpenGL ES、SQLite、WebView、Media Codec、 │ │ ART 虚拟机、libc、Binder IPC 库... │ │ C/C 代码.so 共享库 │ ├─────────────────────────────────────────────────────────────┤ │ 第 2 层硬件抽象层 (HAL - Hardware Abstraction Layer) │ │ Camera HAL、Audio HAL、Sensors HAL、GPS HAL、Wi-Fi HAL... │ │ C/C 接口由厂商实现 │ ├─────────────────────────────────────────────────────────────┤ │ 第 1 层Linux 内核层 (Linux Kernel) │ │ 进程调度、内存管理、网络协议栈、电源管理、 │ │ Binder 驱动、显示驱动、输入子系统、Camera 驱动... │ │ C 代码内核态 │ └─────────────────────────────────────────────────────────────┘二、逐层详解第 1 层Linux 内核层这是 Android 的地基负责硬件资源管理和进程隔离。模块说明进程管理调度 CPU 时间片管理进程生命周期fork、kill、信号内存管理虚拟内存、OOM 机制、Ashmem匿名共享内存Binder 驱动你之前问的 Binder IPC 机制的核心。内核态的 Binder 驱动负责跨进程通信的数据拷贝和线程调度显示驱动Framebuffer、DRM/KMS最终把图像数据送到屏幕输入子系统管理触摸屏、按键的底层事件/dev/input/event*网络协议栈TCP/IP、Wi-Fi 驱动、蓝牙协议栈关联知识Zygote 进程通过 fork() 系统调用内核提供孵化应用进程Binder 驱动是 Framework 层所有 IPC 的根基。第 2 层硬件抽象层HALAndroid 不想把硬件访问代码直接塞进内核避免 GPL 传染、方便厂商闭源所以在内核之上加了一层标准化接口。应用 → Framework → HAL 接口定义AIDL/HIDL→ 厂商 HAL 实现 → 内核驱动 → 硬件类型说明Legacy HAL早期以共享库.so形式存在由 Framework 直接 dlopenHIDL HALAndroid 8.0 引入通过 Binder IPC 调用支持独立更新AIDL HALAndroid 11 起逐步替代 HIDL统一用 AIDL例子Camera 拍照流程Camera App → CameraManager (Framework) → CameraService (Native) → Camera HAL (厂商实现如 Qualcomm CAMX) → Camera 驱动 → 硬件传感器第 3 层系统运行库层这一层是 Native 世界包含两部分A. Android RuntimeART特性说明AOT 编译安装时把字节码编译成机器码.oat/.vdex运行时直接执行GC并发标记清除Concurrent Copying GC减少卡顿JIT 回退Android 7 混合模式热代码 JIT 编译冷代码 AOTProfile-S Guided根据用户使用习惯优化编译Kotlin/Java 代码最终在这里被 ART 翻译成 CPU 指令。B. Native Libraries库用途SurfaceFlinger你之前问过的负责合成所有 Layer 的图像送显OpenGL ES / Vulkan图形渲染Skia、HWUI 都依赖它WebView / Chromium网页渲染引擎MediaCodec音视频硬解码通过 OMX/Codec2 调用 HALSQLite本地数据库Binder IPC 库(libbinder)Framework 的Binder.java底层就是调这个第 4 层应用框架层Application FrameworkSystemServer 所在的位置。服务/组件职责对应进程ActivityManagerService (AMS)管理 Activity 生命周期、进程调度、任务栈system_serverWindowManagerService (WMS)管理窗口层级、Surface 分配、输入事件分发system_serverPackageManagerService (PMS)APK 安装/卸载/权限管理、组件解析system_serverContentProvider跨进程数据共享各应用进程 / system_serverView System / ResourceManagerUI 测量布局绘制、资源加载应用进程NotificationManager通知栏管理system_serverLocationManagerGPS/网络定位system_server关键机制SystemServer 启动后在这里注册各种 Service。应用通过 Context.getSystemService() 获取 Binder Proxy与 system_server 里的 Binder Stub 通信。Activity 启动流程就是应用进程↔ AMS ↔ WMS 在这一层的协作。第 5 层应用层最上层直接面向用户。类型例子系统应用Phone、Contacts、Settings、Launcher、SystemUI第三方应用微信、抖音、你的 App每个应用运行在独立的沙箱进程中拥有独立的 UID 和虚拟机实例。应用之间默认不能互相访问内存必须通过 Framework 提供的 IPC 机制通信。三、层与层之间如何通信1. 应用层 ↔ Framework 层// 你写的代码valamgetSystemService(Context.ACTIVITY_SERVICE)asActivityManager底层通过 Binder IPC 调用 system_server 里的 AMS。2. Framework 层 ↔ Native 层Framework 的 Java 代码通过 JNIJava Native Interface 调用 C/C 库。// Surface.javaprivatenativelongnativeCreateFromSurfaceTexture(...);3. Native 层 ↔ HAL 层通过 HIDL/AIDL 接口 或直接的函数调用Legacy HAL。4. HAL 层 ↔ 内核层标准的 Linux 系统调用、ioctl、读写设备节点/dev/xxx。四、AOSP 源码目录对应层级AOSP 路径应用层packages/apps/Frameworkframeworks/base/AMS、WMS、PMS 在这里Native 库frameworks/native/SurfaceFlinger、InputHALhardware/interfaces/HIDL/AIDL 定义内核kernel/或common/Binder 驱动、各子系统ARTart/Bionic libcbionic/五、总结内核层管硬件和进程HAL 层隔离厂商实现Native 层做图形/媒体/虚拟机Framework 层管应用生命周期和系统服务应用层写业务逻辑。层与层之间靠 Binder IPC跨进程、JNI跨语言、HAL 接口跨硬件粘合。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号