Android Framework 核心架构图

Framework架构

复制代码
┌─────────────────────────────────────────────────────────────────────────┐
│                         Android 应用层 (Applications)                    │
│                   (Launcher, Settings, Browser, etc.)                   │
└─────────────────────────────────────────────────────────────────────────┘
                                    │
                                    ▼
┌─────────────────────────────────────────────────────────────────────────┐
│                     Framework Java API (core/java/android/)            │
├─────────────────────────────────────────────────────────────────────────┤
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐  ┌────────────┐ │
│  │    app/      │  │   content/   │  │     os/       │  │    view/   │ │
│  │  Activity    │  │   Context    │  │   Binder      │  │    View    │ │
│  │  Service     │  │   Intent     │  │   Handler     │  │   Window   │ │
│  │  Context     │  │   Content    │  │   Message     │  │   Surface  │ │
│  │  Fragment    │  │   Provider   │  │   Looper      │  │            │ │
│  └──────────────┘  └──────────────┘  └──────────────┘  └────────────┘ │
│                                                                         │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐  ┌────────────┐ │
│  │    graphics/ │  │    media/    │  │     net/     │  │ location/  │ │
│  │   Canvas     │  │   MediaPlay  │  │   Socket     │  │  Location  │ │
│  │   Bitmap     │  │   MediaRec   │  │   Network    │  │   Geofence │ │
│  │   Paint      │  │   Audio      │  │              │  │            │ │
│  └──────────────┘  └──────────────┘  └──────────────┘  └────────────┘ │
│                                                                         │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐  ┌────────────┐ │
│  │ hardware/    │  │   telephony/ │  │    app/      │  │   speech/  │ │
│  │   Camera     │  │   Phone      │  │   UsageStats │  │  TTS       │ │
│  │   Sensor     │  │   SMS        │  │   GameMgr    │  │            │ │
│  │   Display    │  │              │  │              │  │            │ │
│  └──────────────┘  └──────────────┘  └──────────────┘  └────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘
                                    │
                            ┌───────▼────────┐
                            │  JNI Bridge    │
                            │ (core/jni/)    │
                            └───────┬────────┘
                                    │
                                    ▼
┌─────────────────────────────────────────────────────────────────────────┐
│                        Framework Native Layer                           │
│                         (core/jni/ + native/)                           │
├─────────────────────────────────────────────────────────────────────────┤
│  ┌──────────────────────┐  ┌──────────────────────┐                     │
│  │   AndroidRuntime     │  │   libandroidfw      │                     │
│  │  (JNI Main Entry)    │  │  (Native I/O, Asset) │                     │
│  └──────────────────────┘  └──────────────────────┘                     │
│                                                                         │
│  ┌────────────────┐ ┌────────────────┐ ┌────────────────┐                │
│  │ android_view_ │ │ android_media_ │ │ android_os_    │                │
│  │ (Window,View,  │ │ (Audio,Media,  │ │ (Binder,Parcel,│                │
│  │  InputEvent)   │ │  Image)        │ │  MessageQueue) │                │
│  └────────────────┘ └────────────────┘ └────────────────┘              │
│                                                                         │
│  ┌────────────────┐ ┌────────────────┐ ┌────────────────┐                │
│  │android_hardware│ │ android_graphic│ │android_content_│                │
│  │(Camera,Sensor,│ │ (Surface,Graphic│ │ (AssetManager, │                │
│  │ USB,Display)   │ │  Buffer)        │ │  Resources)    │                │
│  └────────────────┘ └────────────────┘ └────────────────┘                │
└─────────────────────────────────────────────────────────────────────────┘
                                    │
                                    ▼
