Android13 源码目录结构

67 阅读2分钟

Android13 源码目录结构.png

1. art - Android Runtime

  • 作用: Android运行时环境,替代了Dalvik虚拟机

  • 主要功能:

    • 提供AOT(Ahead-of-Time)编译
    • 管理应用程序的生命周期
    • 处理垃圾回收
    • 包含dex2oat编译器、ART运行时库等
  • 关键组件: runtime/, compiler/, dex2oat/, libartbase/

2. bionic - C库实现

  • 作用: Android的C标准库实现

  • 主要功能:

    • 提供POSIX兼容的C库函数
    • 实现动态链接器
    • 提供数学库、字符串处理等基础功能
  • 关键组件: libc/, libm/, linker/, libstdc++/

3. bootable - 启动相关

  • 作用: 系统启动和恢复相关代码

  • 主要功能:

    • 系统恢复模式(Recovery)
    • 启动加载器支持
  • 关键组件: recovery/, libbootloader/

4. bsp - Board Support Package

  • 作用: 板级支持包,硬件平台相关代码

  • 主要功能:

    • 特定硬件平台的驱动和配置
    • 内核配置和编译
    • 工具链和预编译库
  • 关键组件: kernel5.4/, device/, bootloader/, modules/

5. frameworks - 应用框架层

  • 作用: Android应用开发框架

  • 主要功能:

    • 提供应用开发API
    • 系统服务实现
    • 用户界面组件
  • 关键组件:

    • base/ - 核心框架
    • av/ - 音视频框架
    • native/ - 原生库
    • hardware/ - 硬件抽象层

6. system - 系统服务

  • 作用: 系统级服务和库

  • 主要功能:

    • 系统守护进程
    • 安全策略
    • 网络服务
    • 媒体服务
  • 关键组件:

    • core/ - 核心系统服务
    • vold/ - 卷管理
    • netd/ - 网络守护进程
    • sepolicy/ - SELinux策略

7. hardware - 硬件抽象层

  • 作用: 硬件相关的抽象接口和实现

  • 主要功能:

    • 硬件抽象层(HAL)接口定义
    • 各厂商硬件驱动
    • 硬件相关库
  • 关键组件:

    • interfaces/ - HAL接口定义
    • libhardware/ - 硬件库
    • qcom/, ti/, samsung/ - 各厂商实现

8. device - 设备配置

  • 作用: 特定设备的配置和定制

  • 主要功能:

    • 设备特定的配置文件
    • 厂商定制代码
    • 设备初始化脚本
  • 关键组件:

    • common/ - 通用设备配置
    • google/ - Google设备
    • generic/ - 通用设备

9. 其他重要目录

  • kernel/: Linux内核源码
  • external/: 第三方开源项目
  • packages/: 系统应用包
  • vendor/: 厂商专有代码
  • build/: 编译系统
  • dalvik/: 旧版Dalvik虚拟机(已废弃)
  • libcore/: 核心Java库
  • cts/: 兼容性测试套件
  • development/: 开发工具
应用层 (packages/)
    ↓
框架层 (frameworks/)
    ↓
系统服务层 (system/)
    ↓
硬件抽象层 (hardware/)
    ↓
内核层 (kernel/)

以上源码中的每个包下,有大量的子目录或文件,真正在开发中经常用到的目录:

build、frameworks、out、packages、vendor