Android源代码结构分.pdf
《Android源代码结构分.pdf》由会员分享,可在线阅读,更多相关《Android源代码结构分.pdf(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、目录一、源代码结构.2第一层次目录.2bionic 目录.3bootloader 目录.5build 目录 .7dalvik 目录.9development 目录.9external 目录.13 frameworks 目录.19 Hardware.20 Out.22 Kernel.22 packages目录.22 prebuilt 目录 .27 SDK.28 system 目录 .28 Vendor.32 一、源代码结构第一层次目录Google 提供的 Android包含了原始Android的目标机代码,主机编译工具、仿真环境,代码包经过解压缩后,第一级别的目录和文件如下所示:.|-Makef
2、ile(全局的Makefile)|-bionic(Bionic含义为仿生,这里面是一些基础的库的源代码)|-bootloader(引导加载器),我们的是bootable,|-build(build目录中的内容不是目标所用的代码,而是编译和配置所需要的脚本和工具)|-dalvik(JAVA虚拟机)|-development(程序开发所需要的模板和工具)|-external(目标机器使用的一些库)|-frameworks(应用程序的框架层)|-hardware(与硬件相关的库)|-kernel(Linux2.6的源代码)|-packages(Android的各种应用程序)|-prebuilt(An
3、droid在各种平台下编译的预置脚本)|-recovery(与目标的恢复功能相关)-system(Android的底层的一些库)bionic目录bionic C 库bionic目录展开一个级别的目录如下所示:bionic/|-Android.mk|-libc|-libdl|-libm|-libstdc+|-libthread_db-linker bionic 目录|-libc (C 库)|-arch-arm (ARM 架构,包含系统调用汇编实现)|-arch-x86 (x86 架构,包含系统调用汇编实现)|-bionic (由 C 实现的功能,架构无关)|-docs (文档)|-include
4、 (头文件)|-inet (?inet 相关,具体作用不明)|-kernel (Linux 内核中的一些头文件)|-netbsd (?nesbsd 系统相关,具体作用不明)|-private (?一些私有的头文件)|-stdio (stdio 实现)|-stdlib (stdlib 实现)|-string (string 函数实现)|-tools (几个工具)|-tzcode (时区相关代码)|-unistd (unistd 实现)|-zoneinfo (时区信息)|-libdl (libdl 实现,dl 是动态链接,提供访问动态链接库的功能)|-libm (libm 数学库的实现,)|-al
5、pha (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 (多线程程序的调试器库)|-i
6、nclude (头文件)-linker (动态链接器)-arch (支持 arm 和 x86 两种架构)bootloader目录启动引导相关代码bootloader 目录展开的两个级别目录:bootloader/-legacy|-Android.mk|-README|-arch_armv6|-arch_msm7k|-fastboot_protocol.txt|-include|-libboot|-libc|-nandwrite-usbloader bootable 目录.|-bootloader (适合各种bootloader 的通用代码)|-legacy (估计不能直接使用,可以参考)|-a
7、rch_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 (一
8、个简单的UI)|-minzip (一个简单的压缩工具)|-mtdutils (mtd 工具)|-res (资源)|-images (一些图片)|-tools (工具)|-ota (OTA Over The Air Updates 升级工具)-updater (升级器)build目录存放系统编译规则及generic 等基础开发包配置build 目录展开的一个级别的目录如下所示:build/|-buildspec.mk.default|-cleanspec.mk|-core(各种以 mk为结尾的文件,它门是编译所需要的Makefile)|-envsetup.sh|-libs|-target(包含
9、board 和 product 两个目录,为目标所需要文件)-tools(编译过程中主机所需要的工具,一些需要经过编译生成)其中,core 中的 Makefile 是整个 Android 编译所需要的真正的Makefile,它被顶层目录的Makefile引用。envsetup.sh 是一个在使用仿真器运行的时候,用于设置环境的脚本。build 目录|-core (核心编译规则)|-history (历史记录)|-libs|-host (主机端库,有android“cp”功能替换)|-target (目标机编译对象)|-board (开发平台)|-emulator (模拟器)|-generic
10、(通用)|-idea6410 (自己添加的)|-sim (最简单)|-product (开发平台对应的编译规则)|-security (密钥相关)-tools (编译中主机使用的工具及脚本)|-acp (Android acp Command)|-apicheck (api 检查工具)|-applypatch (补丁工具)|-apriori (预链接工具)|-atree (tree 工具)|-bin2asm (bin 转换为 asm 工具)|-check_prereq (检查编译时间戳工具)|-dexpreopt (模拟器相关工具,具体功能不明)|-droiddoc (?作用不明,java 语
11、言,网上有人说和JDK5 有关)|-fs_config (This program takes a list of files and directories)|-fs_get_stats (获取文件系统状态)|-iself (判断是否 ELF 格式)|-isprelinked (判断是否prelinked)|-kcm (按键相关)|-lsd (List symbol dependencies)|-releasetools (生成镜像的工具及脚本)|-rgb2565 (rgb 转换为 565)|-signapk (apk 签名工具)|-soslim (strip 工具)-zipalign (z
12、ip archive alignment tool)dalvik目录用于提供 Android JAVA应用程序运行的基础 JAVA 虚拟机。dalvik目录 dalvik虚拟机.|-dalvikvm (main.c 的目录)|-dexdump (dex 反汇编)|-dexlist (List all methods in all concrete classes in a DEX file.)|-dexopt (预验证与优化)|-docs (文档)|-dvz (和 zygote 相关的一个命令)|-dx (dx 工具,将多个 java 转换为 dex)|-hit (?java 语言写成)|-l
13、ibcore (核心库)|-libcore-disabled (?禁用的库)|-libdex (dex 的库)|-libnativehelper (Support functions for Androids class libraries)|-tests (测试代码)|-tools (工具)-vm (虚拟机实现)development目录展开的一个级别的目录如下所示:development|-apps(Android 应用程序的模板)|-build(编译脚本模板)|-cmds|-data|-docs|-emulator(仿真相关)|-host(包含 windows平台的一些工具)|-ide|
14、-pdk|-samples(一些示例程序)|-simulator(大多是目标机器的一些工具)-tools 在 emulator 目录中 qemud是使用 QEMU 仿真时目标机器运行的后台程序,skins 是仿真时手机的界面。samples 中包含了很多 Android 简单工程,这些工程为开发者学习开发Android 程序提供了很大便利,可以作为模板使用。development 目录(开发者需要的一些例程及工具)|-apps (一些核心应用程序)|-BluetoothDebug (蓝牙调试程序)|-CustomLocale (自定义区域设置)|-Development (开发)|-Fallb
15、ack (和语言相关的一个程序)|-FontLab (字库)|-GestureBuilder (手势动作)|-NinePatchLab (?)|-OBJViewer (OBJ 查看器)|-SdkSetup (SDK 安装器)|-SpareParts (高级设置)|-Term (远程登录)|-launchperf (?)|-build (编译脚本模板)|-cmds (有个 monkey 工具)|-data (配置数据)|-docs (文档)|-host (主机端 USB 驱动等)|-ide (集成开发环境)|-ndk (本地开发套件 c 语言开发套件)|-pdk (Plug Developmen
16、t Kit)|-samples (例程)|-AliasActivity (?)|-ApiDemos (API 演示程序)|-BluetoothChat (蓝牙聊天)|-BrowserPlugin (浏览器插件)|-BusinessCard (商业卡)|-Compass (指南针)|-ContactManager (联系人管理器)|-CubeLiveWallpaper (动态壁纸的一个简单例程)|-FixedGridLayout (像是布局)|-GlobalTime (全球时间)|-HelloActivity (Hello)|-Home (Home)|-JetBoy (jetBoy 游戏)|-L
17、unarLander (貌似又是一个游戏)|-MailSync (邮件同步)|-MultiResolution (多分辨率)|-MySampleRss (RSS)|-NotePad (记事本)|-RSSReader (RSS 阅读器)|-SearchableDictionary (目录搜索)|-SimpleJNI (JNI 例程)|-SkeletonApp (空壳 APP)|-Snake (snake 程序)|-SoftKeyboard (软键盘)|-Wiktionary (?维基)|-WiktionarySimple(?维基例程)|-scripts (脚本)|-sdk (sdk 配置)|-s
18、imulator (?模拟器)|-testrunner (?测试用)-tools (一些工具)external目录android 使用的一些开源的模组展开的一个级别的目录如下所示: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|
19、-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),它是
20、Android 多媒体框架的核心。webkit 是 Android 网络浏览器的核心。sqlite是 Android 数据库系统的核心。openssl 是 Secure Socket Layer,一个网络协议层,用于为数据通讯提供安全支持。external 目录.|-aes (AES 加密)|-apache-http (网页服务器)|-astl (ASTL(Android STL)is a slimmed-down version of the regular C+STL.)|-bison (自动生成语法分析器,将无关文法转换成C、C+)|-blktrace (blktrace is a bl
21、ock layer IO tracing mechanism)|-bluetooth (蓝牙相关、协议栈)|-bsdiff (diff 工具)|-bzip2 (压缩工具)|-clearsilver (html 模板系统)|-dbus (低延时、低开销、高可用性的IPC 机制)|-dhcpcd (DHCP 服务)|-dosfstools (DOS 文件系统工具)|-dropbear (SSH2 的 server)|-e2fsprogs (EXT2 文件系统工具)|-elfcopy (复制 ELF 的工具)|-elfutils (ELF 工具)|-embunit (Embedded Unit Pr
22、oject)|-emma (java 代码覆盖率统计工具)|-esd (Enlightened Sound Daemon,将多种音频流混合在一个设备上播放)|-expat (Expat is a stream-oriented XML parser.)|-fdlibm (FDLIBM(Freely Distributable LIBM))|-freetype (字体)|-fsck_msdos (dos文件系统检查工具)|-gdata (google 的无线数据相关)|-genext2fs (genext2fs generates an ext2 filesystem as a normal(n
23、on-root)user)|-giflib (gif 库)|-googleclient(google 用户库)|-grub (This is GNU GRUB,the GRand Unified Bootloader.)|-gtest (Google C+Testing Framework)|-icu4c (ICU(International Component for Unicode)在 C/C+下的版本)|-ipsec-tools (This package provides a way to use the native IPsec functionality)|-iptables (防
24、火墙)|-jdiff (generate a report describing the difference between two public Java APIs.)|-jhead (jpeg 头部信息工具)|-jpeg (jpeg 库)|-junit (JUnit 是一个 Java语言的单元测试框架)|-kernel-headers(内核的一些头文件)|-libffi (libffi is a foreign function interface library.)|-libpcap (网络数据包捕获函数)|-libpng (png 库)|-libxml2 (xml 解析库)|-mtp
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android 源代码 结构
限制150内