目录
一、Android系统架构图
http://t.csdn.cn/Ja8ul
http://t.csdn.cn/Ja8ul
二、Android源码目录解析
各个版本的源码目录结构基本上是大同小异,这里我下载的源码版本是9.0的,如果你不知道你下载的源码版本的话,可以打开build->core->version_defaults.md中找到PLATFORM_SDK_VERSION字段,PLATFORM_SDK_VERSION:=28就是Android源码的版本。
Android源码目录结构如下:
- art:Android Runtime,一种App运行模式,区别于传统的Dalvik虚拟机,旨在提高Android系统的流畅性。
- bionic:基础C库源代码,Android改造的C/C++库。
- bootable:Android程序启动导引,适合各种bootloader的通用代码,包括一个recovery目录。bootable/bootloader/edk2目录是基于uefi的应用程序处理器引导加载程序。
- build:存放系统编译规则及generic等基础开发包配置。
- compatibility:Android兼容性计划。
- cts: Android兼容性测试套件标准。
- dalvik:Android Dalvik虚拟机相关内容。
- developers:Android开发者参考文档。
- development: Android应用开发基础设施相关。为开发者提供Android参考应用程序和工具。
- device:Android支持的各种设备及相关配置。
- disregard:忽略文件。
- external:Android中使用的外部开源库。
- frameworks:应用程序框架,Android系统核心部分,由Java和C++编写。Android平台层(系统库和Java组件)。
- hardware:硬件适配接口。硬件抽象层(HAL)(音频、传感器)和特定于硬件的qti包装器。
- kernel:Linux Kernel,不过Android默认不提供,需要单独下载,只有一个tests目录。
- libcore:Android Java核心类库。
- libnativehelper:Android动态库,实现JNI库的基础。
- non-hlos:高通私码。在about.html文件中能查看高通基线号。
ADSP(Applications Digital Signal Processor Subsystem):应用数字信号处理器子系统,音频及sensor相关。
TZ(TrustZone):安全环境,提供可信执行环境(TEE)。
WCNSS:Wireless connectivity subsystem,无线连接子系统。WLAN模块的firmware(固件)和一些配置文件等。
Bootloaders:(UEFI:可扩展固件接口)。BT模块的firmware(固件)和一些配置文件等。
MPSS:Modem peripheral subsystem software,调制解调器外围子系统软件。
RPM:Resource Power Manage,电源资源管理。
- out:由用户编译生成的文件。out/host/是主机由Android构建创建的可执行文件。
out/target/product/<product>是目标文件:
super.img——包含列出超级分区中每个动态分区的名称和块范围的元数据。Android中可能的动态分区有System,Vendor, Product, System Ext, ODM。
vendor_boot.img——包含用于供应商引导功能的模块。
abl.elf——应用程序引导加载程序。
boot.img——Android引导映像(Linux内核+root FS)。
system.img——Android组件(/system)。
userdata.img——Android开发应用程序和数据库。
root/——root FS目录,编译为ramdisk。并合并到boot.img中。
system/——System FS目录,编译为system.img。
本文详细介绍了Android系统的架构,包括系统架构图、源码目录解析、设备文件系统目录和启动过程。深入探讨了Android的层级结构,如应用程序层、框架层、硬件抽象层和内核层,以及设备文件系统中的sysfs。此外,还涵盖了Android启动过程中的关键步骤,如Bootloader、Kernel、Init、Zygote和System Service。
最低0.47元/天 解锁文章
4424

被折叠的 条评论
为什么被折叠?



