AndroidSDK目录和源码目录详解

Android SDK目录的具体结构


1. add-ons:这里面保存着附加库,比如Google Maps,当然你如果安装了OphoneSDK,这里也会有一些类库在里面。
2. docs:这里面是Android SDK API参考文档,所有的API都可以在这里查到。
3. market_licensing:作为AndroidMarket版权保护组件,一般发布付费应用到电子市场可以用它来反盗版。
4. platforms:是每个平台的SDK真正的文件,里面会根据API Level划分的SDK版本, 这里就以Android 2.2来说,进入后有一个android-8的文件夹,android-8进入后是Android 2.2 SDK的主要文件,其中ant为ant编译脚本,data保存着一些系统资源,images是模拟器映像文件,skins则是Android模拟器的皮肤,templates是工程创建的默认模板,android.jar则是该版本的主要framework文件,tools目录里面包含了重要的编译工具,比如aapt、aidl、逆向调试工具dexdump和编译脚本dx。
5. platform-tools:保存着一些通用工具,比如adb、和aapt、aidl、dx等文件,这里和platforms目录中tools文件夹有些重复,主要是从android 2.3开始这些工具被划分为通用了。
6. samples:是Android SDK自带的默认示例工程,里面的apidemos强烈推荐初学者运行学习,对于SQLite数据库操作可以查看NotePad这个例子,对于游戏开发Snake、LunarLander都是不错的例子,对于Android主题开发Home则是android m5时代的主题设计原理。
7. tools:作为SDK根目录下的tools文件夹,这里包含了重要的工具,比如ddms用于启动Android调试工具,比如logcat、屏=幕截图和文件管理器,而draw9patch则是绘制android平台的可缩放png图片的工具,sqlite3可以在PC上操作SQLite数据库,而monkeyrunner则是一个不错的压力测试应用,模拟用户随机按键,mksdcard则是模拟器SD映像的创建工具,emulator是android模拟器主程序,不过从android1.5开始,需要输入合适的参数才能启动模拟器,traceview作为android平台上重要的调试工具。
【AndroidSDK目录和源码目录详解】 8. usb_drive:顾名思义,保存着android平台google官方机型的驱动如nexus one、nexus s,同时也有一些老机型驱动的支持,比如说htc dream、htc magic和motorola的droid。//新增或修改
9.extras 扩展插件
10.system-images模拟器映像文件,从android-14开始将模拟器映像文件整理在这里(原来放在platforms下)
11.temp临时目录
12.sources源码



