源码结构
以源码 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
 
 
 
 - interfaces/automotive/vehicle/
 - 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
 
 - emulator64_arm64 
 
 - target/product/ 
 - 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
 
 
 
 - apex_car_framework/ 
 
 - services/Car/ 
 - 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