阅读Android源码,最重要的是清楚每个目录是干什么的。关于源码的阅读,我们可以访问http://androidxref.com/来阅读。
这个网站更新到18年,下面我们以网站里最新的Pie - 9.0.0_r3为例子来分析。
1.首先打开网站如下图:
2.目录分析
Android源码根目录 | 描述 |
---|---|
Android.bp | 编译配置文件,是用来代替原来的Android.mk文件的 |
art | Android Runtime 全新的ART运行环境 |
bionic | Google开发的系统C库,以BSD许可形式开源。Android系统与Linux内核的桥梁 |
bootable | 启动引导相关代码 |
bootstrap.bash | 编译脚本 |
build | 存放系统编译规则及generic等基础开发包配置 |
compatibility | Android兼容性计划 Android源代码,Android兼容性定义文档(CDD文档),兼容性测试套件(CTS) |
cts | 存放系统编译规则及generic等基础开发包配置 |
dalvik | dalvik虚拟机,用于解析执行dex文件的虚拟机 |
developers | 开发者目录 |
device | 设备相关配置,厂商小米、OPPO、索尼、HTC、自己的产品,就可以定义在这个目录下 |
external | 开源模组相关文件 |
frameworks | 应用程序框架,Android系统核心部分,由Java和C++编写 |
hardware | 主要是硬件抽象层的代码 ,hal层代码 |
kernel | Linux内核目录 |
libcore | 核心库相关文件 |
libnativehelper | 动态库,实现JNI库的基础 |
Makefile | 编译文件 |
packages | 应用程序包,应用层位于Android系统的最上层,开发者开发的应用程序以及系统内置的应用程序都在应用层 |
pdk | plug development kit的缩写,本地开发套件 |
platform_testing | 平台测试 |
sdk | SDK和模拟器 |
system | 底层文件系统库、应用和组件 |
test | 测试目录 |
toolchain | 工具链文件 |
tools | 工具文件 |
其中比较重要的目录有package、framework
package源码根目录 | 描述 |
---|---|
apps | 核心应用程序,系统自带的app |
experimental | 第三方应用程序 |
inputmethods | 输入法目录 |
screensavers | 屏幕保护 |
services | 通信服务,拨号app |
wallpapers | 墙纸 |
framework源码重要根目录 | 描述 |
---|---|
av | 系统媒体库 |
base | 应用框架层基础实现代码 |
native | c++代码,OpenGL就在其中 |
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。