【汇总】Android源码目录、文件说明

一、说明:

 源码在线预览查看网站:

   阿里:http://aospxref.com/?utm_source=androidweekly.io&utm_medium=website

  AndroidXRef:http://androidxref.com/

 

二、文件(夹)名

 文件(夹)名的列,黑色加粗字体是源码根目录下的目录说明。

   

排序 文件(夹)名 英文说明 中文说明 备注、示例
A        
  art/   Android Runtime,一种App运行模式,区别于传统的Dalvik虚拟机,旨在提高Android系统的流畅性  
  device/$project/atlas/atlas.mk   Android插件化框架,可以加入第三方的bin、apk等文件  
B        
  bionic/   基础C库源代码,Android改造的C/C++库。实现libc这种底层库, 通常不需要改动  
  bootable/   Android程序启动导引,适合各种bootloader的通用代码,包括一个recovery目录。硬件boot层 如fastboot 如果不做硬件开发可以直接无视  
  build/   存放系统编译规则及generic等基础开发包配置。编译用。如果对如何在AOSP 实现某个功能有疑问,如设置什么选项才能赋予root权限, 可能需要查阅代码编译流程  
  |- blueprint/   输入为.bp文件。输出为.ninja文件  
  |- core/   核心的编译规则makefile  
  |- kati/   kati is an experimental GNU make clone  
  |- make/   以前的老的make系统  
  |- soong/   新的Build系统  
  |- target/   AOSP自带的Target(模拟器)的一些makefile  
  |- tools/   编译中使用的shell及python写的工具脚本  
  build/envsetup.sh   编译初始化脚本  
  build/core/binary.mk  

定义了将asm,c,cpp,yacc,lex源代码编译为目标文件的基本规则
模块想生成某类型目标时不会直接包含该makefile,但如果生成二进制程序,会间接包含该makefile
dynamic_binary.mk,executable.mk,host_executable.mk,host_shared_library.mk
host_static_library.mk,prebuilt.mk,raw_executable.mk,shared_library.mk,static_library.mk
等makefile都会包含binary.mk
所有的目标文件将添加到$(all_objects)变量里

 
  build/core/base_rules.mk   控制构建过程  
  build/core/definitions.mk   my-dir函数的定义  
  buildspec.mk   是用户应当配置的脚本文件,模板可以使用buildspec.mk.default,放到$(TOP)下。  
  build/target/product/generic.mk   中指定android系统自带的应用程序包 PRODUCT_PACKAGES += \  
         
C        
  cts/   Android兼容性测试套件标准。兼容性和平台测试相关 自己玩玩可以无视  
  build/core/config.mk   定义了一些变量,例如通用的编译参数,package的后缀名等  
  device/<制造商>/<设备型号>/device.mk   在Android编译系统中,通过调用m命令编译系统时,编译系统会读取设备配置文件  
D        
  dalvik/   Android Dalvik虚拟机相关内容 app运行时, 执行dex文件, 系统修改通常可以无视, 客户端岗位八股文经典题目  
  developers/   Android开发者参考文档。提供一些例子代码  
  development/   Android应用开发基础设施相关。一些开发与例子代码  
  device/   Android支持的各种设备及相关配置。厂商设备  
  device/amlogic/c03ref/c03ref.mk   中增加芯片原厂的应用程序包 PRODUCT_PACKAGES += \  
         
E        
  external/   Android中使用的外部开源库。存放的外部代码 开发不需要看  
  build/core/envsetup.mk   核心变量  
F        
  frameworks/   应用程序框架,Android系统核心部分,由 Java 和 C++ 编写  
  |- framework/av/   多媒体相关的native层源码目录  
  |- framework/base/   一些基础库代码,各种解析类、工具类都在这个里面  
  |- framework/compile/   编译相关的内容  
  |- framework/ex/   ex文件解析器  
  |- framework/minikin/   Android原生字体  
  |- framework/ml/   机器学习  
  |- framework/multidex/   multi dex Loader  
  |- framework/native/   power、surface、input、binder等服务的native层实现源码目录  
  |- framework/opt/   一些基础软件,如:日历、网络、蓝牙  
  |- framework/rs/   Render Script 可创建3D接口  
  |- framework/wilhelm/   OpenSL ES/OpenMAX AL的audio  
  build/tools/findleaves.py   得到所有子目录下Android.mk文件的路径  
