基于Android8.0源码进行分析
系统根目录结构说明
art:全新的art运行环境
bionic:系统C库
bootable:启动引导相关代码
build:存放系统编译规则及generic等基础开发包配置
cts:Android兼容性测试套件标准
dalvik:dalvik虚拟机
developers:开发者目录
development:与应用程序开发相关
device: 设备参数相关配置
doce:参考文档
external: 开源模组相关文件
frameworks:应用程序框架,Android系统核心部分,java和c++编写
hardware:硬件抽象层的代码
libcore:核心库相关文件
libnativehelper:动态库实现JNI库的基础
pdk:本地开发者套件
platform_testing:平台测试
prebuilts :x86和ARM架构下预编译的一些资源
sdk:sdk和模拟器
packages:应用程序包
system:底层文件系统库 应用和组件
toolchain:工具链文件
tools:工具文件
makefile 全局makefile文件,用来定义编译规则
应用层部分
应用层源码根目录对象的是packages目录 下面分析packages的目录结构
apps:核心应用程序
experimental:第三方应用程序
inputmethods:输入法目录
providers:内容提供者目录
screensavers:屏幕保护
services:通信服务
wallpapers:墙纸相关
应用框架层部分
应用框架层是核心部分,一方面提供接口给应用层调用,另一方面向下与c/c++程序库及其硬件抽象层等进行衔接。应用框架层的主要实现代码在frameworks/base和frameworks/av目录下 ,下面是frameworks/base目录结构
C/C++程序库部分
系统运行库层(native)中的c/c++程序库的类型比较多,并且不是在一个目录中的 这会统计比较重要的程序库的位置
bionic :google开发的系统C库,以BSD许可形式开源
frameworks/av/media :系统媒体库
frameworks/native/opengl :第三方图形渲染库
frameworks/native/services/surfaceflinger :图形显示库 主要负责图形的渲染 ,叠加和绘制功能
external/sqlie :轻量级的关系型数据库