Android源码学习(一)系统源码初识

 摘自公众号:Android源码学习

Android 9.0.0_r3版本的源码:

 

结构名称及说明:

名称说明
Android.bpAndroid7.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/设备相关配置
externalandroid使用的一些开源的模组
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.bpAndroid7.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/虚拟现实相关
wifiwifi无线网络
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值