系统根目录说明
- art 全新的ART运行环境
- boinic 系统c库
- bootable 启动引导相关代码
- build 存放系统编译规则及generic等基础开发包配置
- cts Android兼容性套件标准
- dalvik Dalvik虚拟机
- developers 开发者目录
- development 与应用程序开发相关
- device 设备相关配置
- docs 参考文档目录
- external 开发模组相关组件
- frameworks 应用程序框架,Android系统核心部分,由Java和c++书写
- hardware 主要是硬件抽象层代码
- libcore 核心库相关文件
- libnativehelper 动态库,实现JNI库的基础
- out 编译完毕后代码在此输出
- pdk Plug Development 的缩写,本地开发套件
- platform testing 平台测试
- prebuilts X86 ARM 架构下预编译的 些资源
- sdk SDK 和模拟器
- packages 应用程序包
- system 底层文件系统库、应用和组件
- toolchain 工具链文件
- tools 工具文件
- Makefile 全局Makefile,用来定义全局编译规则
应用层目录
应用层位于整个 Android 系统的最上层,开发者开发的应用程序以及系统内置的应用
程序都在应用层。源码根 目录中的 packages 目录对应着系统应用层
- apps 核心应用库
- inputmethods 输入法目录
- providers 内容提供者目录
- screensavers 屏幕保护
- services 通信服务
- wallpapers 墙纸
应用框架部分
应用框架层是系统的核心部分,一方面向上提供接口给应用层调用,另 方面向下与
C/c++程序库及硬件抽象层等进行衔接。应用框架层的主要实现代码在 frameworks/base
frameworks/av 目录下,其中 frameworks/base 目录如下
- api 定义API
- cmds 重要命令:am,app_proce等
- core 核心库
- data 字体和声音等数据文件
- docs 文档
- graphics 与图形图像相关
- keystore 与数据签名相关
- libs 库
- location 地理位置相关库
- media 多媒体相关库
- native 本地库
- nfc-extras 与NFC相关
- obex 蓝牙传输
- opengl 2D3D图形API
- packages 设置,TTS,VPN程序
- sax XML解析器
- sevices 系统服务
- telephony 电话通信管理
- test-runner 测试工具相关
- tests 与测试相关
- tools 工具
- wifi WiFi无线网络
C/C++程序部分
系统运行库层(Native )中的 IC++程序库的类型繁多, 功能强大, IC++程序库并不完
全在一个目录中,这里给出几个常用且 较重要的 CIC++程序库所在的目录位置
- bionic Google开发的系统C库,以BSD形式许可开源
- frameworks\av\media 系统媒体库
- frameworks\native\opengl 第三方图形渲染库
- frameworks\native\services\surfaceflinger 图形显示库,主要负责图形的渲染、叠加和绘制等功能
- external\sqlite 轻量级数据库SQLite的C++实现
参考 刘望舒的《Android进阶解密》
(这本书是基于android8的,部分在11及以上目录做了部分修改,后续会补充)