Android源码目录结构详解
Android 2.1
|-- Makefile
|-- bionic(bionic C库)
|-- bootable(启动引导相关代码)
|-- build(存放系统编译规则及generic等基础开发包配置)
|-- cts(Android兼容性测试套件标准)
|-- dalvik(dalvik JAVA虚拟机)
|-- 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(OTA Over The Air Updates升级工具)
`-- updater(升级器)
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(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(zip archive alignment tool)
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语言写成)
|-- libcore(核心库)
|-- libcore-disabled(?禁用的库)
|-- libdex(dex的库)
|-- libnativehelper(Support functions for Android's class libraries)
|-- tests(测试代码)
|-- tools(工具)
`-- vm(虚拟机实现)
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(Plug Development Kit)
|-- 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 目录
.
|-- 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 block 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 Project)
|-- 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 (non-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(防火墙)
|-- 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解析库)
|-- mtpd(一个命令)
|-- netcat(simple Unix utility which reads and writes dataacross network connections)
|-- netperf(网络性能测量工具)
|-- neven(看代码和JNI相关)
|-- opencore(多媒体框架)
|-- openssl(SSL加密相关)
|-- open(VPN开源库)
|-- oprofile(OProfile是Linux内核支持的一种性能分析机制。)
|-- ping(ping命令)
|-- ppp(pppd拨号命令,好像还没有chat)
|-- proguard(Java class file shrinker, optimizer, obfuscator, and preverifier)
|-- protobuf(a flexible, efficient, automated mechanism for serializing structured data)
|-- qemu(arm模拟器)
|-- safe-iop(functions for performing safe integer operations )
|-- skia(skia图形引擎)
|-- sonivox(sole MIDI solution for Google Android Mobile Phone Platform)
|-- speex(Speex编/解码API的使用(libspeex))
|-- sqlite(数据库)
|-- srec(Nuance 公司提供的开源连续非特定人语音识别)
|-- strace(trace工具)
|-- svox(Embedded Text-to-Speech)
|-- tagsoup(TagSoup是一个Java开发符合SAX的HTML解析器)
|-- tcpdump(抓TCP包的软件)
|-- tesseract(Tesseract Open Source OCR Engine.)
|-- tinyxml(TinyXml is a simple, small, C++ XML parser)
|-- tremor(I stream and file decoder provides an embeddable,integer-only library)
|-- webkit(浏览器核心)
|-- wpa_supplicant(无线网卡管理)
|-- xmlwriter(XML 编辑工具)
|-- yaffs2(yaffs文件系统)
`-- zlib(a general purpose data compression library)
frameworks 目录(核心框架——java及C++语言)
.
|-- base(基本内容)
||-- api(?都是xml文件,定义了java的api?)
||-- awt(AWT库)
||-- build(空的)
||-- camera(摄像头服务程序库)
||-- cmds(重要命令:am、app_proce等)
||-- core(核心库)
||-- data(字体和声音等数据文件)
||-- docs(文档)
||-- graphics(图形相关)
||-- include(头文件)
||-- keystore(和数据签名证书相关)
||-- libs(库)
||-- location(地区库)
||-- media(媒体相关库)
||-- obex(蓝牙传输库)
||-- opengl(2D-3D加速库)
||-- packages(设置、TTS、VPN程序)
||-- sax(XML解析器)
||-- services(各种服务程序)
||-- telephony(电话通讯管理)
||-- test-runner(测试工具相关)
||-- tests(各种测试)
||-- tools(一些叫不上名的工具)
||--(VPN)
|`-- wifi(无线网络)
|-- opt(可选部分)
||-- com.google.android(有个framework.jar)
||-- com.google.android.googlelogin(有个client.jar)
|`-- emoji(standard message elements)
`-- policies(Product policies are operating system directions aimed at specific uses)
`-- base
|-- mid(MID设备)
`-- phone(手机类设备,一般用这个)
hardware 目录(部分厂家开源的硬解适配层HAL代码)
|-- broadcom(博通公司)
|`-- wlan(无线网卡)
|-- libhardware(硬件库)
||-- include(头文件)
|`-- modules(Default (and possibly architecture dependents) HAL modules)
||-- gralloc(gralloc显示相关)
|`-- overlay(Skeleton for the "overlay" HAL module.)
|-- libhardware_legacy(旧的硬件库)
||-- flashlight(背光)
||-- gps(GPS)
||-- include(头文件)
||-- mount(旧的挂载器)
||-- power(电源)
||-- qemu(模拟器)
||-- qemu_tracing(模拟器跟踪)
||-- tests(测试)
||-- uevent(uevent)
||-- vibrator(震动)
|`-- wifi(无线)
|-- msm7k(高通7k处理器开源抽象层)
||-- boot(启动)
||-- libaudio(声音库)
||-- libaudio-qsd8k(qsd8k的声音相关库)
||-- libcamera(摄像头库)
||-- libcopybit(copybit库)
||-- libgralloc(gralloc库)
||-- libgralloc-qsd8k(qsd8k的gralloc库)
||-- liblights(背光库)
|`-- librpc(RPC库)
|-- ril(无线电抽象层)
||-- include(头文件)
||-- libril(库)
||-- reference-cdma-sms(cdma短信参考)
||-- reference-ril(ril参考)
|`-- rild(ril后台服务程序)
`-- ti(ti公司开源HAL)
|-- omap3(omap3处理器)
||-- dspbridge(DSP桥)
||-- libopencorehw(opencore硬件库)
||-- liboverlay(overlay硬件库)
||-- libstagefrighthw(stagefright硬件库)
|`-- omx(omx组件)
`-- wlan(无线网卡)
packages 目录
.
|-- apps(应用程序库)
||-- AlarmClock(闹钟)
||-- Bluetooth(蓝牙)
||-- Browser(浏览器)
||-- Calculator(计算器)
||-- Calendar(日历)
||-- Camera(相机)
||-- CertInstaller(在Android中安装数字签名,被调用)
||-- Contacts(拨号(调用)、联系人、通话记录)
||-- DeskClock(桌面时钟)
||-- Email(Email)
||-- Gallery(相册,和Camera类似,多了列表)
||-- Gallery3D(?3D相册)
||-- GlobalSearch(为google搜索服务,提供底层应用)
||-- GoogleSearch(google搜索)
||-- HTMLViewer(浏览器附属界面,被浏览器应用调用,同时提供存储记录功能)
||-- IM(即时通讯,为手机提供信号发送、接收、通信的服务)
||-- Launcher(登陆启动项,显示图片框架等等图形界面)
||-- Launcher2(登陆启动项,负责应用的调用)
||-- Mms(?彩信业务)
||-- Music(音乐播放器)
||-- PackageInstaller(安装、卸载程序的响应)
||-- Phone(电话拨号程序)
||-- Provision(预设应用的状态,使能应用)
||-- Settings(开机设定,包括电量、蓝牙、设备信息、界面、wifi等)
||-- SoundRecorder(录音机,可计算存储所需空间和时间)
||-- Stk(接收和发送短信)
||-- Sync(空)-------○1
||-- Updater(空)
|`-- VoiceDialer(语音识别通话)
|-- inputmethods(输入法)
||-- LatinIME(拉丁文输入法)
||-- OpenWnn(OpenWnn输入法)
|`-- PinyinIME(拼音输入法)
|-- providers(提供器,提供应用程序、界面所需的数据)
||-- ApplicationsProvider(应用程序提供器,提供应用程序启动项、更新等)
||-- CalendarProvider(日历提供器)
||-- ContactsProvider(联系人提供器)
||-- DownloadProvider(下载管理提供器)
||-- DrmProvider(创建和更新数据库时调用)
||-- GoogleContactsProvider(联系人提供器的子类,用以同步联系人)
||-- GoogleSubscribedFeedsProvider(设置信息提供器)
||-- ImProvider(空)
||-- ManagementProvider(空)
||-- MediaProvider(媒体提供器,提供存储数据)
||-- TelephonyProvider(彩信提供器)
||-- UserDictionaryProvider(用户字典提供器,提供用户常用字字典)
|`-- WebSearchProvider(空)
|-- services
||-- EasService(空)
|`-- LockAndWipe(空)
`-- wallpapers(墙纸)
|-- Basic(基本墙纸,系统内置墙纸)
|-- LivePicker(选择动态壁纸)
|-- MagicSmoke(壁纸特殊效果)
`-- MusicVisualization(音乐可视化,图形随音乐而变化)
○1里面有一个隐藏的.git文件夹,内容都是一样的,没有有意义的代码,config看似乎是一个下载程序,因此认为这些文件夹下没有实质东西。
prebuilt 目录(x86和arm架构下预编译的一些资源)
.
|-- android-arm(arm-android相关)
||-- gdbserver(gdb调试器)
|`-- kernel(模拟的arm内核)
|-- android-x86(x86-android相关)
|`-- kernel(空的)
|-- common(通用编译好的代码,应该是java的)
|-- darwin-x86(drawin x86平台)
|`-- toolchain(工具链)
||-- arm-eabi-4.2.1
||-- arm-eabi-4.3.1
|`-- arm-eabi-4.4.0
|-- darwin-x86_64(drawin x86 64bit平台)
|-- linux-x86(linux x86平台)
|`-- toolchain(工具链,我们应该主要用这个)
||-- arm-eabi-4.2.1
||-- arm-eabi-4.3.1
||-- arm-eabi-4.4.0
|`-- i686-unknown-linux-gnu-4.2.1(x86版编译器)
|-- linux-x86_64(linux x86 64bit平台)
|-- windows(windows平台)
`-- windows-x86_64(64bit windows平台)
system 目录(底层文件系统库、应用及组件——C语言)
.
|-- Bluetooth(蓝牙相关)
|-- core(系统核心工具盒接口)
||-- adb(adb调试工具)
||-- cpio(cpio工具,创建img)
||-- debuggerd(调试工具)
||-- fastboot(快速启动相关)
||-- include(系统接口头文件)
||-- init(init程序源代码)
||-- libacc(轻量级C编译器)
||-- libctest(libc测试相关)
||-- libcutils(libc工具)
||-- liblog(log库)
||-- libmincrypt(加密库)
||-- libnetutils(网络工具库)
||-- libpixelflinger(图形处理库)
||-- libsysutils(系统工具库)
||-- libzipfile(zip库)
||-- logcat(查看log工具)
||-- logwrapper(log封装工具)
||-- mkbootimg(制作启动boot.img的工具盒脚本)
||-- netcfg(网络配置netcfg源码)
||-- nexus(google最新手机的代码)
||-- rootdir(rootfs,包含一些etc下的脚本和配置)
||-- sh(shell代码)
||-- toolbox(toolbox,类似busybox的工具集)
|`-- vold(SD卡管理器)
|-- extras(额外工具)
||-- latencytop(a tool for software developers ,identifying system latency happen)
||-- libpagemap(pagemap库)
||-- librank(Java Library Ranking System库)
||-- procmem(pagemap相关)
||-- procrank(Java Library Ranking System相关)
||-- showmap(showmap工具)
||-- showslab(showslab工具)
||-- sound(声音相关)
||-- su(su命令源码)
||-- tests(一些测试工具)
|`-- timeinfo(时区相关)
`-- wlan(无线相关)
`-- ti(ti网卡相关工具及库)
vendor 目录(厂家定制内容)
|-- aosp(android open source project)
|`-- products(一些板级规则)
|-- htc(HTC公司)
||-- common-open(通用部分)
||`-- akmd(解压img用的工具)
||-- dream-open(G1开放部分)
||-- prebuilt-open(预编译开放部分)
|`-- sapphire-open(sapphire这款型号开放内容)
|-- pv-open(没东西)
|-- qcom(里面基本是空的)
`-- sample(google提供的样例)
|-- apps(应用)
||-- client(用户)
|`-- upgrade(升级)
|-- frameworks(框架)
|`-- PlatformLibrary(平台库)
|-- products(产品)
|-- sdk_addon(sdk添加部分)
`-- skins(皮肤)
`-- WVGAMedDpi(WVGA适用的图片)


原文地址
http://www.apkbus.com/forum.php?mod=viewthread&tid=97099

    推荐阅读