[原创]Android 的源代码结构 (hanchao3c Android 开发者论坛原创,转载请注明) Google 提供的Android 包含了原始Android 的目标机代码,主机编译工具、仿真环境,代码包经过解压缩后,第一级别的目录和文件如下所示: . |-- Makefile (全局的Makefile) |-- bionic ( Bionic 含义为仿生,这里面是一些基础的库的源代码) |-- bootloader (引导加载器) |-- build ( build 目录中的内容不是目标所用的代码,而是编译和配置所需要的脚本和工具) |-- dalvik ( JAVA 虚拟机) |-- development (程序开发所需要的模板和工具) |-- external (目标机器使用的一些库) |-- frameworks (应用程序的框架层) |-- hardware (与硬件相关的库) |-- kernel ( Linux2.6 的源代码) |-- packages ( Android 的各种应用程序) |-- prebuilt ( Android 在各种平台下编译的预置脚本) |-- recovery (与目标的恢复功能相关) `-- system ( Android 的底层的一些库) bionic 目录展开一个级别的目录如下所示: bionic/ |-- Android.mk |-- libc |-- libdl |-- libm |-- libstdc++ |-- libthread_db `-- linker bootloader 目录展开的两个级别目录: bootloader/ `-- legacy |-- Android.mk |-- README |-- arch_armv6 |-- arch_msm7k |-- fastboot_protocol.txt |-- include |-- libboot |-- libc |-- nandwrite `-- usbloader build 目录展开的一个级别的目录如下所示: build/ |-- buildspec.mk.default |-- cleanspec.mk |-- core (各种以mk 为结尾的文件,它门是编译所需要的Makefile) |-- envsetup.sh |-- libs |-- target (包含board 和 product 两个目录,为目标所需要文件) `-- tools (编译过程中主机所需要的工具,一些需要经过编译生成) 其中,core 中的Makefile 是整个Android 编译所需要的真正的Makefile,它被顶层目录的Makefile 引用。 envsetup.sh 是一个在使用仿真器运行的时候,用于设置环境的脚本。 dalvik 目录用于提供Android JAVA 应用程序运行的基础————JAVA 虚拟机。 development 目录展开的一个级别的目录如下所示: development |-- apps ( Android 应用程序的模板) |-- build (编译脚本模板) |-- cmds |-- data |-- docs |-- emulator...