AOSP 源码文件结构

  1. 源码结构
  2. 源码查询工具

源码结构

以源码 android13-release 分支为例:

  • Android.bp -> build/soong/root.bp
  • art/ Android ART虚拟机相关实现(替代dalvik虚拟机):虚拟机、运行库、dex2oat等工具、模拟器等。这个会提前把字节码编译成二进制机器码保存起来,执行的时候加载速度比较快。Dalvik虚拟机则是在加载以后再去编译的,所以速度上ART会比Dalvik快一点。牺牲空间来赢取时间。
  • bionic/ 谷歌为android重新实现的C语言函数库,Android系统与Linux内核的桥梁。
  • bootable/ 系统启动引导相关程序。bootloader 的实现,各厂家会有自己的版本,例如 MTK/MST 所用名为 Mboot bootloader。
  • bootstrap.bash -> build/soong/bootstrap.bash*
  • build/ AOSP源码编译相关:系统make编译规则、blueprint、kati、soong,以及envsetup.sh等配置及工具。用于构建 Android 系统的工具,也就是用于编译 Android 系统的。
  • BUILD -> build/bazel/bazel.BUILD
  • .ccls-cache/
  • cts/ Android 兼容性测试套件
  • dalvik/ dalvik虚拟机,用于解析执行dex文件的虚拟机
  • developers/ 提供给Android开发者的一些样例,可以导入到AS中编译
  • development/ 同developers类似,提供一些样例、工具
  • device/ 和具体设备相关的配置、文件、及修改,各厂家会放入里面响应目录
  • device/vendor_name/product_name。
  • external/ Android使用的一些开源的功能模块
  • frameworks/ 系统架构,Android核心框架
  • hardware/ 部分厂家开源的硬解适配层 HAL 代码,硬件抽象层。添加自定义属性位置
    • interfaces/automotive/vehicle/
      • 2.0/ HIDL 实现
      • aidl/ AIDL 实现
        • Android.bp
        • impl/
        • Android.bp
        • default_config/include/
          • DefaultConfig.h
        • VehicleProperty.aidl
  • kernel/ Linux kernel 源码
  • libcore/ java核心库 包括java api的源码
  • libnativehelper/ native帮助库,实现JNI的相关文件。支持Android类库,但与android.*无关,与VM无关的本机函数,用于实现系统的方法类库,以C实现。
  • Makefile 这个不是目录,include build/make/core/main.mk,核心编译规则
  • out/ 输出目录,编译AOSP时候产生的临时目录。临时文件和 最后生成的ROM镜像 都存放在里面
    • target/product/
      • emulator64_arm64
        • sdk-repo-linux-system-images-eng.tw-iot.zip 生成的系统镜像压缩包
      • emulator_car_x86_64
  • output.log
  • packages/ 应用程序包,一些系统的应用就在这里了,比如说蓝牙,Launcher,相机,拨号,settings之类的。供⻋机 app使用的 carlib,CarService 相关接口,调用 HAL 自定义属性,自定义权限修改位置。
    • services/Car/
      • apex_car_framework/
        • Android.bp
      • car-lib/src/android/car/
        • Car.java
        • VehiclePropertyIds.java
        • internal/
        • PropertyPermissionMapping.java
      • cpp/vhal/client/
        Android.bp
      • service/
        • Android.bp
        • AndroidManifest.xml
        • src/com/android/car/hal/
          • PropertyHalServiceIds.java
  • pdk/ PDK工具和测试代码的存放处,PDK套件用于帮助厂家适配新版本,完成HAL的开发
  • platform_testing/ 平台测试,为andorid 平台开发人员提供的测试及指导
  • prebuilts/ Android预编译的一些工具,如build-tools、qemu模拟器、gdb、gcc、sdk/ndk库等
  • .repo/ 代码仓库配置
  • sdk/ Android SDK
  • system/ Android底层文件系统库、应用和组件
  • test/ VTS 测试套件
  • toolchain/ 存放编译工具链
  • tools/ Android工具文件
  • vendor/ 存放各厂家自己定制的文件、实现,如app、配置、新增api、库等
  • WORKSPACE -> build/bazel/bazel.WORKSPACE

源码查询工具

官方在线查询工具


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 350394277@qq.com

Title:AOSP 源码文件结构

Count:887

Author:Yunlong Wen

Created At:2023-12-17, 14:18:27

Updated At:2023-12-17, 14:18:27

×

donation.headline