AndroidSDK⽬录具体结构及Android源码的具体结构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强烈推荐初学者运⾏学习,对于SQ
Lite数据库操作可以查看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平台上重要的调试⼯具。
8. usb_drive:顾名思义,保存着android平台google官⽅机型的驱动如nexus one、nexus s,同时也有⼀些⽼机型驱动的⽀持,⽐如说htc dream、htc magic和motorola的droid。
//新增或修改
10.system-images:模拟器映像⽂件,从android-14开始将模拟器映像⽂件整理在这⾥(原来放在platforms下)
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实现)
| |-- 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 (恢复脚本)
|-- 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 (预链接⼯具)
|-- 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 (⼀些⼯具)
androidsdk安装步骤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加密相关)
|-- openvpn (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 (VPN)
| `-- wifi (⽆线⽹络)
|-- opt (可选部分)
| |-- le.android (有个framework.jar)
| |-- lelogin (有个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显⽰相关)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论