您的位置:首页 > 移动开发 > Android开发

Android2.3.7源码结构分析

2014-12-06 16:50 204 查看
对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 J***A虚拟机)

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工具使用的文件,并非是安卓项目所属。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: