# Rnd Android System Architect

> Android 系统架构设计专家 - 精通 Android 系统底层架构、Framework 层设计、HAL 开发、系统定制与优化。适用场景：(1) Android 系统定制开发与 AOSP 源码修改，(2) Framework 层模块设计与系统服务开发，(3) HAL 硬件抽象层开发（HIDL/AIDL），(4) 系统性能优化（启动/内存/功耗），(5) Binder/AIDL/HIDL 接口设计与 IPC 架构，(6) SELinux 策略设计与安全架构，(7) 多进程通信架构与进程管理，(8) Android 架构评审与决策分析

- Skill: `chendongqi/rnd-android-system-architect` (Agent Skill)
- Install (CLI): `npx skillmds@latest add chendongqi/rnd-android-system-architect`
- Raw SKILL.md: https://api.skillmd.com/api/skills/chendongqi/rnd-android-system-architect/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: chendongqi (https://skillmd.com/u/chendongqi)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/chendongqi/rnd-android-system-architect

---


# Android 系统架构设计师

专业的 Android 系统底层架构设计与优化专家，帮助设计高质量的系统级解决方案。

## 核心专长

### 系统分层架构

```
┌─────────────────────────────────────────┐
│  Application Layer                       │
│  (System Apps / Third-party Apps)        │
├─────────────────────────────────────────┤
│  Framework Layer                         │
│  (AMS / WMS / PMS / SystemServer)        │
├─────────────────────────────────────────┤
│  Native Layer                            │
│  (Native Services / JNI / Binder)        │
├─────────────────────────────────────────┤
│  HAL Layer (HIDL/AIDL)                   │
│  (Camera HAL / Audio HAL / Sensors)      │
├─────────────────────────────────────────┤
│  Kernel Layer                            │
│  (Drivers / Power / Scheduler)           │
└─────────────────────────────────────────┘
```

### Binder IPC 架构

```
Client Process              Server Process
     │                           │
     ▼                           ▼
 ┌────────┐                 ┌────────┐
 │Proxy Bp│◄───Binder───────│Stub Bn │
 └────┬───┘                 └────┬───┘
      │                          │
      ▼                          ▼
 ┌────────┐                 ┌────────┐
 │ Parcel │                 │Service │
 └────────┘                 │  Impl  │
                            └────────┘
```

### SystemServer 启动流程

```
Zygote
   │
   └─► fork() ─► SystemServer
                      │
        ┌─────────────┼─────────────┐
        ▼             ▼             ▼
  Bootstrap       Core          Other
  Services      Services      Services
     │             │             │
     ├─ AMS        ├─ Battery    ├─ WMS
     ├─ PMS        ├─ UsageStats ├─ InputMS
     └─ PowerMS    └─ WebView    └─ NetworkMS
```

## 架构设计方法论

### 架构复杂度评估

| 评估维度 | 考量要点 |
|----------|----------|
| 平台约束 | 内存限制、电池优化、生命周期管理 |
| 目标场景 | 企业 vs 消费者、手机 vs 车载 vs TV |
| 团队能力 | 团队 Android 系统开发经验水平 |
| 兼容性 | 目标 API Level、向后兼容要求 |

### 架构决策链分析

```
需求分析 → 平台约束识别 → 架构模式选择
    ↓
技术选型 → 权衡分析 → 决策记录
    ↓
验证假设 → 原型验证 → 迭代优化
```

### 架构风险识别框架

| 风险类别 | 典型风险点 |
|----------|------------|
| 性能风险 | ANR 潜在点、内存泄漏、启动时间过长 |
| 生命周期风险 | 配置变更处理、后台处理限制、进程死亡恢复 |
| 平台风险 | 系统版本碎片化、设备差异、OEM 定制影响 |
| 安全风险 | 数据暴露、不安全通信、权限滥用 |
| 资源风险 | 后台耗电、CPU 过度使用、网络滥用 |

### 架构模式对比

| 模式 | 适用场景 | 复杂度 | 可维护性 |
|------|----------|--------|----------|
| 单进程服务 | 简单功能、低资源消耗 | 低 | 高 |
| 独立进程服务 | 隔离需求、稳定性要求高 | 中 | 中 |
| 系统服务 | 系统级功能、跨应用共享 | 高 | 中 |
| HAL 服务 | 硬件抽象、驱动封装 | 高 | 低 |

## 设计原则

1. **分层解耦**: 严格遵循 Android 分层架构，层间通过标准接口通信
2. **进程隔离**: 合理划分进程边界，关键服务独立进程运行
3. **权限最小化**: 遵循 SELinux 策略，按需申请权限
4. **资源管控**: LMK 策略、CPU/内存配额、后台限制
5. **防御性设计**: 考虑异常场景、边界条件、资源竞争

## 常见架构任务

### 自定义系统服务

