




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
原创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- 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 - ti-原创Android编译完成后的代码结构(hanchao3c Android开发者论坛原创,转载请注明)Android编译完成后,将在根目录中生成一个out文件夹,所有生成的内容均放置在这个文件夹中。out文件夹如下所示:out/|- CaseCheck.txt|- casecheck.txt|- host| |- common| - linux-x86- target |- common - product 主要的两个目录为host和target,前者表示在主机(x86)生成的工具,后者表示目标机(模认为ARMv5)运行的内容。host目录的结构如下所示:out/host/|- common| - obj (JAVA库)- linux-x86 |- bin (二进制程序) |- framework (JAVA库,.jar文件) |- lib (共享库*.so) - obj (中间生成的目标文件)host目录是一些在主机上用的工具,有一些是二进制程序,有一些是JAVA的程序。target目录的结构如下所示:out/target/|- common| |- R (资源文件)| |- docs| - obj (目标文件)- product - generic其中common目录表示通用的内容,product中则是针对产品的内容。在common目录的obj中,包含两个重要的目录:APPS 中包含了JAVA应用程序生成的目标,每个应用程序对应其中一个子目录,将结合每个应用程序的原始文件生成Android应用程序的APK包。JAVA_LIBRARIES 中包含了JAVA的库,每个库对应其中一个子目录。在默认的情况下,Android编译将生成generic目录,如果选定产品还可以生成其他的目录。generic包含了以下内容:out/target/product/generic/|- android-info.txt|- clean_steps.mk|- data|- obj|- ramdisk.img|- root|- symbols|- system|- system.img|- userdata-qemu.img- userdata.img在generic/obj/APPS目录中包含了各种JAVA应用,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 防疫期间合同协议书
- 商店用工合同协议书
- 租地出售合同协议书
- 房屋借用合同协议书
- 自愿赠与合同协议书
- 合同协议书填写模板
- 合同延期协议书范文
- 荔枝采摘合同协议书
- 合同延租协议书
- 海鲜采购合同协议书
- 万用表校准报告
- (部编版一年级下册)语文第七单元复习课件
- 新闻采访与写作(马工程笔记)
- DB32∕T 1703-2011 科技成果转化服务规范总则
- SQ-02-绿色食品种植产品调查表0308
- 视频结构化大数据平台解决方案
- SolidWorks、CAD三维建模练习习题图
- 丽声北极星分级绘本第二级上Dinner for a Dragon 教学设计
- 活跃气氛的开场小游戏「培训破冰前必备」
- 光伏发电项目安全专项投资估算方案
- 上海证券交易所(课堂PPT)
评论
0/150
提交评论