介绍Android源码目录内都包含什么内容
1.根目录
| 文件夹名 | 内容 |
|---|---|
| art | 全新的ART运行环境 |
| bionic | 系统C库 |
| bootable | 系统启动引导代码 |
| build | 存放Android系统编译规则,以及generic等基础开发配置包。 |
| cts | Android 兼容性测试套件标准 |
| dalvik | Dalvik虚拟机 |
| developers | 开发者目录,包含构建App和一些demo代码 |
| development | 与应用成虚开发相关 |
| device | 设备相关配置 |
| docs | 参考文档目录 |
| external | 开源模组相关文件 |
| frameworks | 应用程序框架,Android系统核心部分,由Java和C++编写 |
| hardware | 主要是硬件抽象层的代码 |
| libcore | 核心库相关文件 |
| libnativehelper | 动态库,实现JNI库的基础 |
| out | 编译完成后生成的所有都在这里 |
| pdk | Plug Development kit的缩写,本地开发套件 |
| platform_testing | 平台测试 |
| prebuilts | x86和ARM架构下预编译的一些资源 |
| sdk | sdk和模拟器 |
| packages | 系统应用程序包 |
| system | 底层文件系统库,应用和组件 |
| toolchain | 工具链文件 |
| tools | 工具文件 |
| makefile | 全局Makefile文件,用来定义编译规则 |
2.packages应用层部分
| 文件夹名 | 内容 |
|---|---|
| apps | 核心应用程序 |
| experimental | 第三方应用程序 |
| inputmthods | 输入法目录 |
| providers | 内容提供目录 |
| screensavers | 屏幕保护目录 |
| services | 通信服务 |
| wallpapers | 墙纸 |
3.frameworks 应用框架层
应用框架层是系统的核心部分,向上提供接口给应用层调用,向下与c/c++程序库以及硬件抽象层衔接,其主要实现代码在frameworks/base 和 frameworks/av下
frameworks/base
| 文件夹名 | 内容 | 文件夹名 | 内容 |
|---|---|---|---|
| api | 定义api | cmds | 重要命令:am\app_procee等 |
| core | 核心库 | data | 字体和声音等文件 |
| docs | 文档 | graphics | 与图形图像相关 |
| include | 头文件 | keystore | 与数据签名证书相关 |
| libs | 库 | location | 地理位置相关 |
| media | 多媒体库 | native | 本地库 |
| nfc-extras | 与NFC相关 | obex | 蓝牙传输 |
| opengl | 2D/3D图形API | packages | 设置TTS、VPN程序 |
| sax | xml解析器 | services | 系统服务 |
| telephony | 电话通信管理 | test-runner | 测试工具相关 |
| tests | 与测试相关 | tools | 工具 |
| vr | 与VR相关 | wifi | wifi无线网络 |
4.C/C++程序库部分
系统运行库层native中C/C++程序库类型繁多,功能强大,他们并不完全在一个目录中,这里是几个蟾宫的重要的程序库所在的目录位置
| 目录位置 | 内容 |
|---|---|
| bionic | Google开发的系统C库,以BSD许可形式开源 |
| frameworks/av/media | 系统媒体库 |
| frameworks/native/opengl | 第三方图形渲染库 |
| frameworks/native/serevices/surfaceflinger | 图形显示库,负责图形渲染、叠加、绘制等 |
| external/sqlite | 轻量级关系型数据库SQLite的C++实现 |
5.Android架构层级和代码目录的大致对应关系
android 架构与目录对应.jpg







网友评论