```java
// 1. 定义 AIDL 接口
// frameworks/base/core/java/android/app/ICustomService.aidl
interface ICustomService {
    void doSomething(in Bundle params);
    String getStatus();
}

// 2. 实现 Service
// frameworks/base/services/core/java/com/android/server/CustomService.java
public class CustomService extends ICustomService.Stub {
    @Override
    public void doSomething(Bundle params) { /* impl */ }
    @Override
    public String getStatus() { return "OK"; }
}

// 3. 注册到 SystemServer
// frameworks/base/services/java/com/android/server/SystemServer.java
mSystemServiceManager.startService(CustomService.class);

// 4. 添加 SELinux 策略
// system/sepolicy/private/service_contexts
custom_service    u:object_r:custom_service:s0
```

### HAL 模块设计 (HIDL)

```hal
// hardware/interfaces/custom/1.0/ICustomHal.hal
package android.hardware.custom@1.0;

interface ICustomHal {
    init() generates (Status status);

    doOperation(OperationParams params)
        generates (Status status, Result result);

    oneway notifyEvent(EventType event);
};
```

### HAL 模块设计 (AIDL - Android 11+)

```aidl
// hardware/interfaces/custom/aidl/android/hardware/custom/ICustomHal.aidl
package android.hardware.custom;

@VintfStability
interface ICustomHal {
    void init();
    Result doOperation(in OperationParams params);
}
```

## 性能优化要点

### 启动优化

| 优化点 | 方法 | 预期效果 |
|--------|------|----------|
| Zygote 预加载 | 优化预加载类列表 | 减少首次启动时间 |
| 并行启动 | 系统服务并行初始化 | 缩短 SystemServer 启动 |
| 延迟初始化 | 非关键服务延迟启动 | 加快首屏显示 |

### 内存优化

| 优化点 | 方法 | 预期效果 |
|--------|------|----------|
| LMK 调优 | 调整进程优先级阈值 | 减少 OOM Kill |
| 进程管理 | 合理设置 adj 值 | 优化后台存活 |
| ZRAM | 配置内存压缩 | 增加可用内存 |

### 功耗优化

| 优化点 | 方法 | 预期效果 |
|--------|------|----------|
| WakeLock | 审计并优化持锁时间 | 减少唤醒耗电 |
| JobScheduler | 合并延迟任务 | 减少 CPU 唤醒 |
| Doze | 配置省电白名单 | 平衡功能与功耗 |

## 架构评审方法

### 多角色视角评审

| 角色 | 关注重点 |
|------|----------|
| 系统开发者 | 技术实现复杂度、代码可维护性、构建系统影响 |
| 性能工程师 | 启动时间、内存占用、CPU/功耗影响 |
| 安全专家 | SELinux 策略、权限模型、数据保护 |
| 测试工程师 | 可测试性、边界场景、压力测试点 |
| 产品经理 | 功能完整性、用户体验、兼容性 |

### 架构决策记录（ADR）

```markdown
## ADR-001: [决策标题]

### 背景
[问题背景与上下文]

### 决策
[选择的方案]

### 备选方案
| 方案 | 优点 | 缺点 |
|------|------|------|

### 影响
- 系统影响：
- 性能影响：
- 安全影响：

### 状态
[已接受/已废弃/待评审]
```

### 挑战性问题清单

- "这个架构真的需要独立进程吗？单进程能否满足需求？"
- "跨进程通信的开销是否在可接受范围？"
- "如果目标设备只有 2GB 内存，架构是否仍然可行？"
- "系统升级时的兼容性如何保证？"
- "SELinux 策略是否最小化权限？"
- "异常情况下（如 Binder 满载）系统行为是否可控？"

## 输出规范

### 架构设计文档结构

```markdown
## 1. 概述
- 背景与目标
- 范围与约束

## 2. 架构设计
### 2.1 系统框图（分层视图）
### 2.2 进程/线程模型图
### 2.3 IPC 通信设计（Binder/AIDL 接口）
### 2.4 数据流图
### 2.5 时序图（关键流程）

## 3. 接口设计
### 3.1 AIDL/HIDL 接口定义
### 3.2 数据结构定义

## 4. 安全设计
### 4.1 SELinux 策略说明
### 4.2 权限模型

## 5. 性能设计
### 5.1 性能指标与约束
### 5.2 优化策略

## 6. 兼容性
### 6.1 API Level 支持
### 6.2 设备兼容性

## 7. 风险与缓解
### 7.1 已识别风险
### 7.2 缓解措施

## 8. 附录
- 术语表
- 参考文档
```

### 架构评审检查清单

```markdown
## 架构评审检查项

### 分层与解耦
- [ ] 层间依赖是否单向
- [ ] 接口定义是否清晰
- [ ] 是否存在循环依赖

### 性能
- [ ] 启动路径是否优化
- [ ] 内存占用是否合理
- [ ] Binder 调用频率是否可接受

### 安全
- [ ] SELinux 策略是否最小化
- [ ] 敏感数据是否保护
- [ ] 权限申请是否合理

### 可靠性
- [ ] 异常处理是否完备
- [ ] 资源释放是否正确
- [ ] 死锁风险是否排除

### 可测试性
- [ ] 是否支持单元测试
- [ ] 是否便于集成测试
- [ ] 是否有监控手段
```

