android源代码结构分析1
2011年07月04日
001Android 2.1 源码结构分析
002lee
003Android 2.1
004|-- Makefile
005|-- bionic (bionic C库)
006|-- bootable (启动引导相关代码)
007|-- build (存放系统编译规则及generic等基础开发包配置)
008|-- cts (Android兼容性测试套件标准)
009|-- dalvik (dalvik JAVA虚拟机)
010|-- development (应用程序开发相关)
011|-- external (android使用的一些开源的模组)
012|-- frameworks (核心框架――java及C++语言)
013|-- hardware (主要保护硬解适配层HAL代码)
014|-- out (编译完成后的代码输出与此目录)
015|-- packages (应用程序包)
016|-- prebuilt (x86和arm架构下预编译的一些资源)
017|-- sdk (sdk及模拟器)
018|-- system (文件系统库、应用及组件――C语言)
019`-- vendor (厂商定制代码)
021bionic 目录
022|-- libc (C库)
023| |-- arch-arm (ARM架构,包含系统调用汇编实现)
024| |-- arch-x86 (x86架构,包含系统调用汇编实现)
025| |-- bionic (由C实现的功能,架构无关)
026| |-- docs (文档)
027| |-- include (头文件)
028| |-- inet (?inet相关,具体作用不明)
029| |-- kernel (Linux内核中的一些头文件)
030| |-- netbsd (?nesbsd系统相关,具体作用不明)
031| |-- private (?一些私有的头文件)
032| |-- stdio (stdio实现)
033| |-- stdlib (stdlib实现)
034| |-- string (string函数实现)
035| |-- tools (几个工具)
036| |-- tzcode (时区相关代码)
037| |-- unistd (unistd实现)
038| `-- zoneinfo (时区信息)
039|-- libdl (libdl实现,dl是动态链接,提供访问动态链接库的功能)
040|-- libm (libm数学库的实现,)
041| |-- alpha (apaha架构)
042| |-- amd64 (amd64架构)
043| |-- arm (arm架构)
044| |-- bsdsrc (?bsd的源码)
045| |-- i386 (i386架构)
046| |-- i387 (i387架构?)
047| |-- ia64 (ia64架构)
048| |-- include (头文件)
049| |-- man (数学函数,后缀名为.3,一些为freeBSD的库文件)
050| |-- powerpc (powerpc架构)
051| |-- sparc64 (sparc64架构)
052| `-- src (源代码)
053|-- libstdc++ (libstdc++ C++实现库)
054| |-- include (头文件)
055| `-- src (源码)
056|-- libthread_db (多线程程序的调试器库)
057| `-- include (头文件)
058`-- linker (动态链接器)
059 `-- arch (支持arm和x86两种架构)
060bootable 目录
061.
062|-- bootloader (适合各种bootloader的通用代码)
063| `-- legacy (估计不能直接使用,可以参考)
064| |-- arch_armv6 (V6架构,几个简单的汇编文件)
065| |-- arch_msm7k (高通7k处理器架构的几个基本驱动)
066| |-- include (通用头文件和高通7k架构头文件)
067| |-- libboot (启动库,都写得很简单)
068| |-- libc (一些常用的c函数)
069| |-- nandwrite (nandwirte函数实现)
070| `-- usbloader (usbloader实现)
071|-- diskinstaller (android镜像打包器,x86可生产iso)
072`-- recovery (系统恢复相关)
073 |-- edify (升级脚本使用的edify脚本语言)
074 |-- etc (init.rc恢复脚本)
075 |-- minui (一个简单的UI)
076 |-- minzip (一个简单的压缩工具)
077 |-- mtdutils (mtd工具)
078 |-- res (资源)
079 | `-- images (一些图片)
080 |-- tools (工具)
081 | `-- ota (OTA Over The Air Updates升级工具)
082 `-- updater (升级器)
083build目录
084.
085|-- core (核心编译规则)
086|-- history (历史记录)
087|-- libs
088| `-- host (主机端库,有android “cp”功能替换)
089|-- target (目标机编译对象)
090| |-- board (开发平台)
091| | |-- emulator (模拟器)
092| | |-- generic (通用)
093| | |-- idea6410 (自己添加的)
094| | `-- sim (最简单)
095| `-- product (开发平台对应的编译规则)
096| `-- security (密钥相关)
097`-- tools (编译中主机使用的工具及脚本)
098 |-- acp (Android "acp" Command)
099 |-- apicheck (api检查工具)
100 |-- applypatch (补丁工具)
101 |-- apriori (预链接工具)
102 |-- atree (tree工具)
103 |-- bin2asm (bin转换为asm工具)
104 |-- check_prereq (检查编译时间戳工具)
105 |-- dexpreopt (模拟器相关工具,具体功能不明)
106 |-- droiddoc (?作用不明,java语言,网上有人说和JDK5有关)
107 |-- fs_config (This program takes a list of files and directories)
108 |-- fs_get_stats (获取文件系统状态)
109 |-- iself (判断是否ELF格式)
110 |-- isprelinked (判断是否prelinked)
111 |-- kcm (按键相关)
112 |-- lsd (List symbol dependencies)
113 |-- releasetools (生成镜像的工具及脚本)
114 |-- rgb2565 (rgb转换为565)
115 |-- signapk (apk签名工具)
116 |-- soslim (strip工具)
117`-- zipalign (zip archive alignment tool)
118
119dalvik目录 dalvik虚拟机
120.
121|-- dalvikvm (main.c的目录)
122|-- dexdump (dex反汇编)
123|-- dexlist (List all methods in all concrete classes in a DEX file.)
124|-- dexopt (预验证与优化)
125|-- docs (文档)
126|-- dvz (和zygote相关的一个命令)
127|-- dx (dx工具,将多个java转换为dex)
128|-- hit (?java语言写成)
129|-- libcore (核心库)
130|-- libcore-disabled (?禁用的库)
131|-- libdex (dex的库)
132|-- libnativehelper (Support functions for Android's class libraries)
133|-- tests (测试代码)
134|-- tools (工具)
135`-- vm (虚拟机实现)
136
137development 目录 (开发者需要的一些例程及工具)
138|-- apps (一些核心应用程序)
139| |-- BluetoothDebug (蓝牙调试程序)
140| |-- CustomLocale (自定义区域设置)
141| |-- Development (开发)
142| |-- Fallback (和语言相关的一个程序)
143| |-- FontLab (字库)
144| |-- GestureBuilder (手势动作)
145| |-- NinePatchLab (?)
146| |-- OBJViewer (OBJ查看器)
147| |-- SdkSetup (SDK安装器)
148| |-- SpareParts (高级设置)
149| |-- Term (远程登录)
150| `-- launchperf (?)
151|-- build (编译脚本模板)
152|-- cmds (有个monkey工具)
153|-- data (配置数据)
154|-- docs (文档)
155|-- host (主机端USB驱动等)
156|-- ide (集成开发环境)
157|-- ndk (本地开发套件――c语言开发套件)
158|-- pdk (Plug Development Kit)
159|-- samples (例程)
160| |-- AliasActivity (?)
161| |-- ApiDemos (API演示程序)
162| |-- BluetoothChat (蓝牙聊天)
163| |-- BrowserPlugin (浏览器插件)
164| |-- BusinessCard (商业卡)
165| |-- Compass (指南针)
166| |-- ContactManager (联系人管理器)
167| |-- CubeLiveWallpaper (动态壁纸的一个简单例程)
168| |-- FixedGridLayout (像是布局)
169| |-- GlobalTime (全球时间)
170| |-- HelloActivity (Hello)
171| |-- Home (Home)
172| |-- JetBoy (jetBoy游戏)
173| |-- LunarLander (貌似又是一个游戏)
174| |-- MailSync (邮件同步)
175| |-- MultiResolution (多分辨率)
176| |-- MySampleRss (RSS)
177| |-- NotePad (记事本)
178| |-- RSSReader (RSS阅读器)
179| |-- SearchableDictionary (目录搜索)
180| |-- SimpleJNI (JNI例程)
181| |-- SkeletonApp (空壳APP)
182| |-- Snake (snake程序)
183| |-- SoftKeyboard (软键盘)
184| |-- Wiktionary (?维基)
185| `-- WiktionarySimple(?维基例程)
186|-- scripts (脚本)
187|-- sdk (sdk配置)
188|-- simulator (?模拟器)
189|-- testrunner (?测试用)
190`-- tools (一些工具)
191