Android 21 源码结构分析.docx
《Android 21 源码结构分析.docx》由会员分享,可在线阅读,更多相关《Android 21 源码结构分析.docx(14页珍藏版)》请在冰豆网上搜索。
Android21源码结构分析
Android2.1源码结构分析
(1)
Android2.1源码结构分析
Android2.1
|--Makefile
|--bionic (bionicC库)
|--bootable (启动引导相关代码)
|--build (存放系统编译规则及generic等基础开发包配置)
|--cts (Android兼容性测试套件标准)
|--dalvik (dalvikJAVA虚拟机)
|--development (应用程序开发相关)
|--external (android使用的一些开源的模组)
|--frameworks (核心框架——java及C++语言)
|--hardware (主要保护硬解适配层HAL代码)
|--out (编译完成后的代码输出与此目录)
|--packages (应用程序包)
|--prebuilt (x86和arm架构下预编译的一些资源)
|--sdk (sdk及模拟器)
|--system (文件系统库、应用及组件——C语言)
`--vendor (厂商定制代码)
bionic目录
|--libc (C库)
| |--arch-arm (ARM架构,包含系统调用汇编实现)
| |--arch-x86 (x86架构,包含系统调用汇编实现)
| |--bionic (由C实现的功能,架构无关)
| |--docs (文档)
| |--include (头文件)
| |--inet (?
inet相关,具体作用不明)
| |--kernel (Linux内核中的一些头文件)
| |--netbsd (?
nesbsd系统相关,具体作用不明)
| |--private (?
一些私有的头文件)
| |--stdio (stdio实现)
| |--stdlib (stdlib实现)
| |--string (string函数实现)
| |--tools (几个工具)
| |--tzcode (时区相关代码)
| |--unistd (unistd实现)
| `--zoneinfo (时区信息)
|--libdl (libdl实现,dl是动态链接,提供访问动态链接库的功能)
|--libm (libm数学库的实现,)
| |--alpha (apaha架构)
| |--amd64 (amd64架构)
| |--arm (arm架构)
| |--bsdsrc (?
bsd的源码)
| |--i386 (i386架构)
| |--i387 (i387架构?
)
| |--ia64 (ia64架构)
| |--include (头文件)
| |--man (数学函数,后缀名为.3,一些为freeBSD的库文件)
| |--powerpc (powerpc架构)
| |--sparc64 (sparc64架构)
| `--src (源代码)
|--libstdc++ (libstdc++C++实现库)
| |--include (头文件)
| `--src (源码)
|--libthread_db (多线程程序的调试器库)
| `--include (头文件)
`--linker (动态链接器)
`--arch (支持arm和x86两种架构)
bootable目录
.
|--bootloader (适合各种bootloader的通用代码)
| `--legacy (估计不能直接使用,可以参考)
| |--arch_armv6 (V6架构,几个简单的汇编文件)
| |--arch_msm7k (高通7k处理器架构的几个基本驱动)
| |--include (通用头文件和高通7k架构头文件)
| |--libboot (启动库,都写得很简单)
| |--libc (一些常用的c函数)
| |--nandwrite (nandwirte函数实现)
| `--usbloader (usbloader实现)
|--diskinstaller (android镜像打包器,x86可生产iso)
`--recovery (系统恢复相关)
|--edify (升级脚本使用的edify脚本语言)
|--etc (init.rc恢复脚本)
|--minui (一个简单的UI)
|--minzip (一个简单的压缩工具)
|--mtdutils (mtd工具)
|--res (资源)
| `--images (一些图片)
|--tools (工具)
| `--ota (OTAOverTheAirUpdates升级工具)
`--updater (升级器)
build目录
.
|--core (核心编译规则)
|--history (历史记录)
|--libs
| `--host (主机端库,有android“cp”功能替换)
|--target (目标机编译对象)
| |--board (开发平台)
| | |--emulator (模拟器)
| | |--generic (通用)
| | |--idea6410 (自己添加的)
| | `--sim (最简单)
| `--product (开发平台对应的编译规则)
| `--security (密钥相关)
`--tools (编译中主机使用的工具及脚本)
|--acp (Android"acp"Command)
|--apicheck (api检查工具)
|--applypatch (补丁工具)
|--apriori (预链接工具)
|--atree (tree工具)
|--bin2asm (bin转换为asm工具)
|--check_prereq (检查编译时间戳工具)
|--dexpreopt (模拟器相关工具,具体功能不明)
|--droiddoc (?
作用不明,java语言,网上有人说和JDK5有关)
|--fs_config (Thisprogramtakesalistoffilesanddirectories)
|--fs_get_stats (获取文件系统状态)
|--iself (判断是否ELF格式)
|--isprelinked (判断是否prelinked)
|--kcm (按键相关)
|--lsd (Listsymboldependencies)
|--releasetools (生成镜像的工具及脚本)
|--rgb2565 (rgb转换为565)
|--signapk (apk签名工具)
|--soslim (strip工具)
`--zipalign (ziparchivealignmenttool)
dalvik目录dalvik虚拟机
.
|--dalvikvm (main.c的目录)
|--dexdump (dex反汇编)
|--dexlist (ListallmethodsinallconcreteclassesinaDEXfile.)
|--dexopt (预验证与优化)
|--docs (文档)
|--dvz (和zygote相关的一个命令)
|--dx (dx工具,将多个java转换为dex)
|--hit (?
java语言写成)
|--libcore (核心库)
|--libcore-disabled (?
禁用的库)
|--libdex (dex的库)
|--libnativehelper (SupportfunctionsforAndroid'sclasslibraries)
|--tests (测试代码)
|--tools (工具)
`--vm (虚拟机实现)
development目录 (开发者需要的一些例程及工具)
|--apps (一些核心应用程序)
| |--BluetoothDebug(蓝牙调试程序)
| |--CustomLocale (自定义区域设置)
| |--Development (开发)
| |--Fallback (和语言相关的一个程序)
| |--FontLab (字库)
| |--GestureBuilder (手势动作)
| |--NinePatchLab (?
)
| |--OBJViewer (OBJ查看器)
| |--SdkSetup (SDK安装器)
| |--SpareParts (高级设置)
| |--Term (远程登录)
| `--launchperf (?
)
|--build (编译脚本模板)
|--cmds (有个monkey工具)
|--data (配置数据)
|--docs (文档)
|--host (主机端USB驱动等)
|--ide (集成开发环境)
|--ndk (本地开发套件——c语言开发套件)
|--pdk (PlugDevelopmentKit)
|--samples (例程)
| |--AliasActivity (?
)
| |--ApiDemos (API演示程序)
| |--BluetoothChat (蓝牙聊天)
| |--BrowserPlugin (浏览器插件)
| |--BusinessCard (商业卡)
| |--Compass (指南针)
| |--ContactManager(联系人管理器)
| |--CubeLiveWallpaper (动态壁纸的一个简单例程)
| |--FixedGridLayout(像是布局)
| |--GlobalTime (全球时间)
| |--HelloActivity (Hello)
| |--Home (Home)
| |--JetBoy (jetBoy游戏)
| |--LunarLander (貌似又是一个游戏)
| |--MailSync (邮件同步)
| |--MultiResolution (多分辨率)
| |--MySampleRss (RSS)
| |--NotePad (记事本)
| |--RSSReader (RSS阅读器)
| |--SearchableDictionary(目录搜索)
| |--SimpleJNI (JNI例程)
| |--SkeletonApp (空壳APP)
| |--Snake (snake程序)
| |--SoftKeyboard (软键盘)
| |--Wiktionary (?
维基)
| `--WiktionarySimple(?
维基例程)
|--scripts (脚本)
|--sdk (sdk配置)
|--simulator (?
模拟器)
|--testrunner (?
测试用)
`--tools (一些工具)
external目录
.
|--aes (AES加密)
|--apache-http (网页服务器)
|--astl (ASTL(AndroidSTL)isaslimmed-downversionoftheregularC++STL.)
|--bison (自动生成语法分析器,将无关文法转换成C、C++)
|--blktrace (blktraceisablocklayerIOtracingmechanism)
|--bluetooth (蓝牙相关、协议栈)
|--bsdiff (diff工具)
|--bzip2 (压缩工具)
|--clearsilver (html模板系统)
|--dbus (低延时、低开销、高可用性的IPC机制)
|--dhcpcd (DHCP服务)
|--dosfstools (DOS文件系统工具)
|--dropbear (SSH2的server)
|--e2fsprogs (EXT2文件系统工具)
|--elfcopy (复制ELF的工具)
|--elfutils (ELF工具)
|--embunit (EmbeddedUnitProject)
|--emma (java代码覆盖率统计工具)
|--esd (EnlightenedSoundDaemon,将多种音频流混合在一个设备上播放)
|--expat (Expatisastream-orientedXMLparser.)
|--fdlibm (FDLIBM(FreelyDistributableLIBM))
|--freetype (字体)
|--fsck_msdos (dos文件系统检查工具)
|--gdata (google的无线数据相关)
|--genext2fs (genext2fsgeneratesanext2filesystemasanormal(non-root)user)
|--giflib (gif库)
|--googleclient(google用户库)
|--grub (ThisisGNUGRUB,theGRandUnifiedBootloader.)
|--gtest (GoogleC++TestingFramework)
|--icu4c (ICU(InternationalComponentforUnicode)在C/C++下的版本)
|--ipsec-tools (ThispackageprovidesawaytousethenativeIPsecfunctionality)
|--iptables (防火墙)
|--jdiff (generateareportdescribingthedifferencebetweentwopublicJavaAPIs.)
|--jhead (jpeg头部信息工具)
|--jpeg (jpeg库)
|--junit (JUnit是一个Java语言的单元测试框架)
|--kernel-headers(内核的一些头文件)
|--libffi (libffiisaforeignfunctioninterfacelibrary.)
|--libpcap (网络数据包捕获函数)
|--libpng (png库)
|--libxml2 (xml解析库)
|--mtpd (一个命令)
|--netcat (simpleUnixutilitywhichreadsandwritesdataacrossnetworkconnections)
|--netperf (网络性能测量工具)
|--neven (看代码和JNI相关)
|--opencore (多媒体框架)
|--openssl (SSL加密相关)
|--openvpn (VPN开源库)
|--oprofile (OProfile是Linux内核支持的一种性能分析机制。
)
|--ping (ping命令)
|--ppp (pppd拨号命令,好像还没有chat)
|--proguard (Javaclassfileshrinker,optimizer,obfuscator,andpreverifier)
|--protobuf (aflexible,efficient,automatedmechanismforserializingstructureddata)
|--qemu (arm模拟器)
|--safe-iop (functionsforperformingsafeintegeroperations)
|--skia (skia图形引擎)
|--sonivox (soleMIDIsolutionforGoogleAndroidMobilePhonePlatform)
|--speex (Speex编/解码API的使用(libspeex))
|--sqlite (数据库)
|--srec (Nuance公司提供的开源连续非特定人语音识别)
|--strace (trace工具)
|--svox (EmbeddedText-to-Speech)
|--tagsoup (TagSoup是一个Java开发符合SAX的HTML解析器)
|--tc