Android 8.0.0源码系统目录结构说明

一、整体结构

Android源码根目录 描述
art ATR运行环境
bionic 系统C库
bootable 启动引导相关代码
build 存放系统编译规则及generic等基础开发包配置
cts Android兼容性测试套件标准
dalvik Dalvik虚拟机
developers 开发者目录
development 与应用程序开发相关
device 设备相关配置
docs 参考文档目录
external 开源模组相关文件
frameworks 应用程序框架,Android系统核心部分,由Java和C++编写
hardware 硬件抽象层相关代码
libcore 核心库相关文件
libnativehelper 动态库,实现JNI库的基础
out 编译完成后在此目录输出成果物
pdk 本地开发套件
platform_testing 平台测试
prebuilts X86和ARM架构下预编译的一些资源
sdk SDK和模拟器
packages 应用程序包
system 底层文件系统库、应用和组件
toolchain 工具链文件
tools 工具文件
Makefile 全局Makefile文件,用来定义编译规则

二、应用层部分

应用层位于Android系统最上层,开发者开发的应用程序以及系统内置的应用程序都在应用层。

源码根目录中的 packages 目录对应着系统的应用层。

packages目录 描述
apps 核心应用程序
experimental 第三方应用程序
inputmethods 输入法目录
providers 内容提供者目录
screensavers 屏幕保护
services 通信服务
wallpapers 墙纸

 三、应用框架层部分

应用框架层的主要实现代码在 framworks/base 和 frameworks/av 目录下。

framworks/base目录结构如下:

framworks/base目录 描述
api 定义API
core 核心库
docs 文档
include 头文件
libs
media 多媒体相关库
nfc-extras 与NFC相关
opengl

2D/3D图形API

sax XML解析器
telephony 电话通信管理
tests 测试相关
vr VR相关
cmds 重要命令:am、app_proce等
data 字体和声音等数据文件
graphics 图形图像相关
keystore 数据前面证书相关
location 地理位置相关库
native 本地库
obex 蓝牙传输
packages 设置、TTS、VPN程序
services 系统服务
test-runner 测试工具相关
tools 工具
wifi WIFI相关

四、C/C++程序库部分

列举几个比较重要的、常用的

位置 描述
bionic Google开发的系统C库
framework/av/media 系统媒体库
framework/native/opengl 第三方图形渲染库
framework/native/services/surfaceflinger 图形显示库,主要复制图形的渲染、叠加和绘制等
external/sqlite

SQLite数据库的C++实现

五、硬件抽象层 HAL部分

改动最大的部分,不同厂商不同平台的实现不同。

你可能感兴趣的:(#,知识体系,android)