摘自公众号:Android源码学习

Android 9.0.0_r3版本的源码:

结构名称及说明:

名称 说明
Android.bp Android7.0开始代替Android.mk文件,它是告诉ndk将jni代码编译成动态库的一个脚本
art/ Android Runtime,ART运行环境,一种App运行模式,区别于传统的Dalvik虚拟机,旨在提高Android系统的流畅性
bionic/ bionic C库,基础C库源代码,Android改造的C/C++库
bootable/ 启动引导相关代码,Android程序启动导引,适合各种bootloader的通用代码,包括一个recovery目录
bootstrap.bash 脚本
build/ 存放系统编译规则及generic等基础开发包配置
compatibility/ Android兼容性计划
cts/ Android兼容性测试套件标准
dalvik/ dalvik JAVA虚拟机相关内容
developers/ 开发者参考文档
development/ 应用程序开发相关
device/ 设备相关配置
external android使用的一些开源的模组
frameworks/ 核心框架——java及C++语言
hardware/ 部分厂家开源的硬解适配层HAL代码
kernel/ Linux Kernel,不过Android默认不提供,需要单独下载,只有一个tests目录
libcore/ 核心库相关文件
libnativehelper/ 动态库,实现JNI库的基础
Makefile 全局Makefile文件,用来定义编译规则
packages/ 应用程序包
pdk/ Plug Development Kit 的缩写,本地开发套件
platform_testing/ 平台测试
prebuilts/ x86和arm架构下预编译的一些资源
sdk/ sdk及模拟器
system/ 底层文件系统库、应用及组件——C语言
test/ Android Vendor测试框架
toolchain/ 工具链文件
tools/ 工具文件
  • 应用层

位于整个Android系统的最上层,开发者开发的应用程序和系统级应用程序都位于此。packages目录对应着系统应用层。

上图简要说明如下:

名称 说明
apps/ 核心应用程序
experimental/ 第三方应用程序
inputmethods/ 输入法目录
providers/ 内容提供者目录
screensavers/ 屏幕保护
services/ 通信服务
wallpapers/ 墙纸
  • 应用程序框架层

    是系统的核心部分,frameworks目录对应着应用程序框架层

    上图简要说明如下:

    名称 说明
    av/ 多媒体框架
    base/ Android源码的主要核心目录
    compile/ 编译相关
    data-binding/ 数据绑定
    ex/ ex文件解析器
    hardware/ 硬件适配接口
    layoutlib/ 布局相关
    minikin/ Android原生字体,连体字效果
    ml/ 机器学习
    multidex/ Multi-dex Loader,多dex加载器
    native/ native实现
    opt/ 一些软件
    rs/ Render Script,可创建3D接口
    support/ framework支持文件
    wilhelm/ 基于Khronos的OpenSL ES/OpenMAX AL的audio/multimedia实现
  • av目录下

上图简要说明如下:

名称 说明
Android.bp Android7.0开始代替Android.mk文件,它是告诉ndk将jni代码编译成动态库的一个脚本
camera/ 多媒体的相机相关部分
CleanSpec.mk 编译文件,定义每次编译前的特殊清理步骤,build/core/cleanbuild.mk 会执行这些清除步骤
cmds/ 命令源码
drm/ 数据保护
include/ 头文件
media/ 多媒体部分
MODULE_LICENSE_APACHE2 授权模块
NOTICE 通知信息
OWNERS 所有者信息说明
packages/ 包含多媒体组件和所有者信息说明
services/ 服务部分
soundtrigger/ 语音识别架构
tools/ 工具包

base目录下

上图简要说明如下:

Android.bp 编译配置文件
Android.mk 编译配置文件
apct-tests/ 性能优化测试
api/ java的api接口,修改了接口文件请及时更新此目录下的文件(make update-api)
CleanSpec.mk 编译文件,定义每次编译前的特殊清理步骤,build/core/cleanbuild.mk 会执行这些清除步骤
cmds/ android系统启动时用到的commands,重要命令:am、a pp_proce等
config/ 关于版权说明、隐藏API文档和预加载相关等配置
core/ framework的核心框架组件
data/ android下的资源(字体、声音、视频、软盘等)
docs/ 文档,android项目说明
drm/ 实现权限管理,数字内容解密等模块的工作
graphics/ 图像渲染模块
keystore/ 秘钥库,和数据签名证书相关
libs/ 库信息(界面、存储、USB)
location/ 地理位置相关库
lowpan/ 低功耗无线网络
media/ 多媒体相关库
MODULE_LICENSE_APACHE2 授权模块
native/ 本地方法实现(传感器、输入、界面、窗体)
nfc-extras/ 近场通讯NFC相关
NOTICE 通知信息
obex/ 蓝牙传输
opengl/ 图形API,2D和3D图形绘制
packages/ 框架层的实现(界面、服务、存储),设置、TTS、VPN程序
pathmap.mk 该文件定义了一个列表pathmap_INCL,列表中每项是"短名:路径"对。宏函数include-path-for将会使用这个列表,来通过短名获取相对于的路径,
PREUPLOAD.cfg 保存预上传设置
proto/ 协议框架
rs/ 资源框架
samples/ 例子程序
sax/ XML解析器
services/ 各种服务程序
telecomm/ Telecom通信框架
telephony/ 电话通讯框架
test-legacy/ 测试配置
test-mock/ Mock测试
test-runner/ 测试工具相关
tests/ 测试相关
tools/ 工具
vr/ 虚拟现实相关
wifi wifi无线网络

