`

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 (核心框架——javaC++语言)
hardware  (主要是硬件适配层HAL代码)
libcore (核心库,支持dalvik)
ndk (本地代码的开发工具,用来包含应用程序的本地代码)
out (编译完成后的代码输出与此目录)
packages  (应用程序包)
prebuilt  (x86arm架构下预编译的一些资源)
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 (系统核心工具)

 

 

 

extras

 

(扩展工具)

 

 

media (媒体相关)

 

 

 

netd (网络相关)

 

 

 

vold (SD卡相关)

 

 

 

wlan (无线相关)

 

 

 

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

 

 

 

分享到:
评论

相关推荐

    android系统2.3.7源码

    Android系统源码 1G大小,txt文本里有360网盘地址,本人Ubuntu下解压文件目录为:bionic bootable build cts dalvik device external frameworks hardware libcore packages prebuilt sdk system 。 希望对你用的着~...

    32位Ubuntu11.10下android2.3.7源码下载与编译小结知识.pdf

    在32位Ubuntu 11.10操作系统下编译Android 2.3.7源码,你需要遵循一系列步骤。首先,确保你的开发环境已经准备就绪。这包括在VMware上安装Ubuntu 11.10,分配至少25GB的硬盘空间和1GB的内存。接下来,你需要安装必要...

    android 2.3.7源码

    android源码2.3.7 下载地址 360云盘地址和提取码 需要的朋友可以下载看看

    android 2.3.7及以上-root工具

    Android 2.3.7是一个较早的版本,对于这个版本及其以上进行root操作可能会遇到一些挑战,因为厂商通常会加强系统的安全措施,防止未经授权的访问。SuperOneClick是一款早期流行的root工具,但并非对所有设备和系统...

    Android 2.3.7 ROM G大出品

    【Android 2.3.7 ROM详解】 Android 2.3.7,也被称为Gingerbread(姜饼),是Google于2010年推出的Android操作系统的一个版本。这个版本是Android 2.3系列的最后一个更新,带来了诸多性能优化和功能改进。Android ...

    android 2.3.7 root权限合集

    在Android 2.3.7版本中,获取root权限可以让用户对设备进行更深度的定制,比如安装需要超级用户权限的应用、修改系统文件、优化性能或者删除预装应用等。以下将详细介绍如何通过给定的资源来获取root权限。 首先,...

    u880Android2.3.7ad_hoc补丁

    标题中的“u880Android2.3.7ad_hoc补丁”指的是针对华为U880手机的一款系统更新补丁,该补丁专为运行Android 2.3.7(Gingerbread)操作系统的设备设计。Android 2.3.7是Google在2011年发布的版本,它在当时的智能...

    中兴u880刷机android2.3.7

    手把手教你第一次刷机,中兴u880刷机成android2.3.7的成功经验分享

    bochs 2.3.7源码包的编译安装

    Bochs 2.3.7是其某个版本,下面我们将详细介绍如何在Linux环境下编译和安装这个源码包。 首先,我们需要确保系统满足编译Bochs的基本依赖条件。通常,这包括C++编译器(如GCC或Clang)、GNU Make、以及一些基础的...

    一键root工具,android 2.3.7以上

    root授权--只需要安装此“授权管理”APK即可,android 2.3.7以上版本均可。此文件是把百度的电脑版一键root工具转换成手机apk应用版。

    struts2-core-2.3.7源码

    Struts2是一个基于MVC(Model-View-...总之,`struts2-core-2.3.7`源码的分析将带你走进Struts2框架的深处,帮助你成为一名更熟练的Java Web开发者,理解Web应用的复杂性,以及如何优雅地处理用户请求和业务逻辑。

    Android-2.3.7-frameworks-src

    Android-2.3.7-frameworks-src,Android源代码,Android_Frameworks层源代码,下载后用eclpse关联源代码文件夹,然后就可以利用eclpse翻看Android Frameworks层的源代码

    Android 2.3.3-2.3.7 sdk API10

    Android 2.3.3-2.3.7 SDK API 10是Android操作系统的一个重要版本,它在2010年12月发布,代号为“Gingerbread”(姜饼)。这个版本带来了许多改进和新特性,对开发者来说具有深远的影响。下面将详细阐述其中的关键...

    乐phone3GW100-CyanogenMod7.1.0-Android2.3.7-体验版 第一卷

    1、此ROM是移植CyanogenMod7.1而来, Android版本为2.3.7, 内核版本为2.6.32 2、解决了之前原生2.3.2的断网和亮度的BUG,并且开启了自动亮度调节功能 3、运行商中文显示) f5 z L3 F9 x: @8 h 4、多媒体源码采用谷.歌的...

    乐phone3GW101-CyanogenMod7.1.0-Android2.3.7-体验版 第一卷

    1、此ROM是移植CyanogenMod7.1而来, Android版本为2.3.7, 内核版本为2.6.32 2、解决了之前原生2.3.2的断网和亮度的BUG,并且开启了自动亮度调节功能 3、运行商中文显示) f5 z L3 F9 x: @8 h 4、多媒体源码采用谷.歌的...

    乐phone3GW101-CyanogenMod7.1.0-Android2.3.7-体验版 第二卷

    1、此ROM是移植CyanogenMod7.1而来, Android版本为2.3.7, 内核版本为2.6.32 2、解决了之前原生2.3.2的断网和亮度的BUG,并且开启了自动亮度调节功能 3、运行商中文显示) f5 z L3 F9 x: @8 h 4、多媒体源码采用谷.歌的...

    unixODBC-2.3.7.zip

    在unixODBC -2.3.7文件夹里打开终端,输入chmod +x configure添加执行权限,然后依次输入执行以下三个命令 ./configure make make install。 执行完成后在/usr/local/etc路径下配置odbc.ini文件,内容如下(按...

    乐phone3GW100-CyanogenMod7.1.0-Android2.3.7-体验版 第二卷

    1、此ROM是移植CyanogenMod7.1而来, Android版本为2.3.7, 内核版本为2.6.32 2、解决了之前原生2.3.2的断网和亮度的BUG,并且开启了自动亮度调节功能 3、运行商中文显示) f5 z L3 F9 x: @8 h 4、多媒体源码采用谷.歌的...

    JDK7_SRC+Android_2.3.7_Frameworks_SRC

    开发者可以通过分析源码来理解Android如何处理事件、管理资源、实现权限控制以及处理系统服务的启动和停止。此外,Android的视图系统、布局管理、动画和图形绘制等也是源代码中的重要部分。 在Android 2.3.7的框架...

Global site tag (gtag.js) - Google Analytics