[转]Android的源代码结构

发布时间:2014-10-25 2:21:03
来源:分享查询网

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`-- linkerbootloader目录展开的两个级别目录:bootloader/`-- legacy    |-- Android.mk    |-- README    |-- arch_armv6    |-- arch_msm7k    |-- fastboot_protocol.txt    |-- include    |-- libboot    |-- libc    |-- nandwrite    `-- usbloaderbuild目录展开的一个级别的目录如下所示: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                   (仿真相关)|-- host                       (包含windows平台的一些工具)|-- ide|-- pdk|-- samples                    (一些示例程序)|-- simulator                  (大多是目标机器的一些工具)`-- tools在emulator目录中qemud是使用QEMU仿真时目标机器运行的后台程序,skins是仿真时手机的界面。samples中包含了很多Android简单工程,这些工程为开发者学习开发Android程序提供了很大便利,可以作为模板使用。external目录展开的一个级别的目录如下所示:external/|-- aes|-- apache-http|-- bluez|-- clearsilver|-- dbus|-- dhcpcd|-- dropbear|-- elfcopy|-- elfutils|-- emma|-- esd|-- expat|-- fdlibm|-- freetype|-- gdata|-- giflib|-- googleclient|-- icu4c|-- iptables|-- jdiff|-- jhead|-- jpeg|-- libffi|-- libpcap|-- libpng|-- libxml2|-- netcat|-- netperf|-- neven|-- opencore|-- openssl|-- oprofile|-- ping|-- ppp|-- protobuf|-- qemu|-- safe-iop|-- skia|-- sonivox|-- sqlite|-- srec|-- strace|-- tagsoup|-- tcpdump|-- tinyxml|-- tremor|-- webkit|-- wpa_supplicant|-- yaffs2`-- zlib在external中,每个目录表示Android目标系统中的一个模块,可能有一个或者若干个库构成。其中:opencore为PV(PacketVideo),它是Android多媒体框架的核心。webkit是Android网络浏览器的核心。sqlite是Android数据库系统的核心。openssl是Secure Socket Layer,一个网络协议层,用于为数据通讯提供安全支持。frameworks目录展开的一个级别的目录如下所示:frameworks/|-- base|-- opt`-- policiesframeworks是Android应用程序的框架。hardware是一些与硬件相关的库kernel是Linux2.6的源代码packages目录展开的两个级别的目录如下所示:packages/|-- apps|   |-- AlarmClock|   |-- Browser|   |-- Calculator|   |-- Calendar|   |-- Camera|   |-- Contacts|   |-- Email|   |-- GoogleSearch|   |-- HTMLViewer|   |-- IM|   |-- Launcher|   |-- Mms|   |-- Music|   |-- PackageInstaller|   |-- Phone|   |-- Settings|   |-- SoundRecorder|   |-- Stk|   |-- Sync|   |-- Updater|   `-- VoiceDialer`-- providers    |-- CalendarProvider    |-- ContactsProvider    |-- DownloadProvider    |-- DrmProvider    |-- GoogleContactsProvider    |-- GoogleSubscribedFeedsProvider    |-- ImProvider    |-- MediaProvider    `-- TelephonyProviderpackages中包含两个目录,其中apps中是Android中的各种应用程序,providers是一些内容提供者(在Android中的一个数据源)。packages中两个目录的内容大都是使用JAVA编写的程序,各个文件夹的层次结构是类似的。prebuilt目录展开的一个级别的目录如下所示:prebuilt/|-- Android.mk|-- android-arm|-- common|-- darwin-x86|-- linux-x86`-- windowssystem目录展开的两个级别的目录如下所示:system/|-- bluetooth|   |-- bluedroid|   `-- brfpatch|-- core|   |-- Android.mk|   |-- README|   |-- adb|   |-- cpio|   |-- debuggerd|   |-- fastboot|   |-- include            (各个库接口的头文件)|   |-- init|   |-- libctest|   |-- libcutils|   |-- liblog|   |-- libmincrypt|   |-- libnetutils|   |-- libpixelflinger|   |-- libzipfile|   |-- logcat|   |-- logwrapper|   |-- mkbootimg|   |-- mountd|   |-- netcfg|   |-- rootdir|   |-- sh|   `-- toolbox|-- extras|   |-- Android.mk|   |-- latencytop|   |-- libpagemap|   |-- librank|   |-- procmem|   |-- procrank|   |-- showmap|   |-- showslab|   |-- sound|   |-- su|   |-- tests|   `-- timeinfo`-- wlan

返回顶部
查看电脑版