Android源码学习(一)系统源码初识相关推荐

  1. Android OpenGL ES 学习(十) – GLSurfaceView 源码解析GL线程以及自定义 EGL

    OpenGL 学习教程 Android OpenGL ES 学习(一) – 基本概念 Android OpenGL ES 学习(二) – 图形渲染管线和GLSL Android OpenGL ES 学 ...

  2. 计算机毕业设计Java移动学习网站(系统+源码+mysql数据库+Lw文档)

    计算机毕业设计Java移动学习网站(系统+源码+mysql数据库+Lw文档) 计算机毕业设计Java移动学习网站(系统+源码+mysql数据库+Lw文档) 本源码技术栈: 项目架构:B/S架构 开发语 ...

  3. 党建学习答题系统源码,开源免费版是如何搭建的呢?

    提起党建学习以及党建答题活动,我相信有不少国企工作人员或公务员都很有感触,学习党建知识,偶尔组织相关的答题活动等,是每年必不可少的一项企业活动,而对于这么一个常见活动,找到一个靠谱的.合适的党建学习答 ...

  4. java计算机毕业设计疫苗药品批量扫码识别追溯系统源码+数据库+系统+lw文档+部署

    java计算机毕业设计疫苗药品批量扫码识别追溯系统源码+数据库+系统+lw文档+部署 java计算机毕业设计疫苗药品批量扫码识别追溯系统源码+数据库+系统+lw文档+部署 本源码技术栈: 项目架构:B ...

  5. 集运系统,集运下单系统,国际物流集运系统,转运系统源码 集运系统源码

    集运系统,集运下单系统,国际物流集运系统,转运系统源码 集运系统源码 系统简介 一.包裹管理 扫描入库 未入库包裹 已入库包裹 待认领包裹订单 已创建订单包裹 二.订单管理 全部订单 已付款 待付款 ...

  6. 收款码在线生成系统源码 无限制

    截图 收款码在线生成系统源码 无限制 说明 之后用过两个收款码生成系统,一个是收款啦,还有一个是优启梦收款码,前面一个用起来挺方便的,就是二维码识别得比较慢,自己想改接口但是没学过php也做不了什么. ...

  7. PHP手机版源码下载分期系统源码Thinkphp内核开发集成支付,短信功能,征信对接

    PHP手机版源码下载分期系统源码Thinkphp内核开发集成支付,短信功能,征信对接下载链接:https://pan.baidu.com/s/17THZSi8MNV4n7oUZoYRyRg 提取码:8 ...

  8. java互联网医院源码 智慧医院源码 图文问诊系统源码

    互联网医院系统源码 智慧医院系统源码 在线问诊.复诊购药APP 使用技术:Java + springboot + mysql + 原生APP   一.系统特点: 1.在线问诊 图文问诊.视频问诊.语音 ...

  9. 医院检验LIS系统源码 医院检验系统源码

    医院检验LIS系统源码 医院检验系统源码 医院检验源码系统功能 LIS系统方案的实施,最主要的目的是提高检验的效率.效益.包括降低运行成本,人力资源成本,控制费用漏洞. 1. 检验工作站 是LIS最大 ...

  10. 医院排队叫号分诊管理系统源码,医院系统源码

    医院排队叫号分诊管理系统源码,医院系统源码 功能介绍 1.1 分诊管理端 1.1.1 科室管理 登录分诊管理客户端后,在主界面的菜单中点击[科室管理],进入科室管理界面. 输入条件点击[查询]按钮,可 ...

最新文章

  1. python括号配对问题_使用Python的栈实现括号匹配算法
  2. 坦克世界服务器未响应怎么解决,华硕笔记本老是程序未响应怎么处理
  3. 做 AI 大咖在顶级单位之间随兴漂移,好开心!
  4. Sublime Text 2/3 配置文件详解
  5. UI自动化新思路-基于RUNTIME的自动化测试设想
  6. 调制的缺点_电光调制与声光调制原理和应用领域
  7. JS获取DOM元素的八种方法
  8. 使用Hibernate注解Annotations进行对象映射的异常处理
  9. 《数据分析实战 基于EXCEL和SPSS系列工具的实践》一3.2 用“逐步推进法”推测需要的数据...
  10. MySQL高级知识(六)——索引优化
  11. 机房收费系统重构版:照葫芦画瓢
  12. GJB-150湿热试验,国军标150试验机构
  13. html加载gif动画效果,html – 使用CSS动画加载图像VS使用GIF图像加载
  14. 如何在Ubuntu 20.04上安装和使用Docker
  15. 智慧地产-售楼中心 3D 沙盘可视化
  16. 2017-12-12
  17. (Error -6311) PRSC module failed to write to a register. 问题的探讨
  18. uva12325 暴力枚举
  19. ettercap局域网内DNS欺骗(隔壁的哥们轻一点 ...)
  20. JAVA计算机毕业设计星星电影购票网站Mybatis+源码+数据库+lw文档+系统+调试部署

热门文章

  1. 爬虫(二)-创建项目应用
  2. SNF软件开发机器人2018最新更新内容
  3. codewars python Regex validate PIN code
  4. javaweb-文件的上传下载
  5. POJ 2942Knights of the Round Table(二分图判定+双连通分量)
  6. 如何:从代码创建 UML 类图(ZZ)
  7. Android网络多线程断点续传下载
  8. GdiPlus[45]: IGPGraphics (四) 关于呈现质量与合成模式
  9. 将文件夹下所有csv文件转换成所有txt
  10. 器械传递的方法_天津304不锈钢传递窗报价_碧海云天