┌─────────────────────────────────────────────────────────────────────────┐
│                    System Services (services/)                          │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│  ┌─────────────────────────┐  ┌─────────────────────────┐               │
│  │   ActivityManager      │  │   WindowManager         │               │
│  │   (ActivityTaskManager) │  │   (你打开的ActivityRecord│               │
│  │   services/core/java/   │  │    就在这里)            │               │
│  │   com/android/server/am │  │   services/core/java/   │               │
│  │                         │  │   com/android/server/wm │               │
│  └─────────────────────────┘  └─────────────────────────┘               │
│                                                                         │
│  ┌─────────────────────────┐  ┌─────────────────────────┐               │
│  │   PackageManager        │  │   PowerManager          │               │
│  │   (应用安装/卸载)        │  │   (电源管理)             │               │
│  └─────────────────────────┘  └─────────────────────────┘               │
│                                                                         │
│  ┌─────────────────────────┐  ┌─────────────────────────┐               │
│  │   AudioService          │  │   DisplayService        │               │
│  │   (音频管理)             │  │   (显示管理)             │               │
│  └─────────────────────────┘  └─────────────────────────┘               │
│                                                                         │
│  ┌─────────────────────────┐  ┌─────────────────────────┐               │
│  │   BatteryService        │  │   InputManager          │               │
│  │   (电池管理)             │  │   (输入管理)             │               │
│  └─────────────────────────┘  └─────────────────────────┘               │
│                                                                         │
│  ┌─────────────────────────┐  ┌─────────────────────────┐               │
│  │   StorageManager        │  │   LocationManager       │               │
│  │   (存储管理)             │  │   (位置服务)             │               │
│  └─────────────────────────┘  └─────────────────────────┘               │
│                                                                         │
│  ┌─────────────────────────┐  ┌─────────────────────────┐               │
│  │   AppOpsService         │  │   UserManager           │               │
│  │   (权限操作)             │  │   (用户管理)             │               │
│  └─────────────────────────┘  └─────────────────────────┘               │
│                                                                         │
│  ┌─────────────────────────┐  ┌─────────────────────────┐               │
│  │   AlarmManagerService   │  │   NotificationManager   │               │
│  │   (闹钟管理)            │  │   (通知管理)            │               │
│  └─────────────────────────┘  └─────────────────────────┘               │
└─────────────────────────────────────────────────────────────────────────┘

core/java/ - Framework Java API 详解

这是 Android 应用开发者直接调用的 API 层:

复制代码
core/java/android/
├── app/                    # 应用组件核心
│   ├── Activity.java       # 活动窗口
│   ├── Service.java        # 后台服务
│   ├── Application.java    # 应用上下文
│   ├── ContextImpl.java    # Context实现
│   ├── Fragment.java       # 碎片化组件
│   ├── Dialog.java         # 对话框
│   └── IntentService.java  # Intent服务
│
├── content/                # 内容组件
│   ├── Context.java        # 上下文基类
│   ├── Intent.java        # 意图(启动组件)
│   ├── ContentResolver.java # 内容解析器
│   ├── ContentProvider.java# 内容提供者
│   └── BroadcastReceiver.java #广播接收
│
├── os/                     # 操作系统服务
│   ├── Binder.java        # 跨进程通信
│   ├── IBinder.java       # Binder接口
│   ├── Message.java       # 消息
│   ├── Looper.java        # 消息循环
│   ├── Handler.java      # 消息处理
│   ├── Parcel.java       # 序列化
│   ├── Process.java      # 进程管理
│   └── ServiceManager.java#服务管理
│
├── view/                   # UI视图系统
│   ├── View.java          # 视图基类
│   ├── Window.java        # 窗口
│   ├── SurfaceView.java   # 曲面视图
│   └── input/            # 输入事件
│
├── graphics/              # 图形系统
│   ├── Canvas.java        # 画布
│   ├── Bitmap.java        # 位图
│   ├── Paint.java         # 画笔
│   └── Color.java         # 颜色
│
├── media/                 # 多媒体
│   ├── MediaPlayer.java   # 媒体播放
│   ├── MediaRecorder.java # 媒体录制
│   └── AudioManager.java  # 音频管理
│
├── telephony/            # 电话通信
│   ├── TelephonyManager.java #电话管理
│   └── SmsManager.java    # 短信管理
│
├── location/             # 位置服务
│   ├── LocationManager.java #位置管理
│   └── Location.java      # 位置信息
│
├── hardware/            # 硬件抽象
│   ├── Camera.java      # 相机
│   ├── Sensor.java      # 传感器
│   └── Display.java     # 显示
│
└── net/                 # 网络
    ├── ConnectivityManager.java #连接管理
    └── WifiManager.java  # WiFi管理

services/ - 系统服务层详解

系统服务是运行在 system_server 进程中的核心服务:

