📢 1. 职业规划篇
📢 2.基础篇
基础篇.用 bugreport 带你看 Crash 和 ANR
📢 3. 系统应用篇
系统应用篇.解密 Partner、google PAI 机制
📢 4. 系统篇
系统篇.SystemServer 简介、自定义 Service 服务一
系统篇.SystemServer 简介、自定义 Service 服务二
系统篇.SystemServer 简介、自定义 Service 服务三
系统篇.SystemServer 简介、自定义 Service 服务四
📢 5. 性能篇
(省)低内存优化
性能篇 (省).SystemServer 与 LMK 的 socket 通信
(稳)稳定性优化
(快)开机优化
framework交流,答疑:251662478
整机开发常见名词解析,一篇带你全搞懂!
在 Android 整机开发 过程中,我们会经常遇到一些专业术语,例如 AOSP、SoC、HAL、ODM、SystemServer、Bootloader 等等。如果你是刚入门的开发者,看到这些术语可能会一脸懵 🤯,那么这篇文章就带你一次性搞懂这些核心概念!🔥
🛠 1. AOSP(Android Open Source Project)
AOSP,全称 Android 开源项目,是 Google 开源的 Android 系统源码项目。
📌 特点:
✅ 开源,任何厂商、开发者都可以基于 AOSP 进行修改和二次开发。
✅ 主要包含 Framework、SystemServer、Settings、Launcher、SystemUI 等核心模块。
✅ 但 AOSP 不包含 Google GMS(Google Mobile Services) ,即没有 Play 商店、Google 服务框架等。
📌 AOSP 主要源码目录:
| 目录 | 作用 |
|---|---|
| frameworks/base/ | Android 框架核心代码 |
| system/ | SystemServer、启动流程等 |
| packages/apps/ | AOSP 自带应用(如 Settings、Launcher) |
| vendor/ | 厂商自定义代码 |
💾 2. SoC(System on Chip)
SoC,系统级芯片,是指将 CPU、GPU、NPU、基带、ISP、音频处理等集成在一颗芯片上的设计。
📌 主流 SoC 厂商:
✅ 高通(Snapdragon)
✅ 联发科(Dimensity)
✅ 三星(Exynos)
✅ 苹果(A 系列、M 系列)
📌 SoC 影响的部分:
- 性能(CPU 架构、主频)
- 功耗(制程工艺,如 4nm、5nm)
- 相机(ISP 处理能力)
- AI 计算(NPU 性能)
🔌 3. HAL(Hardware Abstraction Layer)
HAL,硬件抽象层,是 Framework 与底层硬件驱动之间的桥梁。
📌 作用:
✅ HAL 屏蔽了具体的硬件实现,使得 Android 框架层可以调用统一接口,而不关心具体的硬件实现。
✅ 通过 VNDK(Vendor Native Development Kit) 保持 系统层(System) 和 厂商层(Vendor) 的分离,方便 ROM 适配。
📌 HAL 相关源码目录:
| 目录 | 作用 |
|---|---|
| hardware/libhardware/ | 传统 HAL |
| hardware/interfaces/ | HIDL(Android 8+) |
| vendor/某厂商/ | 各厂商定制 HAL |
📱 4. ODM & OEM
📌 OEM(Original Equipment Manufacturer,原始设备制造商)
OEM 指的是品牌商,如 小米、OPPO、vivo,他们主要负责市场、品牌、产品定义,真正的生产、研发可能由 ODM 代工。
📌 ODM(Original Design Manufacturer,原始设计制造商)
ODM 指的是 代工厂,如 闻泰、华勤、龙旗,他们为 品牌厂商(OEM) 设计、生产手机,然后贴上品牌商 Logo 进行销售。
📌 例子:
🔹 小米的 Redmi 手机,可能是 闻泰 ODM 代工。
🔹 OPPO、vivo 的一些低端机型,可能由 华勤 ODM 代工。
🖥 5. SystemServer
SystemServer 是 Android 系统的核心进程,在 Zygote 启动后,会 fork 出 SystemServer 进程,负责管理所有的 系统服务(System Service) 。
📌 SystemServer 负责的关键服务:
| 服务 | 作用 |
|---|---|
| AMS(ActivityManagerService) | 管理 APP 进程、四大组件 |
| WMS(WindowManagerService) | 管理窗口、动画、显示区域 |
| PMS(PackageManagerService) | 管理 APK 安装、权限 |
| PowerManagerService | 电源管理、屏幕亮灭控制 |
| InputManagerService | 处理触摸事件、按键事件 |
| NotificationManagerService | 处理通知栏消息 |
📌 SystemServer 启动流程:
1️⃣ Zygote 进程 fork 出 SystemServer 进程
2️⃣ 加载 frameworks/base/services/java/com/android/server/SystemServer.java
3️⃣ 启动各个系统服务(AMS、WMS、PMS...)
🔑 6. Bootloader(引导加载程序)
Bootloader 是 系统启动的第一步,负责加载 Linux Kernel,并引导 Android 启动。
📌 Bootloader 主要作用:
✅ 进入 Fastboot 模式,支持刷机、解锁。
✅ 验证 Boot 分区签名,确保系统完整性(Android Verified Boot,AVB)。
✅ 加载 Boot.img,启动 Linux 内核。
📌 常见的 Bootloader 解锁命令:
adb reboot bootloader
fastboot oem unlock
🔍 7. SELinux(Security-Enhanced Linux)
SELinux 是 Android 4.4+ 引入的安全机制,它采用 强制访问控制(MAC) ,限制 APP & System 进程的权限,防止恶意操作。
📌 SELinux 主要策略:
| 模式 | 作用 |
|---|---|
| Enforcing(强制模式) | 默认模式,严格执行 SELinux 策略 |
| Permissive(宽松模式) | 记录违规操作,但不阻止 |
| Disabled(关闭模式) | 关闭 SELinux |
📌 SELinux 相关命令:
adb shell getenforce # 查看当前模式
adb shell setenforce 0 # 设为 Permissive 模式(仅限 root 设备)
💾 8. System / Vendor / Product 分区
在 Android 8.0 之后,为了 支持 Treble(解耦系统 & 厂商代码) ,Android 系统分区结构变为:
| 分区 | 作用 |
|---|---|
| System | AOSP 代码(/system/bin, /system/lib) |
| Vendor | SoC 厂商代码(/vendor/lib, /vendor/bin) |
| Product | 手机厂商自定义功能(/product/app) |
📌 Treble 主要作用: ✅ AOSP 更新时,不影响厂商代码,ROM 适配更快。
✅ 厂商只需要适配 Vendor 分区,可以兼容不同的 Android 版本。
🔗 9.AIDL(Android Interface Definition Language)
AIDL(Android 接口定义语言)用于定义 进程间通信(IPC) 的接口,使得不同进程中的组件可以通过 Binder 进行通信。
📌 常见使用场景:
- 系统服务(AMS、WMS)
- 跨进程通信(APP 访问后台服务)
- 系统应用(Settings、Telephony)
🔌 10..Binder(Android IPC 机制)
Binder 是 Android 进程间通信(IPC) 的核心机制,它类似于 Linux 的 管道,但更高效、安全。
✅ Binder 作用:
- 进程间通信(IPC)
- 系统服务管理(AMS、WMS 依赖它)
- 应用权限管理
📌 Binder 相关源码:
| 目录 | 作用 |
|---|---|
| frameworks/native/libs/binder/ | Binder 核心代码 |
| system/libhwbinder/ | HIDL 相关 |
💾 11.HAL(Hardware Abstraction Layer)
HAL(硬件抽象层)是 Framework 与底层硬件驱动之间的桥梁。
✅ HAL 作用:
- 让 Android 框架可以调用 摄像头、音频、传感器、WiFi 等硬件
- 提供统一接口,屏蔽具体硬件差异
📌 HAL 代码结构:
| 目录 | 作用 |
|---|---|
| hardware/libhardware/ | 传统 HAL |
| hardware/interfaces/ | HIDL(Android 8+) |
| vendor/某厂商/ | 厂商 HAL 代码 |
🔡 12.HIDL(HAL Interface Definition Language)
HIDL 是 Android 8.0 之后引入的新 HAL 机制,用于让 系统层(System)和厂商层(Vendor) 更好地分离。
✅ HIDL 作用:
- 让 HAL 变成 稳定接口,Android 更新时不影响厂商代码
- 支持 Treble(解耦系统 & 厂商代码)
🖥 13.Zygote(应用进程孵化器)
Zygote 是 Android 启动的第一步,所有 APP 进程都是 Zygote fork 出来的。
✅ 作用:
- 预加载类库、资源,加快应用启动
- 减少内存占用(共享 Dex、So 代码)
📌 Zygote 启动流程:
1️⃣ init 进程启动 Zygote
2️⃣ Zygote 预加载系统类、资源
3️⃣ Zygote fork 出 SystemServer
4️⃣ 应用进程启动时,fork 自 Zygote
⚙ 14.SystemServer(系统核心进程)
SystemServer 是 Android 核心服务进程,负责管理 AMS、WMS、PMS 等重要服务。
📌 SystemServer 主要服务:
| 服务 | 作用 |
|---|---|
| AMS(ActivityManagerService) | 管理 APP 进程、四大组件 |
| WMS(WindowManagerService) | 管理窗口、动画、显示区域 |
| PMS(PackageManagerService) | 管理 APK 安装、权限 |
| PowerManagerService | 电源管理、屏幕亮灭控制 |
📱 15.GMS(Google Mobile Services)
GMS 是 Google 提供的 应用和 API,比如 Google Play、Gmail、YouTube 等。
📌 国产 ROM 需要 GMS 认证的原因:
✅ 方便国际化(Google Play 下载 APP)
✅ GMS 提供 Google 登录、地图 API
🛠 16.RRO(Runtime Resource Overlays) & SRO(Static Resource Overlays)
📌 RRO(动态资源覆盖)
- 运行时修改系统资源(如 WiFi 名称、主题)
- 不用重新编译 ROM,灵活性高
📌 SRO(静态资源覆盖)
- 编译时就覆盖资源(性能更好)
- 适合厂商定制 ROM,比如修改 Launcher 图标、默认主题
📂 17.XTS(CTS、VTS 兼容性测试)
XTS 是 Google 用来验证 Android 兼容性的测试套件,主要包括:
✅ CTS(Compatibility Test Suite) :测试 AOSP 是否符合标准
✅ VTS(Vendor Test Suite) :测试 HAL / Kernel 兼容性
🐵 18.Monkey(压力测试工具)
Monkey 是 Android 随机点击测试工具,用于 压力测试 APP。
📌 Monkey 命令示例:
adb shell monkey -p com.example.app -v 1000
🔗 19.fastboot(刷机模式)
fastboot 是 Android 刷机工具,用于解锁 Bootloader、刷入系统镜像。
📌 常见 fastboot 命令:
adb reboot bootloader
fastboot oem unlock
fastboot flash boot boot.img
📦 20.Mainline(Google Play 更新核心组件)
Mainline 是 Google 通过 Play Store 更新系统核心组件 的机制,不需要厂商 OTA 更新。
📌 Mainline 作用:
✅ 让用户更快获得安全补丁
✅ 不依赖厂商 OTA,减少更新延迟
🚀 21. 你学到了什么?
📢 以上就是 Android 整机开发中的常见名词解析,如果你想深入 AOSP 开发,搞懂这些术语是 第一步!
✅ 📌 你还想了解哪些整机开发知识?欢迎留言讨论!🔥