天天看点

Android源码目录结构介绍

之前介绍了《Android源码的下载,编译,刷机》,这篇介绍一下Android源码的目录结构,因为目录结构非常复杂,所以这里只介绍一级目录,进入一级目录查看目录结构

#查看一级目录和文件
tree -L 1
           
Android源码目录结构介绍

导入Android Studio后是这样子的

Android源码目录结构介绍

也可以在线查看Android源码结构:https://cs.android.com/android/platform/superproject/

虽然目录很多很复杂,但framework开发需要接触到的目录还是比较有限的,有些目录我也不知道干啥用的,这里我简单介绍一下各个目录的作用,经常打交道的目录我会标注出来并详细介绍:

  • art:Android RunTime的核心文件
  • bonic:翻译过来是仿生的意思,可能是存放的仿生功能相关的c/c++库文件
  • bootable:存放启动引导文件
  • build:存放系统编译规则和基础开发包配置
  • cts:Compatibility Test Suite,GMS认证所用到的测试套件,GMS全称为Google Mobile Service,也就是设备安装了GMS才可以使用Google提供的服务,比如安装Google Play,Youtube之类的,只有通过了cts测试套件所有测试项才能安装GMS
  • dalvik:用于 Android 平台的 Java 虚拟机,5.0之前叫DVM,之后叫ART
  • developers:开发者参考文档
  • development:app开发参考项目
  • device:Android支持的各种设备及其配置
  • external:Android引入的第三方库,Google会把一些比较优秀的开源库纳入到源码里面,比如app开发常用的okhttp,zxing,sqlite等
  • frameworks:这个是framework开发经常打交道的目录,里面存放着app开发的基础框架,比如所有的View,所有的SystemService都是在这个目录下
  • hardware:这里主要存放硬件相关的文件,hal层的文件都在这儿
  • kernel:顾名思义,Android系统的内核
  • libcore:Android中的Java核心类库
  • libnativehelper:Android中Java类库native实现助手
  • out:编译生成的文件都在这个目录下,比如jar包,so库,img镜像等
  • packages:这个也是framework开发经常打交道的目录,所有Google原生的系统应用和组件都在这个目录下,比如Launcher(桌面),Settings(设置),Input(输入法),ScreenSaver(屏保)等
  • pdk:platform develop kit,平台开发组件
  • platform_testing:平台测试程序
  • prebuilts:预编译相关
  • sdk:Java层SDK
  • system:系统文件
  • test:单测试程序
  • toolchain:工具链
  • tools:工具集
  • vendor:厂商相关文件,不同厂商对应的硬件不同,Google为各个厂商预留了一个目录,各个厂商将自己的一些特有文件存放在此目录下,比如厂商自己写的一些app应用,驱动文件,协议标准文件等等,常见的厂商有qualcomm(高通,简称qcom),sumsung(三星)

具体每个目录及其二级目录的作用可以参考这篇博客,我觉得介绍得很细致-《Android 12 源码目录结构》