文章目录
-
- 一、篇头
- 二、Android源码根目录
- 三、安卓源码目录说明
- 四、篇尾
一、篇头
- 学习安卓系统源码,从何处入手,想了许久,先了解下目录结构吧。
- 本文基于MTK9269 Android 9.0源码,和原生AOSP结构基本一致,部分地方有少许出入,但不影响大局。
- 可通过清华AOSP镜像站,下载最新aosp-latest.tar源码包
- 地址:mirrors.tuna.tsinghua.edu.cn/help/AOSP/
文章图片
三、安卓源码目录说明
- 结合源码和相关说明文件,整理如下
szhou@bc03:~/works/mt9269/android$ tree -L 1
.
├── Android.bp -> build/soong/root.bp
├── art#Android ART虚拟机相关实现(替代dalvik虚拟机):虚拟机、运行库、dex2oat等工具、模拟器等
├── bionic#谷歌为android重新实现的C语言函数库
├── bootable#bootloader的实现,各厂家会有自己的版本,例如MTK/MST所用名为Mboot bootloader.
├── bootstrap.bash -> build/soong/bootstrap.bash
├── build#AOSP源码编译相关:系统make编译规则、blueprint、kati、soong,以及envsetup.sh等配置及工具
├── compatibility #Android 兼容性定义(CDD),在这个目录执行相关命令,可以产生CDD html/pdf文档,用于指导开发
├── cts#Android兼容性测试套件
├── dalvik#dalvik JAVA虚拟机
├── developers#提供给Android开发者的一些样例,可以导入到AS中编译
├── development#同developers类似,提供一些样例、工具
├── device#和具体设备相关的配置、文件、及修改,各厂家会放入里面响应目录 device/vendor_name/product_name
├── external#Android使用的一些开源的功能模块
├── frameworks#Android核心框架
├── hardware#部分厂家开源的硬解适配层HAL代码
├── kernel#Linux kernel 源码
├── libcore#java核心库 包括java api的源码
├── libnativehelper #支持Android类库,但与android.*无关,与VM无关的本机函数,用于实现系统的方法类库,以C实现。
├── Makefile#这个不是目录,include build/make/core/main.mk,核心编译规则
├── out#编译AOSP时候产生的临时目录,临时文件和最后生成的ROM镜像都存放在里面
├── packages#APP程序包,包括luancher、settings等
├── pdk#PDK工具和测试代码的存放处,PDK套件用于帮助厂家适配新版本,完成HAL的开发
├── platform_testing # Android Platform Testing, 为andorid 平台开发人员提供的测试及指导
├── prebuilts #Android预编译的一些工具,如build-tools、qemu模拟器、gdb、gcc、sdk/ndk库等
├── sdk#Android SDK
├── system#Android底层文件系统库、应用和组件
├── test#VTS 测试套件
├── toolchain #存放编译工具链
├── tools#Android工具文件
└── vendor#存放各厂家自己定制的文件、实现,如app、配置、新增api、库等
四、篇尾 【Android编程|我的Android 进阶修炼(1)( AOSP源码根目录结构)】在安卓上做了那么多年,也没好好看看AOSP目录架构,部分理解可能不到位,欢迎指正。先当文章凑个数吧,哈哈~
推荐阅读
- Android|Android aosp10,谷歌正将Android 10源代码上传到AOSP安卓开源项目
- 安卓系统开发|搭建Android AOSP源码编译工作环境
- android|android n 发布时间,Android N 正式版将在9月发布
- Android|Android AOSP资源的下载
- Android|ubuntu16.04 编译Android AOSP源码 android10
- 极客日报|iPhone14或仍有刘海,设计、芯片都不变;微信聊天对话框支持放大编辑;Android 13正式版发布|极客头条
- Netty学习系列|Netty学习九(编解码之writeAndFlush)
- Netty学习系列|Netty学习三(Netty框架之引导器)
- Android应用分析|App实现可定位