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源码结构分析笔记
随机推荐
- This bison version is not supported for regeneration of the Zend/PHP parsers
在 mac 中编译 php-src.git 报错: configure: WARNING: This bison version is not supported , excluded: ). con ...
- iOS编程——经过UUID和KeyChain来代替Mac地址实现iOS设备的唯一标示(OC版)
iOS编程——通过UUID和KeyChain来代替Mac地址实现iOS设备的唯一标示(OC版) 很多的应用都需要用到手机的唯一标示,而且要求这个唯一标示不能因为应用app的卸载或者改变而变化. 在iO ...
- php下删除一篇文章生成的多个静态页面
php自定义函数之删除一篇文章生成的多个静态页面,可能有多页的文章,都是需要考虑到的. 复制代码代码如下: //– 删除一篇文章生成的多个静态页面 //– 生成的文章名为 5.html 5_2.ht ...
- php获取数组中重复数据的两种方法
分享下php获取数组中重复数据的两种方法. 1,利用php提供的函数,array_unique和array_diff_assoc来实现 <?php function FetchRepeatMem ...
- VB6-操作数据库
平常搞数据库操作多了就想把经常用的内容放在一起,我也懒,在一本书里的工程例子挑了一个bas,修修改改,凑合这用吧. Public strCnn As String '数据库连接字符串 Public A ...
- [旧博客]QQ旋风加速漏洞
漏洞是这样的,用开通QQ会员的账号登录QQ旋风,添加要下载的任务,启动加速后,注销,登录lixian.qq.com 删除刚才添加的离线任务,这时QQ旋风还是在加速那个任务.而你又可以登录QQ旋风添加其 ...
- 手把手教你写LKM rookit! 之 杀不死的pid&root后门
......上一节,我们编写了一个基本的lkm模块,从功能上来说它还没有rootkit的特征,这次我们给它添加一点有意思的功能.我们让一个指定的进程杀不死, 曾经,想写一个谁也杀不死的进程,进程能捕捉 ...
- Linux远程备份—ftp方式、NFS方式
问题:现在项目中每天都有从其它各个系统发过来的数据文件(存放在/var/data目录下,以.txt结尾),虽然很久以前的文件很少用到,占用了很多空间,却不能删除.于是,想把一个月以前的文件都压缩了传到 ...
- swift基础--变量
(1)变量与常量 (2)基本类型 (3)强制转换 (4)Bool类型 (5)元组 (6)可选值 //变量和常量 var str = "Hello, playground" let ...
- 高动态范围光照(High Dynamic Range Imaging,简称HDRI或HDR)
1 HDR基本概念 高动态范围光照(High Dynamic Range Imaging,简称HDRI或HDR),是一种表达超过了显示器所能表现的亮度范围的图像映射技术,已成为目前游戏应用不可或缺的 ...