Android2.3.7源码结构分析



       Andorid系统进行分析或者系统功能定制的时候,我们经常需要在众多文件中花费大量时间定位所需关注的部分。为了减轻这部分枯燥而不可避免的工作,本文对2.3.7版本的源码结构进行了简单分析。希望对刚加入安卓大军的朋友们有所帮助。

下图为 2.3.7_r1 版本的根目录结构:
Makefile makefile 文件)
bionic
bionic C C 运行时支持: libc libm libdl 、动态 linker
bootable
(启动引导相关代码)
build
(存放系统编译规则及 generic 等基础开发包配置)
cts
Android 兼容性测试套件标准)
dalvik
dalvik JAVA 虚拟机)
development
(应用程序开发相关)
device
(厂商设备的编译变量等)
external
android 使用的一些开源的模组)
frameworks
(核心框架—— java C++ 语言)
hardware 
(主要是硬件适配层 HAL 代码)
libcore
(核心库,支持 dalvik
ndk
(本地代码的开发工具,用来包含应用程序的本地代码)
out
(编译完成后的代码输出与此目录)
packages 
(应用程序包)
prebuilt 
x86 arm 架构下预编译的一些资源)
sdk 
sdk 及模拟器)
system
(文件系统库、应用及组件—— C 语言)
`--vendor              (厂商定制代码)
主要工程及描述:
bionic  目录

Libc C 库)
Libdl dl 是动态链接,提供访问动态链接库的功能)
Libm m 是数学,提供数学计算相关功能) 
libstdc++ (标准  C++ 实现库)
libthread_db (线程调试库, gdb 相关)
linker (动态链接器)
bootable  目录

Bootloader (适合各种 bootloader 的通用代码 ,部分函数实现及一些汇编文件)
Diskinstaller android 镜像打包器, x86 可生产 iso
Recovery (系统恢复相关)
build 目录

core (核心编译规则)
libs (主机端库,有 android “cp” 功能替换)
target (目标机编译对象:模拟器等)
tools (编译中主机使用的工具及脚本)
dalvik 目录

dalvikvm main.c 的目录)
dexdump dex 反汇编)
dexlist List all methods in all concrete classes in a DEX file.
dexopt (预验证与优化)
docs (文档)
dvz (和 zygote 相关的一个命令)
dx dx 工具,将多个 java 转换为 dex
hit (猜测是堆栈内实例相关操作的实线)
libdex dex 的库)
libnativehelper (安卓本地帮助库)
tests (测试代码)
tools (工具) 
vm (虚拟机实现)
development  目录

Apps (一些核心应用程序)
build  (编译脚本模板)
cmds (有个 monkey 工具)
data (配置数据)
docs (文档)
host (主机端 USB 驱动等)
ide (集成开发环境)
ndk (本地开发套件—— c 语言开发套件)
pdk Plug Development Kit
samples (示例)
scripts (脚本)
sdk sdk 配置)
sdk_overlay (输入法配置)
simulator  (模拟器)
testrunner  (测试用)
tools (一些工具)
tutorials (教程)
framework 目录

base (核心框架库,多为 java c++
ex (猜测是以前版本遗留的 java 类)
opt (可选部分: emoji 工厂类)
hardware 目录

broadcom (博通公司开源抽象层)
libhardware (硬件抽象层库)
libhardware_legacy (遗留的硬件抽象层库)
msm7k (高通 7k 处理器开源抽象层)
qcom qcom 公司开源抽象层)
ril (无线接口层 (Radio Interface Layer)
ti ti 公司开源抽象层)
kernel 目录
Linux 内核,空
libcore 目录

dalvik dalvik 支持)
dom (文件对象模型相关)
expectations (异常相关)
icu jni 的国际化组件的 unicode 支持)
include (一些头文件)
json JavaScript 对象符号相关)
junit junit 测试工具相关)
luni (猜测是一些 java 基本库的实现)
sqlite-jdbc sqlite java 数据库联接实现)
support (一些测试)
xml xml 支持)
prebuilt 目录



各主机的预编译头文件
system 目录

bluetooth (蓝牙相关)
core (系统核心工具)

extras


(扩展工具)
media (媒体相关)
netd (网络相关)
vold SD 卡相关)
wlan (无线相关)
PS:.git 文件夹内为 repo git 工具使用的文件,并非是安卓项目所属。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值