您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > Android_2.2_源码结构分析(在CSDN下载的)
Google提供的Android包含了原始Android的目标机代码,主机编译工具、仿真环境,代码包经过解压缩后,第一级别的目录和文件如下所示:2.2.|–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目录用于提供AndroidJAVA应用程序运行的基础————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是SecureSocketLayer,一个网络协议层,用于为数据通讯提供安全支持。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`–tiAndroid2.1源码结构分析RockieChengAndroid2.1|--Makefile|--bionic(bionicC库)|--bootable(启动引导相关代码)|--build(存放系统编译规则及generic等基础开发包配置)|--cts(Android兼容性测试套件标准)|--dalvik(dalvikJAVA虚拟机)|--development(应用程序开发相关)|--external(android使用的一些开源的模组)|--frameworks(核心框架——java及C++语言)|--hardware(主要保护硬解适配层HAL代码)|--out(编译完成后的代码输出与此目录)|--packages(应用程序包)|--prebuilt(x86和arm架构下预编译的一些资源)|--sdk(sdk及模拟器)|--system(文件系统库、应用及组件——C语言)`--vendor(厂商定制代码)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两种架构)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目录.|--core(核心编译规则)|--history(历史记录)|--libs|`--host(主机端库,有android“cp”功能替换)|--target(目标
本文标题:Android_2.2_源码结构分析(在CSDN下载的)
链接地址:https://www.777doc.com/doc-3378265 .html