如题,安卓源码体积庞大,内容繁多,其结构大致如下:
Android 5.1 |-- Makefile |-- abi |-- art |-- bionic (bionic C库) |-- bootable (启动引导相关代码) |-- build (存放系统编译规则及generic等基础开发包配置) |-- cts (Android兼容性测试套件标准) |-- dalvik (dalvik java虚拟机) |-- developers |-- development (应用程序开发相关) |-- device |-- docs |-- external (android使用的一些开源的模组) |-- frameworks (核心框架——java及C++语言) |-- hardware (部分厂家开源的硬解适配层HAL代码) |-- kernel |-- libcore |-- libnativehelper |-- ndk |-- out (编译完成后的代码输出与此目录) |-- packages (应用程序包) |-- pdk |-- PRebuilts (x86和arm架构下预编译的一些资源) |-- sdk (sdk及模拟器) |-- system (底层文件系统库、应用及组件——C语言) |-- tools `-- vendor (厂商定制代码) bionic 目录 |-- benchmarks |-- libc (C库) | |-- arch-arm (ARM架构,包含系统调用汇编实现) | |-- ... | |-- bionic (由C实现的功能,架构无关) | |-- dns | |-- include (头文件) | |-- kernel (linux内核中的一些头文件) | |-- private (?一些私有的头文件) | |-- stdio (stdio实现) | |-- tools (几个工具) | |-- tzcode (时区相关代码) | |-- upstream-dlmalloc | |-- upstream-freebsd | |-- upstream-netbsd | |-- upstream-openbsd | `-- zoneinfo (时区信息) |-- libdl (libdl实现,dl是动态链接,提供访问动态链接库的功能) |-- libm (libm数学库的实现,) |-- libstdc++ (libstdc++ C++实现库) |-- linker (动态链接器) `-- test bootable 目录 |-- bootloader (适合各种bootloader的通用代码) | |-- legacy (估计不能直接使用,可以参考) | `-- lk `-- recovery (系统恢复相关) | |-- edify (升级脚本使用的edify脚本语言) | |-- etc (init.rc恢复脚本) | |-- minui (一个简单的UI) | |-- minzip (一个简单的压缩工具) | |-- mtdutils (mtd工具) | |-- res (资源) | |-- tools (工具) | | `-- ota (OTA Over The Air Updates升级工具) | `-- updater (升级器) build目录 |-- core (核心编译规则) |-- libs | `-- host (主机端库,有android “cp”功能替换) |-- target (目标机编译对象) | |-- board (开发平台) | |-- product (开发平台对应的编译规则) `-- tools (编译中主机使用的工具及脚本) dalvik目录 dalvik虚拟机 |-- dexdump (dex反汇编) |-- dexgen |-- dexlist (List all methods in all concrete classes in a DEX file.) |-- docs (文档) |-- dx (dx工具,将多个java转换为dex) |-- hit (?java语言写成) |-- opcode-gen |-- tools (工具) `-- vm (虚拟机实现) development 目录 (开发者需要的一些例程及工具) |-- apps (一些核心应用程序) | |-- BluetoothDebug (蓝牙调试程序) | |-- CustomLocale (自定义区域设置) | |-- Development (开发) | |-- Fallback (和语言相关的一个程序) | |-- FontLab (字库) | |-- GestureBuilder (手势动作) | |-- NinePatchLab (?) | |-- OBJViewer (OBJ查看器) | |-- SdkSetup (SDK安装器) | |-- SpareParts (高级设置) | |-- Term (远程登录) | `-- launchperf (?) |-- build (编译脚本模板) |-- cmds (有个monkey工具) |-- docs (文档) |-- host (主机端USB驱动等) |-- ide (集成开发环境) |-- libraries |-- ndk (本地开发套件——c语言开发套件) |-- 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配置) |-- sdk_overlay |-- sys-img |-- testrunner (?测试用) |-- tools (一些工具) `-- tutorials external 目录 |-- apache-http (网页服务器) |-- bison (自动生成语法分析器,将无关文法转换成C、C++) |-- blktrace (blktrace is a block layer IO tracing mechanism) |-- bluetooth (蓝牙相关、协议栈) |-- bsdiff (diff工具) |-- bzip2 (压缩工具) |-- dhcpcd (DHCP服务) |-- e2fsprogs (EXT2文件系统工具) |-- elfcopy (复制ELF的工具) |-- elfutils (ELF工具) |-- embunit (Embedded Unit Project) |-- emma (java代码覆盖率统计工具) |-- esd (Enlightened Sound Daemon,将多种音频流混合在一个设备上播放) |-- expat (Expat is a stream-oriented xml parser.) |-- fdlibm (FDLIBM (Freely Distributable LIBM))通过梳理目录结构,可以加深对安卓系统架构的了解,以及方便后续开发。
新闻热点
疑难解答