Android 10 根文件系统和编译系统(四):Android源码目录结构

本文深入解析Android 10.0 AOSP源码结构,涵盖顶层目录至细节,包括ART runtime、C/C++库、编译系统、CTS测试、框架层代码与系统组件,助您理解整体架构。

配套系列教学视频链接:

Android 10.0 AOSP源码编译:

        https://www.100ask.net/detail/p_60a1e037e4b0adb2d864c6d8/6

Android 10.0 根文件系统和编译系统:

        https://www.100ask.net/detail/p_60ab34b7e4b00176519e388c/6


说明

系统:AOSP Android10.0

设备:Android模拟器

前言

本章节重点介绍AOSP下载后的Android10.0源码目录结构, 方便大家对Android源码有一个总体的认识。


一, 顶层目录

目录名

说明

art/

Anroid RunTime(Android运行环境),Android5.0之后java虚拟机就使用ART

bionic/

基础C库源代码,Android改造的C/C++库, 比传统的glibc更精简,不受GPL限制,支持 pthread_cancel(), 不支持C++ exception和C++ STL模板编程。

bootable/

包含了recovery程序(恢复出厂/升级)的代码。

build/

Android编译系统,定义了各种编译规则,并包含通用产品配置。

cts

Android兼容性测试套件,CTS 是一个自动化测试套件,包含PC端和设备端(被测设备), 对手机的硬件,软件,接口,性能进行测试 ,测试项目包含平台 API 测试,平台 Intent,蓝牙设备的连接状况, 相机拍照功能等,通过make cts编译, out/host/linux-x86/cts/下生成android-cts文件夹。

由于Android是开源的,对于Google Android的开发联盟中的Motorola、Samsung、Qualcomm 、Sony Ericsson、中国移动、ZTE、华为等,底层的代码也是开放的。手机制造商及运营商可以在Android上打造,定制自己特有的手机操作系统,这势必在源码级别上对Android系统进行代码的添加和更改。如果不规范这些更改则会给上层的应用开放的移植带来问题(那个时候你会看到MOTO上跑的愤怒的小鸟会在三星的Android手机上运行不了,每个应用需要都要发布不同厂商的Android手机的版本),只有通过CTS测试的Android手机系统,Google才会颁发许可,以保证不同生产商之间的Android系统的兼容。

dalvik

Android Dalvik虚拟机相关内容,主要是提供了一下工具,如dexdump, vm主代码已经移除

developers

开发者目录, 一些应用程序的参考实例demo代码

development

提供应用开发的工具, 应用例子,monkey命令,shell脚本和python脚本:

development/scripts/stack:用于展开进程异常时的堆栈信息, 配合tombstone文件

development/scripts/gdbclient.py: 用于gdb调试

development/scripts/native_heapdump_viewer.py脚本将dumpheap进程结果转换成更易读的html格式

development/tools/make_keys: 系统签名生成器

development/tools/idegen: 用于生成android.ipr、android.iml IEDA工程配置文件,可以用android studio来导入android源码

device

设备产品定制目录, 该目录是厂商和产品公司定制文件比较多的地方

vendor

厂商定制目录,该目录可以新建出来

external

外部第三方开源的库和工具,比如ppp, wpa_supplicant, libz, libcurl等

frameworks

Android 应用框架层核心代码, 包括各种系统资源, 后台服务, SystemUI, 大部分都是java代码, 同时也包含了各种子系统的native代码, 如av, net等

hardware

硬件抽象层代码, 如gps, wifi, viberate

kernel

内核源码,厂商可以将内核源码集成到该目录

libcore

Android 系统中支持众多 Java 标准的库,例如 java.lang 包,libart库,JSON库

luni/src/main/java/java/nio

ojluni/src/main/java/sun

ojluni/src/main/java/java/io

./ojluni/src/main/jav

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旗浩QH

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值