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语言)
主要工程及描述: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源码结构分析的更多相关文章
- mac os 平台下载并编译android2.3.3源码
现在在做有关android平台下的项目,最初对android环境各种不熟悉,搞了几个月终于有点眉目了,由于需要用到android本身提供的一些类似gps,tts等服务,单纯的看android提供的ja ...
- kettle系列-2.kettle源码结构分析
kettle是一个开源产品,产品本身设计是很优秀的,代码应该是很多开源爱好者用业余时间贡献的,代码整体结构还是比较容易理解的,但具体到每一个控件内部就因人而异了,感觉还是挺复杂的,肯定别人考虑得比较全 ...
- android应用程序源码结构分析
工程; 1. src文件夹存放源码. 2. gen下有跟src中一样的包文件,内部有一个名为R.java类,它是自动生成的一个类:该目录不用我们开发人员维护, 但又非常重要的目录 . 该目录用来存放由 ...
- Android 源码结构分析
源码版本:AOSP_7.1.1 硬件平台:Rockchip 由于工作要求,需要对rockchip平台的安卓系统进行剪裁.安卓源码比较庞大,会让人感到无从下手,对此,有必要了解一下源码的大致目录结构以及 ...
- ysoserial源码结构分析
1.前言 之前也花了几天晚上熟悉了一下commonscollections系列的构造,那么学习一下这个项目是如何设计的也挺重要,多学习大佬如何写代码应该也能对自己的代码能力有提升吧~2333 2.项目 ...
- jemalloc源码结构分析(三):arena_malloc_small内存分布
在arena_s结构中,由NBINS数组将bin按照不同规模等级分别存储,每一个等级对应一颗run树,即一颗以chunk_map_t为节点的红黑树,而这些chunk_map_t节点实际分布于各个chu ...
- jemalloc源码结构分析(二):CPU字节对齐算法
在调用arena_malloc_small过程中,要根据申请内存大小,进行对齐计算,然后分配一个整块儿.算法如下: 1)定义一个SIZE_CLASSES宏,它主要用于生成后面两个表,small_siz ...
- jemalloc源码结构分析(一):内存申请处理过程
一.5种malloc方法 1)tcache_alloc_small 2)arena_malloc_small 3)tcache_alloc_large 4)arena_malloc_large 5)h ...
- Kibana6.x.x源码结构分析笔记
随机推荐
- wireshark总结
拖延了两个月的总结!下面的很大一部分来自其它博客. wireshark过滤器的区别 捕捉过滤器(CaptureFilters):用于决定将什么样的信息记录在捕捉结果中.需要在开始捕捉前设置.在Capt ...
- PHP实现中文简体字和繁体字互转
function convert($str, $action='S'){ if($action != 'S' && $action != 'T'){ return $str; } $s ...
- LeetCode 解题报告--202Happy Number
1 题目描述 Write an algorithm to determine if a number is "happy". A happy number is a number ...
- 《WPF程序设计指南》读书笔记——第7章 Canvas
1.Canvas面板 using System; using System.Windows; using System.Windows.Controls; using System.Windows.M ...
- Oracle的AUTOTRACE功能
ORACLE9i在使用autotrace之前,需要作一些初始设置: 1.用sys用户运行脚本utlxplan.sql创建PLAN_TABLE表 脚本目录:(UNIX:$ORACLE_HOME/rdbm ...
- SRM 616 ColorfulCoins
题意:给定一个从小到大的货币面值,每一个面额都是其前面面额的倍数(倍数大于等于2),每一种货币面值对应一种颜色,目前不清楚面值与颜色的对应关系.要求用最少的查询次数来确定面额与颜色的对应关系.(一次查 ...
- mybatis generator自动生成 实体类, sqlmap配置文件 详细介绍
我使用的是Eclipse Luna 装了自己常用的插件, generator也是其中一个推荐下载 MyBatis_Generator_1.3.1.zip离线安装包 <?xml version=& ...
- c#3位一分(money)
NumberFormatInfo num = new NumberFormatInfo(); num.NumberDecimalDigits = 2; string ...
- (转)关于linux中内核编程中结构体的赋值操作(结构体指定初始化)
网址:http://blog.chinaunix.net/uid-24807808-id-3219820.html 在看linux源码的时候,经常会看到类似于下面的结构体赋值的代码: struct d ...
- 简单3d RPG游戏 之 004 攻击(二)
人物和怪物的攻击都有CD冷却,在PlayerAttack脚本中添加成员 //冷却倒计时 public float attackTimer; //CD冷却时间 public float coolDown ...