复制代码
services/
└── core/java/com/android/server/
    ├── am/                     # ActivityManager服务
    │   ├── ActivityManagerService.java  # AMS核心
    │   ├── ActivityTaskManagerService.java # ATMS核心
    │   ├── ActivityTaskSupervisor.java   # Activity调度
    │   ├── ProcessRecord.java   # 进程记录
    │   ├── ProcessList.java      # 进程列表
    │   ├── BroadcastQueue.java   # 广播队列
    │   └── OomAdjuster.java      # OOM调整
    │
    ├── wm/                     # WindowManager服务
    │   ├── WindowManagerService.java # WMS核心
    │   ├── ActivityRecord.java  # Activity记录(你打开的文件)
    │   ├── ActivityStarter.java  # Activity启动器
    │   ├── DisplayContent.java   # 显示内容
    │   ├── WindowState.java      # 窗口状态
    │   └── RootWindowContainer.java # 根窗口容器
    │
    ├── pm/                     # PackageManager服务
    │   ├── PackageManagerService.java # PMS核心
    │   └── PermissionManager.java    # 权限管理
    │
    ├── power/                  # PowerManager服务
    │   └── PowerManagerService.java  # 电源管理
    │
    ├── audio/                  # Audio服务
    │   └── AudioService.java   # 音频服务
    │
    ├── display/               # Display服务
    │   └── DisplayManagerService.java # 显示管理
    │
    ├── input/                  # Input服务
    │   └── InputManagerService.java   # 输入管理
    │
    ├── storage/               # Storage服务
    │   └── StorageManagerService.java # 存储管理
    │
    ├── location/             # Location服务
    │   └── LocationManagerService.java # 位置管理
    │
    ├── battery/             # Battery服务
    │   └── BatteryService.java  # 电池服务
    │
    ├── appops/              # AppOps服务
    │   └── AppOpsService.java   # 权限操作服务
    │
    └── user/                # UserManager服务
        └── UserManagerService.java  # 用户管理

core/jni/ - Framework Native层详解

JNI层连接 Java API 和 C++ 原生实现:

复制代码
core/jni/
├── AndroidRuntime.cpp      # JNI主入口,startVM()
│
├── android_os_/            # OS相关JNI
│   ├── Binder.cpp         # Binder实现
│   ├── Parcel.cpp         # Parcel实现
│   ├── MessageQueue.cpp   # 消息队列
│   ├── ServiceManager.cpp # 服务管理
│   ├── Looper.cpp         # Looper实现
│   └── Trace.cpp          # 追踪
│
├── android_view_/         # View系统JNI
│   ├── Surface.cpp        # Surface实现
│   ├── View.cpp           # View实现
│   ├── WindowManagerGlobal.cpp #窗口管理
│   ├── InputEventReceiver.cpp #输入事件
│   ├── KeyEvent.cpp      # 按键事件
│   └── MotionEvent.cpp    # 触摸事件
│
├── android_content_/       # Content JNI
│   ├── AssetManager.cpp   # 资源管理
│   ├── Res XmlBlock.cpp   # XML解析
│   └── FileSystemUtils.cpp# 文件系统
│
├── android_media_/        # Media JNI
│   ├── AudioTrack.cpp     # 音轨
│   ├── AudioRecord.cpp   # 录音
│   ├── MediaPlayer.cpp   # 媒体播放
│   └── ImageReader.cpp   # 图像读取
│
├── android_hardware_/     # Hardware JNI
│   ├── Camera.cpp        # 相机
│   ├── SensorManager.cpp # 传感器
│   ├── DisplayManagerGlobal.cpp #显示
│   └── UsbDevice.cpp     # USB
│
├── android_graphics_/     # Graphics JNI
│   ├── GraphicBuffer.cpp # 图形缓冲
│   ├── SurfaceTexture.cpp# 表面纹理
│   └── BLASTBufferQueue.cpp # BLAST缓冲队列
│
└── android_opengl_/      # OpenGL JNI
    ├── EGL14.cpp         # EGL实现
    ├── GLES10.cpp        # OpenGL ES 1.0
    ├── GLES20.cpp        # OpenGL ES 2.0
    └── GLES30.cpp        # OpenGL ES 3.0
相关推荐
__Witheart__1 小时前
3588 安卓编译空间不足报错
android
aaajj1 小时前
【Android】手机屏幕劫持防护
android·智能手机
写做四月一日的四月一日2 小时前
在安卓手机上安装小龙虾openclaw并配置QQ机器人接入
android·人工智能
流星白龙2 小时前
【MySQL高阶】6.MySQL数据目录,日志
android·mysql·adb
福大大架构师每日一题2 小时前
rust 1.96.0 更新:语言、编译器、Cargo、Rustdoc、兼容性全面升级,必看完整解读
android·开发语言·rust
城管不管2 小时前
Agent——001
android·java·数据库·llm·prompt
刮风那天3 小时前
Android 理解onTransitionReady(一)
android
流星白龙3 小时前
【MySQL高阶】2.MySQL命令行客户端(2)
android·mysql·adb
努力努力再努力wz3 小时前
【Qt入门系列】:QLabel控件详解:从文本显示到图片展示,再到内容布局与伙伴机制
android·开发语言·数据结构·数据库·c++·qt·mysql