对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语言)

主要工程及描述:

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 (系统核心工具)

(扩展工具)

media (媒体相关)

netd (网络相关)

vold (SD卡相关)

wlan (无线相关)

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

Android2.3.7源码结构分析的更多相关文章

  1. mac os 平台下载并编译android2.3.3源码

    现在在做有关android平台下的项目,最初对android环境各种不熟悉,搞了几个月终于有点眉目了,由于需要用到android本身提供的一些类似gps,tts等服务,单纯的看android提供的ja ...

  2. kettle系列-2.kettle源码结构分析

    kettle是一个开源产品,产品本身设计是很优秀的,代码应该是很多开源爱好者用业余时间贡献的,代码整体结构还是比较容易理解的,但具体到每一个控件内部就因人而异了,感觉还是挺复杂的,肯定别人考虑得比较全 ...

  3. android应用程序源码结构分析

    工程; 1. src文件夹存放源码. 2. gen下有跟src中一样的包文件,内部有一个名为R.java类,它是自动生成的一个类:该目录不用我们开发人员维护, 但又非常重要的目录 . 该目录用来存放由 ...

  4. Android 源码结构分析

    源码版本:AOSP_7.1.1 硬件平台:Rockchip 由于工作要求,需要对rockchip平台的安卓系统进行剪裁.安卓源码比较庞大,会让人感到无从下手,对此,有必要了解一下源码的大致目录结构以及 ...

  5. ysoserial源码结构分析

    1.前言 之前也花了几天晚上熟悉了一下commonscollections系列的构造,那么学习一下这个项目是如何设计的也挺重要,多学习大佬如何写代码应该也能对自己的代码能力有提升吧~2333 2.项目 ...

  6. jemalloc源码结构分析(三):arena_malloc_small内存分布

    在arena_s结构中,由NBINS数组将bin按照不同规模等级分别存储,每一个等级对应一颗run树,即一颗以chunk_map_t为节点的红黑树,而这些chunk_map_t节点实际分布于各个chu ...

  7. jemalloc源码结构分析(二):CPU字节对齐算法

    在调用arena_malloc_small过程中,要根据申请内存大小,进行对齐计算,然后分配一个整块儿.算法如下: 1)定义一个SIZE_CLASSES宏,它主要用于生成后面两个表,small_siz ...

  8. jemalloc源码结构分析(一):内存申请处理过程

    一.5种malloc方法 1)tcache_alloc_small 2)arena_malloc_small 3)tcache_alloc_large 4)arena_malloc_large 5)h ...

  9. Kibana6.x.x源码结构分析笔记

随机推荐

  1. html的3要素

    在HTML标记语言中可以将每个网页源码分成3部分: 1.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" &q ...

  2. Angular之【form提交问题】

    前端页面是这样: <form class="form-horizontal" role="form" name="LoginForm" ...

  3. [大牛翻译系列]Hadoop(1)MapReduce 连接:重分区连接(Repartition join)

    4.1 连接(Join) 连接是关系运算,可以用于合并关系(relation).对于数据库中的表连接操作,可能已经广为人知了.在MapReduce中,连接可以用于合并两个或多个数据集.例如,用户基本信 ...

  4. 分享自lordinloft 《[转载]COMPILE_OPT 的用法介绍》

    来源:http://blog.sina.com.cn/s/blog_63180b75010117oj.html#bsh-73-372143085

  5. 关于分区技术的索引 index

    关于分区技术---索引 Index 一.   分区索引分类: 本地前缀分区索引(local prefixedpartitioned index) 全局分区索引(global partitionedin ...

  6. Mac技巧之让U盘、移动硬盘在苹果电脑和Windows PC都能识别/读写,且支持4GB大文件:exFAT格式

    如果您的 U 盘.移动硬盘既要用于 PC 又要用于苹果电脑,Mac OS X 系统的 HFS+ 和 Windows 的 NTFS 格式显然都不行……HFS+ 在 Windows 下不识别,NTFS 格 ...

  7. 开发之前的思考-UI结构设计

    UI结构设计遵循的一些要点 1.尽量不要让UI作为Camera的子物体 因为UI和摄像机敏感的关系,尽量不要将UI作为摄像机的子物体,避免出现一些因为透视(3D UI)等问题导致的视觉Bug. 2.尽 ...

  8. /****************** Attributes ********************/

    /*预定义字符属性的文本.如果钥匙不在字典,然后使用默认值,如下所述. */ 以下属性是IOS6的 NSVerticalGlyphFormAttributeName NS_AVAILABLE_IOS( ...

  9. [搜片神器]DHT后台管理程序数据库流程设计优化学习交流

    谢谢园子朋友的支持,已经找到个VPS进行测试,国外的服务器: sosobt.com 大家可以给提点意见... 服务器在抓取和处理同时进行,所以访问速度慢是有些的,特别是搜索速度通过SQL的like来查 ...

  10. spring4+hibernate3

    环境说明:spring4.0+hibernate3 数据库:oracle 连接池:c3p0 项目结构: lib中的jar: 一.配置spring.xml 说明:这里采用的配置模式将hibernateT ...