Android源代码结构分析.docx

上传人:b****4 文档编号:11987028 上传时间:2023-04-16 格式:DOCX 页数:25 大小:26.49KB
下载 相关 举报
Android源代码结构分析.docx_第1页
第1页 / 共25页
Android源代码结构分析.docx_第2页
第2页 / 共25页
Android源代码结构分析.docx_第3页
第3页 / 共25页
Android源代码结构分析.docx_第4页
第4页 / 共25页
Android源代码结构分析.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

Android源代码结构分析.docx

《Android源代码结构分析.docx》由会员分享,可在线阅读,更多相关《Android源代码结构分析.docx(25页珍藏版)》请在冰豆网上搜索。

Android源代码结构分析.docx

Android源代码结构分析

一、源代码结构

第一层次目录

Google提供的Android包含了原始Android的目标机代码,主机编译工具、仿真环境,代码包经过解压缩后,第一级别的目录和文件如下所示:

  .

  |--Makefile(全局的Makefile)

  |--bionic(Bionic含义为仿生,这里面是一些基础的库的源代码)

  |--bootloader(引导加载器),我们的是bootable,

  |--build(build目录中的内容不是目标所用的代码,而是编译和配置所需要的脚本和工具)

  |--dalvik(JAVA虚拟机)

  |--development(程序开发所需要的模板和工具)

  |--external(目标机器使用的一些库)

  |--frameworks(应用程序的框架层)

  |--hardware(与硬件相关的库)

  |--kernel(Linux2.6的源代码)

  |--packages(Android的各种应用程序)

  |--prebuilt(Android在各种平台下编译的预置脚本)

  |--recovery(与目标的恢复功能相关)

  `--system(Android的底层的一些库)

bionic目录

bionicC库

bionic目录展开一个级别的目录如下所示:

  bionic/

  |--Android.mk

  |--libc

  |--libdl

  |--libm

  |--libstdc++

  |--libthread_db

  `--linker

  

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两种架构)

bootloader目录

启动引导相关代码

bootloader目录展开的两个级别目录:

  bootloader/

  `--legacy

  |--Android.mk

  |--README

  |--arch_armv6

  |--arch_msm7k

  |--fastboot_protocol.txt

  |--include

  |--libboot

  |--libc

  |--nandwrite

  `--usbloader

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目录

存放系统编译规则及generic等基础开发包配置

build目录展开的一个级别的目录如下所示:

  build/

  |--buildspec.mk.default

  |--cleanspec.mk

  |--core(各种以mk为结尾的文件,它门是编译所需要的Makefile)

  |--envsetup.sh

  |--libs

  |--target(包含board和product两个目录,为目标所需要文件)

  `--tools(编译过程中主机所需要的工具,一些需要经过编译生成)

  其中,core中的Makefile是整个Android编译所需要的真正的Makefile,它被顶层目录的Makefile引用。

  envsetup.sh是一个在使用仿真器运行的时候,用于设置环境的脚本。

  

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目录

用于提供AndroidJAVA应用程序运行的基础————JAVA虚拟机。

  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目录

展开的一个级别的目录如下所示:

  development

  |--apps(Android应用程序的模板)

  |--build(编译脚本模板)

  |--cmds

  |--data

  |--docs

  |--emulator(仿真相关)

  |--host(包含windows平台的一些工具)

  |--ide

  |--pdk

  |--samples(一些示例程序)

  |--simulator(大多是目标机器的一些工具)

  `--tools

  在emulator目录中qemud是使用QEMU仿真时目标机器运行的后台程序,skins是仿真时手机

的界面。

samples中包含了很多Android简单工程,这些工程为开发者学习开发Android程序提供了很大便利,可以作为模板使用。

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目录

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

  |--libpng

  |--libxml2

  |--netcat

  |--netperf

  |--neven

  |--opencore

  |--openssl

  |--oprofile

  |--ping

  |--ppp

  |--protobuf

  |--qemu

  |--safe-iop

  |--skia

  |--sonivox

  |--sqlite

  |--srec

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1