AOSP项目结构

工程相关

工程目录下各个包名的作用:

以 channel 为例:

  • art 全新的ART运行环境,作为Dalvik虚拟机的替代
  • bionic 系统C库
  • bootable 启动引导相关代码
  • build 存放系统编译规则及generic等基础开发包配置
    • core 核心编译规则
    • target 相关的文件拷贝路径 如:驱动 .rc等配置文件拷贝规则
  • compatibility 兼容性的一些东西
  • cts Android兼容性测试套件标准
  • dalvik dalvik JAVA虚拟机
  • development 示例以及开发工具 主要是给系统开发者使用 另外的一个developers文件夹展示了当前版本的新特性同时包含了相关示例以及示例的截图,要了解新特性的用法建议各位可以看看里面的东西。
  • device 设备相关配置,各品牌手机在硬件上会有差异,厂商会对源码进行定制 修改它的某些部分来配合自家硬件的特性,比如Wifi Adb端口如果需要写死,可以添加属性并设置里面的参数
  • external android使用的一些开源的模组
  • framework 核心框架---java及C++语言:自己平时工作相关的代码大部分在这里,后面着重分析
  • hardware 部分厂家开源的硬解适配层HAL代码
  • kernel 内核
  • libcore java核心库 包括java api的源码
  • libnativehelper 动态库实现JNI库的基础
  • out 编译完成后的代码输出到此目录
  • packages 应用程序包:含很多Android项目的源码,比如录音,电话,系统设置,或者三方的一些程序(阅读器,应用商城)等等
    • apps 核心应用程序
    • inputmethods 输入法目录
    • experimental 第三方应用程序
    • providers 内容提供者目录:像我们在应用上能都访问手机系统通讯录,系统日历,都是package中写好的内容提供者,所以我们才能调用那些uri对系统数据进行增删改查操作。
    • screensavers 屏幕保护
    • services 通信服务
    • wallpapers 墙纸
  • pdk Plug Development Kit 的缩写,本地开发套件,google减少碎片化的东西
  • platform_testing 平台测试
  • prebuilts x86和arm架构下预编译好的一些资源 包括模拟器,内核文件
  • release 编译生成的文件
  • sdk sdk和模拟器
  • system 底层文件系统库、应用及组件——C语言
  • toolchain 工具链文件
  • tools 工具文件
  • Android.bp 早期的Android系统都是采用Android.mk的配置来编译源码,从Android 7.0开始引入Android.bp,Android.bp的出现就是为了替换掉Android.mk。
  • bootstrap.bash 引导脚本文件
  • Makefile 全局Makefile文件,用来定义编译规则

以下目录并非通用目录:

  • Samsung 对应手机厂商目录
  • shortcut-fe 根据手机平台芯片改变,这里是高通xx加速
  • test 测试相关文件
  • vendor 渠道商

Common Framework开发

将要负责的模块主要是在framework/base里的代码,其中又以framework/base/services/core为重心,常见的的WMS(WindowManagerService)、AMS(ActivityManagerService)等都在这里。

更加详细的查看以下文章:
https://blog.csdn.net/wjky2014/article/details/18262251
https://blog.csdn.net/itachi85/article/details/54695046

随着学习的深入,将持续更新本篇文章的内容

你可能感兴趣的:(AOSP项目结构)