Android2.3.7源码结构分析

作者:孔祥辉


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

下图为2.3.7_r1版本的根目录结构:

Android2.3.7源码结构分析_第1张图片

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

bionic 目录

Android2.3.7源码结构分析_第2张图片

Libc (C库)

Libdl (dl是动态链接,提供访问动态链接库的功能)

Libm (m是数学,提供数学计算相关功能) 

libstdc++ (标准 C++实现库)

libthread_db (线程调试库,gdb相关)

linker (动态链接器)

bootable 目录

Android2.3.7源码结构分析_第3张图片

Bootloader (适合各种bootloader的通用代码,部分函数实现及一些汇编文件)

Diskinstaller (android镜像打包器,x86可生产iso

Recovery (系统恢复相关)

build目录

Android2.3.7源码结构分析_第4张图片

core (核心编译规则)

libs (主机端库,有android “cp”功能替换)

target (目标机编译对象:模拟器等)

tools (编译中主机使用的工具及脚本)

dalvik目录

Android2.3.7源码结构分析_第5张图片

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 目录

Android2.3.7源码结构分析_第6张图片

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目录

Android2.3.7源码结构分析_第7张图片

base (核心框架库,多为java或c++)

ex (猜测是以前版本遗留的java类)

opt (可选部分:emoji工厂类)

hardware目录

Android2.3.7源码结构分析_第8张图片

broadcom (博通公司开源抽象层)

libhardware (硬件抽象层库)

libhardware_legacy(遗留的硬件抽象层库)

msm7k (高通7k处理器开源抽象层)

qcom (qcom公司开源抽象层)

ril (无线接口层(Radio Interface Layer))

ti (ti公司开源抽象层)

kernel目录

Linux内核,空

libcore目录

Android2.3.7源码结构分析_第9张图片

dalvik (dalvik支持)

dom (文件对象模型相关)

expectations (异常相关)

icu (jni的国际化组件的unicode支持)

include (一些头文件)

json (JavaScript对象符号相关)

junit (junit测试工具相关)

luni (猜测是一些java基本库的实现)

sqlite-jdbc (sqlite的java数据库联接实现)

support (一些测试)

xml (xml支持)

prebuilt目录


Android2.3.7源码结构分析_第10张图片

各主机的预编译头文件

system目录


bluetooth (蓝牙相关)

core (系统核心工具)

extras

(扩展工具)

media (媒体相关)

netd (网络相关)

vold (SD卡相关)

wlan (无线相关)

PS:.git文件夹内为repogit工具使用的文件,并非是安卓项目所属。


参考资料:

http://wenku.baidu.com/view/7eb0cff69e314332396893c7.html

http://wenku.baidu.com/view/9e9e9f8b680203d8ce2f247e.html?from=rec&pos=0&weight=212&lastweight=108&count=5



你可能感兴趣的:(android,JUnit,工具,makefile,tutorials,linker)