G        
H        
  hardware/   硬件适配接口。硬件层  
I        
G        
K        
  kernel/   Linux Kernel,不过Android默认不提供,需要单独下载,只有一个tests目录  
L        
  libcore/   Android Java核心类库  
  libnativehelper/   Android动态库,实现JNI库的基础  
M        
  main.mk      
N        
O        
P        
  packages/   自带应用程序包  
  pdk/   Plug Development Kit 的缩写,本地开发套件  
  platform_testing/   Android平台测试程序。兼容性和平台测试相关 自己玩玩可以无视  
  prebuilts/   x86和arm架构下预编译的一些资源。存放的外部代码 开发不需要看  
  pathmap.mk   定义了一个列表pathmap_INCL  
  product.mk   product.mk构造了一些命令,供product_config.mk中使用。 build/core/
  product_config.mk     build/core/
Q        
R        
S        
  sdk/   Android的Java层sdk  
  system/   Android底层文件系统库、应用和组件  
T        
  test/   Android Vendor测试框架  
  toolchain/   Android工具链文件。编译用  
  tools/   Android工具文件。编译用  
U        
V        
  vendor/   (厂商定制代码)  
  build/core/version_defaults.mk   检查一些跟版本相关的变量是否定义,如果未定义,则使用默认值。首先导入build_id.mk。用户应当配置build_id.mk,而不应该改动version_defaults.mk文件。  
W        
X        
Y        
Z        

 

 三、内核源码的名字,位置以及二进制数据:

DevicesBinary locationSource locationBuild configuration
shamu device/moto/shamu-kernel kernel/msm shamu_defconfig
fugu device/asus/fugu-kernel kernel/x86_64 fugu_defconfig
volantis device/htc/flounder-kernel kernel/tegra flounder_defconfig
hammerhead device/lge/hammerhead-kernel kernel/msm hammerhead_defconfig
flo device/asus/flo-kernel/kernel kernel/msm flo_defconfig
deb device/asus/flo-kernel/kernel kernel/msm flo_defconfig
manta device/samsung/manta/kernel kernel/exynos manta_defconfig
mako device/lge/mako-kernel/kernel kernel/msm mako_defconfig
grouper device/asus/grouper/kernel kernel/tegra tegra3_android_defconfig
tilapia device/asus/grouper/kernel kernel/tegra tegra3_android_defconfig
maguro device/samsung/tuna/kernel kernel/omap tuna_defconfig
toro device/samsung/tuna/kernel kernel/omap tuna_defconfig
panda device/ti/panda/kernel kernel/omap panda_defconfig
stingray device/moto/wingray/kernel kernel/tegra stingray_defconfig
wingray device/moto/wingray/kernel kernel/tegra stingray_defconfig
crespo device/samsung/crespo/kernel kernel/samsung herring_defconfig
crespo4g device/samsung/crespo/kernel kernel/samsung herring_defconfig

 

 

四、更详细说明

[转]超级详细的android目录说明Android 2.1 - 悟透 - 博客园

 


来源、说明:

https://blog.csdn.net/gzzaigcnforever/article/details/47302579

https://www.cnblogs.com/suxiaoqi/p/10388250.html

https://blog.csdn.net/yzzky/article/details/44959321

https://blog.csdn.net/averl2012/article/details/14222429 (每个文件说明)

https://blog.csdn.net/u011077027/article/details/103541542 (anroid 根目录文件夹说明)

https://www.cnblogs.com/onelikeone/p/9309238.html (编译入口文件)

https://www.cnblogs.com/ArsenalfanInECNU/p/18520933 

https://blog.csdn.net/micro9981/article/details/82187638  (generic.mk)

http://doc.yonyoucloud.com/doc/wiki/project/android-source/build-kernels.html (kernel内核名字对应二进制)

https://blue-bird1.github.io/posts/aosp-3/  (目录说明)

https://blog.51cto.com/u_16248677/7387223 

 

posted @   悟透  阅读(85)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示