Transferred from: http://blog.csdn.net/xiangjai/article/details/9012387
In the process of learning Android, learning to write the application is OK, at first without too much code, call the function directly, but the work needs to be modified to the framework and other things
So feel began to tangle, but also beginner, a lot of do not understand, so went to find out about the source code structure introduced, feel a lot of help, so reproduced over to share
Android 4.0
|--Makefile
|--Bionic (Bionic C library)
|--Bootable (boot boot related code)
|--Build (Storage System compilation rules and basic development package configuration such as generic)
|--CTS (Android compatibility test suite standard)
|--Dalvik (Dalvik java Virtual machine)
|--Development (application development related)
|--External (some open-source modules used by Android)
|--Frameworks (Core framework--java and C + + language)
|--Hardware (Some manufacturers open source hard Zhei with the HAL Code)
|--out (the output of the code after compilation is complete with this directory)
|--Packages (Application package)
|--prebuilt (Some resources precompiled under x86 and ARM architectures)
|--SDK (SDK and emulator)
|--system (underlying file system library, applications and Components--c language)
'--Vendor (manufacturer custom code)
Bionic directory
|--libc (C library)
| |--arch-arm (ARM architecture, including system call Assembly implementation)
| |--arch-x86 (x86 architecture, including system call Assembly implementation)
| |--bionic (functionality implemented by C, architecture Independent)
| |--Docs (documentation)
| |--include (header file)
| |--inet (? inet related, specific role unknown)
| |--kernel (some header files in the Linux kernel)
| |--NetBSD (? NESBSD system-related, specific role unknown)
| |--private (? Some private header files)
| |--stdio (stdio implementation)
| |--stdlib (STDLIB implementation)
| |--string (string function implementation)
|--tools (several tools)
| |--tzcode (time zone related code)
| |--unistd (UNISTD implementation)
| '--Zoneinfo (time zone information)
|--LIBDL (LIBDL implementation, DL is a dynamic link that provides access to the dynamic link library)
|--LIBM (Implementation of the LIBM math library)
| |--Alpha (APAHA architecture)
| |--AMD64 (AMD64 architecture)
| |--arm (ARM architecture)
| |--bsdsrc (? BSD source)
| |--i386 (I386 architecture)
| |--i387 (i387 architecture?) )
| |--IA64 (IA64 architecture)
| |--include (header file)
| |--man (mathematical function, suffix. 3, some library files for FreeBSD)
| |--PowerPC (PowerPC architecture)
| |--SPARC64 (SPARC64 architecture)
| '--src (source code)
|--libstdc++ (libstdc++ C + + implementation Library)
| |--include (header file)
| '--src (source code)
|--libthread_db (Debugger library for multithreaded programs)
| '--Include (header file)
'--Linker (dynamic linker)
'--arch (supports two architectures of arm and x86)
Bootable Directory
.
|--bootloader (common code for various bootloader)
| '--Legacy (estimate cannot be used directly, can refer to)
| |--arch_armv6 (V6 architecture, several simple assembly files)
| |--arch_msm7k (several basic drivers for the high-pass 7k processor architecture)
| |--include (universal header file and high-pass 7k architecture header file)
| |--libboot (startup library, all written very simple)
| |--libc (some common C functions)
| |--Nandwrite (nandwirte function Implementation)
| '--Usbloader (Usbloader implementation)
|--Diskinstaller (Android Image Packager, x86 can produce ISO)
'--recovery (System recovery related)
|--edify (edify scripting language used by upgrade scripts)
|--etc (init.rc recovery script)
|--Minui (a simple UI)
|--Minzip (a simple compression tool)
|--mtdutils (MTD tools)
|--Res (resources)
| '--images (some pictures)
|--Tools (Tool)
| '-OTA (OTA over the Air updates upgrade tool)
'--Updater (upgrade)
Build Directory
.
|--Core (kernel compilation rule)
|--history (historical records)
|--Libs
| '--Host (console side library, with Android "CP" function replaced)
|--Target (Object-compiled objects)
| |--Board (development platform)
| | | |--Emulator (simulator)
| | | |--generic (general)
| | | |--idea6410 (self-added)
| | '--SIM (simplest)
| '--product (development platform-corresponding compilation rules)
| '--security (key related)
'--tool (tools and scripts used by the host in the compilation)
|--ACP (Android "ACP" Command)
|--Apicheck (API Check tool)
|--applypatch (Patch tool)
|--Apriori (pre-link tool)
|--Atree (Tree tool)
|--Bin2asm (Bin converted to ASM tool)
|--check_prereq (check compile timestamp tool)
|--dexpreopt (Simulator related tools, specific function unknown)
|--Droiddoc (? Role unknown, Java language, online someone said and JDK5 related)
|--Fs_config (This program takes a list of files and directories)
|--fs_get_stats (Get file system status)
|--iself (Judging whether elf format)
|--isprelinked (Judging whether prelinked)
|--KCM (Key-related)
|--LSD (List symbol dependencies)
|--releasetools (Tools and scripts to generate images)
|--rgb2565 (RGB conversion to 565)
|--signapk (apk signature tool)
|--Soslim (Strip tools)
'--zipalign (Zip archive alignment tool)
Dalvik Directory Dalvik virtual machines
.
|--DALVIKVM (MAIN.C's directory)
|--Dexdump (Dex disassembly)
|--Dexlist (List all methods with all concrete classes in a DEX file.)
|--dexopt (pre-validation and optimization)
|--Docs (documentation)
|--Dvz (a command related to zygote)
|--DX (DX tool, convert multiple Java to DEX)
|--hit (? Written in the Java language)
|--Libcore (Core library)
|--libcore-disabled (? Disabled libraries)
|--Libdex (Dex's library)
|--Libnativehelper (support functions for Android ' s class libraries)
|--Tests (test code)
|--Tools (Tool)
'--VM (virtual machine implementation)
Development directory (some routines and tools required by the developer)
|--apps (some core applications)
| |--bluetoothdebug (Bluetooth debug program)
| |--customlocale (custom locale)
| |--development (DEVELOPMENT)
| |--Fallback (a language-related program)
| |--FontLab (font)
| |--gesturebuilder (gesture action)
| |--ninepatchlab (? )
| |--objviewer (obj Viewer)
| |--sdksetup (SDK Installer)
| |--spareparts (Advanced settings)
| |--term (telnet)
| '--launchperf (? )
|--build (Compile script template)
|--Cmds (with a monkey tool)
|--Data (configuration)
|--Docs (documentation)
|--Host (USB driver, etc.)
|--IDE (integrated development environment)
|--NDK (Local Development Kit--C Language Development Kit)
|--PDK (Plug development Kit)
|--Samples (routine)
| |--aliasactivity (? )
| |--Apidemos (API demo program)
| |--bluetoothchat (bluetooth chat)
| |--browserplugin (Browser plugin)
| |--businesscard (commercial card)
| |--Compass (COMPASS)
| |--contactmanager (contact Manager)
| |--Cubelivewallpaper (a simple routine for live wallpaper)
| |--fixedgridlayout (like layout)
| |--globaltime (global Time)
| |--helloactivity (Hello)
| |--Home (HOME)
| |--jetboy (jetboy game)
| |--Lunarlander (seemingly another game)
| |--mailsync (mail sync)
| |--multiresolution (Multi-resolution)
| |--mysamplerss (RSS)
| |--NotePad (NOTEPAD)
| |--rssreader (RSS reader)
| |--searchabledictionary (Directory search)
| |--simplejni (JNI routines)
| |--skeletonapp (empty shell app)
| |--Snake (Snake program)
| |--softkeyboard (soft keyboard)
| |--Wiktionary (? Wikipedia
| '--wiktionarysimple (? Wiki routines)
|--Scripts (script)
|--SDK (SDK Configuration)
|--Simulator (? Simulator)
|--Testrunner (? For testing)
'--tools (some tool)
External directory
.
|--AES (AES encryption)
|--apache-http (Web server)
|--Astl (Astl (Android STL) is a slimmed-down version of the regular C + + STL.)
|--Bison (automatically generate parser to convert unrelated grammars to C, C + +)
|--Blktrace (Blktrace is a block layer IO tracing mechanism)
|--Bluetooth (Bluetooth-related, protocol stack)
|--Bsdiff (diff tool)
|--bzip2 (compression tool)
|--clearsilver (HTML template system)
|--Dbus (IPC mechanism with low latency, low overhead, high availability)
|--DHCPCD (DHCP service)
|--dosfstools (DOS file System tool)
|--dropbear (SSH2 's server)
|--e2fsprogs (EXT2 file System tool)
|--elfcopy (tool for copying Elf)
|--elfutils (elf Tools)
|--embunit (Embedded Unit Project)
|--Emma (Java Code Coverage Statistics tool)
|--ESD (enlightened sound Daemon, which mixes multiple audio streams on one device)
|--Expat (Expat is a stream-oriented XML parser.)
|--FDLIBM (FDLIBM (freely distributable LIBM))
|--FreeType (font)
|--Fsck_msdos (DOS file system Check tool)
|--Gdata (Google's wireless data related)
|--GENEXT2FS (GENEXT2FS generates an ext2 filesystem as a normal (non-root) user)
|--giflib (GIF library)
|--googleclient (google user library)
|--Grub (This is GNU grub, the GRand Unified Bootloader.)
|--Gtest (Google C + + testing Framework)
|--icu4c (ICU (International Component for Unicode) version under C + +)
|--Ipsec-tools (This package provides a-to-use the native IPSec functionality)
|--iptables (firewall)
|--Jdiff (Generate a report describing the difference between both public Java APIs.)
|--Jhead (JPEG header information tool)
|--JPEG (JPEG library)
|--JUnit (JUnit is a unit test framework for the Java language)
|--kernel-headers (some header files for the kernel)
|--Libffi (Libffi is a foreign function interface library.)
|--Libpcap (network packet capture function)
|--libpng (PNG library)
|--LIBXML2 (XML parsing library)
|--mtpd (one command)
|--netcat (Simple Unix utility which reads and writes Dataacross network connections)
|--Netperf (Network performance measurement tool)
|--Neven (see Code and JNI related)
|--Opencore (Multimedia framework)
|--OpenSSL (SSL encryption related)
|--OpenVPN (VPN open Source Library)
|--Oprofile (Oprofile is a performance analysis mechanism supported by the Linux kernel. )
|--Ping (ping command)
|--PPP (PPPD dialing command, as if there was no chat)
|--Proguard (Java class file Shrinker, Optimizer, Obfuscator, and Preverifier)
|--Protobuf (a flexible, efficient, automated mechanism for serializing structured data)
|--QEMU (ARM simulator)
|--SAFE-IOP (functions for performing safe integer operations)
|--Skia (Skia graphics engine)
|--Sonivox (sole MIDI solution for Google Android Mobile Phone Platform)
|--Speex (Speex encoding/decoding API Usage (LIBSPEEX))
|--SQLite (database)
|--Srec (Open source continuous non-specific person speech recognition provided by Nuance Company)
|--strace (Trace tool)
|--Svox (Embedded Text-to-Speech)
|--Tagsoup (Tagsoup is a Java-developed SAX-compliant HTML parser)
|--tcpdump (software to catch TCP packets)
|--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 (Browser core)
|--wpa_supplicant (Wireless card management)
|--XmlWriter (XML editing Tool)
|--YAFFS2 (yaffs file system)
'--zlib (a general purpose data compression library)
Frameworks directory (core framework--java and C + + language)
.
|--base (Basic content)
| |--API (? is an XML file that defines the Java API? )
| |--AWT (AWT Library)
| |--build (empty)
| |--camera (Camera service library)
| |--cmds (IMPORTANT command: AM, APP_PROCE, etc.)
| |--core (Kernel library)
| |--data (fonts and sounds, etc.)
| |--Docs (documentation)
| |--graphics (graphics related)
| |--include (header file)
| |--keystore (related to data signing certificate)
| |--Libs (LIBRARY)
| |--location (Regional library)
| |--media (Press-related library)
| |--obex (Bluetooth transfer Library)
| |--OpenGL (2d-3d Acceleration Library)
| |--packages (Setup, TTS, VPN program)
| |--sax (XML parser)
| |--Services (various service programs)
| |--telephony (telephone communication Management)
| |--test-runner (test tool related)
| |--tests (various tests)
| |--tools (some name-less tool)
| |--VPN (VPN)
| '--WiFi (Wi-Fi)
|--opt (optional section)
| |--com.google.android (with a framework.jar)
| |--com.google.android.googlelogin (with a client.jar)
| '--emoji (standard message elements)
'--policies (Product policies is operating system directions aimed at specific uses)
'--base
|--Mid (Mid device)
'--Phone (mobile device, general use this)
Hardware catalog (Some manufacturers open source hard Zhei layer HAL code)
|--Broadcom (Bo Tong Company)
| '--WLAN (wireless card)
|--libhardware (Hardware library)
| |--include (header file)
| '--Modules (Default (and possibly Architecture dependents) HAL modules)
| |--gralloc (GRALLOC display related)
| '--Overlay (Skeleton for the "overlay" HAL module.)
|--libhardware_legacy (old hardware library)
| |--Flashlight (backlight)
| |--GPS (GPS)
| |--include (header file)
| |--mount (old Mount)
| |--power (Power)
| |--qemu (simulator)
| |--qemu_tracing (simulator tracking)
| |--tests (TEST)
| |--uevent (uevent)
| |--Vibrator (VIBRATION)
| '--WiFi (wireless)
|--msm7k (High-pass 7k processor Open source abstraction layer)
| |--boot (boot)
| |--libaudio (sound library)
| |--libaudio-qsd8k (qsd8k's sound-related library)
| |--libcamera (Camera library)
| |--libcopybit (copybit library)
| |--libgralloc (GRALLOC library)
| |--libgralloc-qsd8k (qsd8k's Gralloc library)
| |--liblights (backlight library)
| '--LIBRPC (RPC library)
|--Ril (Radio abstraction Layer)
| |--include (header file)
| |--libril (LIBRARY)
| |--reference-cdma-sms (CDMA SMS Reference)
| |--reference-ril (RIL Reference)
| '--rild (RIL background service program)
'--Ti (ti company open source HAL)
|--OMAP3 (OMAP3 processor)
| |--Dspbridge (DSP Bridge)
| |--LIBOPENCOREHW (opencore Hardware library)
| |--liboverlay (Overlay hardware library)
| |--libstagefrighthw (stagefright Hardware library)
| '--OMX (OMX components)
'--WLAN (wireless card)
Packages Directory
.
|--Apps (Application library)
| |--alarmclock (Alarm clock)
| |--Bluetooth (bluetooth)
| |--Browser (browser)
| |--Calculator (Calculator)
| |--Calendar
| |--camera (CAMERAS)
| |--certinstaller (digital signature installed in Android, called)
| |--Contacts (Dial-up (call), contact, call history)
| |--deskclock (Desktop clock)
| |--Email (email)
| |--Gallery (Photo album, similar to Camera, more lists)
| |--gallery3d (? 3D albums)
| |--globalsearch (for Google Search service, provide the underlying application)
| |--googlesearch (google search)
| |--htmlviewer (browser-attached interface, called by the browser application, while providing storage recording function)
| |--im (instant messaging, providing signal sending, receiving, and communication services for mobile phones)
| |--Launcher (login launcher, display picture frame, etc GUI)
| |--Launcher2 (Login startup, responsible for application invocation)
| |--Mms (? MMS Service)
| |--Music (musical player)
| |--Packageinstaller (response of installation and uninstallation program)
| |--phone (Phone Dialer)
| |--provision (preset application status, enable application)
| |--Settings (power, Bluetooth, device info, interface, WIFI, etc.)
| |--soundrecorder (recorder, space and time required to calculate storage)
| |--Stk (receive and send SMS)
| |--Sync (empty)-------
| |--Updater (empty)
| '--Voicedialer (voice recognition call)
|--inputmethods (Input method)
| |--latinime (Latin Input method)
| |--openwnn (OPENWNN Input method)
| '--pinyinime (Pinyin input method)
|--providers (provider that provides the data needed for the application and interface)
| |--applicationsprovider (Application provider, providing application startup items, updates, etc.)
| |--calendarprovider (Calendar provider)
| |--contactsprovider (Contact provider)
| |--downloadprovider (Download management provider)
| |--Drmprovider (called when creating and updating a database)
| |--googlecontactsprovider (Subclass of contact provider to synchronize contacts)
| |--Googlesubscribedfeedsprovider (SET information provider)
| |--improvider (empty)
| |--managementprovider (empty)
| |--mediaprovider (media provider, providing storage data)
| |--Telephonyprovider (MMS provider)
| |--userdictionaryprovider (user dictionary provider, providing user characters commonly used dictionary)
| '--Websearchprovider (empty)
|--Services
| |--easservice (empty)
| '--lockandwipe (empty)
'--Wallpapers (wallpaper)
|--Basic (Basic wallpaper, system built-in wallpaper)
|--Livepicker (choose Live wallpaper)
|--Magicsmoke (Wallpaper special effect)
'--musicvisualization (music visualization, graphics change with music)
There is a hidden. Git folder, the content is the same, there is no meaningful code, Config looks like a download program, so that there is no substance in these folders.
prebuilt directory (Some of the resources precompiled under x86 and ARM architectures)
.
|--Android-arm (arm-android related)
| |--gdbserver (GDB Debugger)
| '--Kernel (analog arm core)
|--android-x86 (x86-android related)
| '--Kernel (empty)
|--Common (generic compiled code, should be Java)
|--darwin-x86 (Drawin x86 platform)
| '--toolchain (tool chain)
| |--arm-eabi-4.2.1
| |--arm-eabi-4.3.1
| '--arm-eabi-4.4.0
|--darwin-x86_64 (Drawin x86 64bit platform)
|--linux-x86 (Linux x86 platform)
| '--toolchain (tool chain, we should mainly use this)
| |--arm-eabi-4.2.1
| |--arm-eabi-4.3.1
| |--arm-eabi-4.4.0
| '--i686-unknown-linux-gnu-4.2.1 (version x86 compiler)
|--linux-x86_64 (Linux x86 64bit platform)
|--windows (Windows platform)
'--windows-x86_64 (64bit Windows platform)
System directory (underlying file system library, applications and Components--c language)
.
|--bluetooth (Bluetooth related)
|--core (System core tool Box interface)
| |--adb (ADB debugging tool)
| |--cpio (cpio tool, creating IMG)
| |--debuggerd (Debug tool)
| |--fastboot (Quick Start related)
| |--include (System to oral documents)
| |--init (init program source code)
| |--LIBACC (lightweight C compiler)
| |--libctest (LIBC test related)
| |--libcutils (libc tools)
| |--liblog (log library)
| |--libmincrypt (Crypto Library)
| |--libnetutils (Network Tools Library)
| |--libpixelflinger (Graphics processing Library)
| |--libsysutils (System Tools Library)
| |--libzipfile (Zip library)
| |--logcat (view Log tool)
| |--logwrapper (log Package tool)
| |--mkbootimg (tool box script to make startup boot.img)
| |--netcfg (Network configuration netcfg Source)
| |--Nexus (code for Google's newest phone)
| |--rootdir (ROOTFS, including some scripts and configurations under etc)
| |--sh (Shell code)
| |--Toolbox (Toolbox, a toolset similar to busybox)
| '--vold (SD card manager)
|--Extras (extra tools)
| |--latencytop (a tool for software developers, identifying system latency happen)
| |--libpagemap (PAGEMAP library)
| |--librank (Java library Ranking system Libraries)
| |--procmem (PAGEMAP related)
| |--procrank (Java Library Ranking system related)
| |--showmap (SHOWMAP tools)
| |--Showslab (showslab tools)
| |--sound (voice related)
| |--su (SU Command source code)
| |--tests (some test tools)
| '--timeinfo (time zone related)
'--WLAN (wireless related)
--Ti (TI network card related tools and libraries)
Vendor catalogue (manufacturer custom content)
|--Aosp (Android Open source project)
| '--Products (some board-level rules)
|--HTC (HTC Company)
| |--Common-open (General part)
| | '--AKMD (the tool for extracting IMG)
| |--dream-open (G1 open section)
| |--prebuilt-open (pre-compiled open section)
| '--Sapphire-open (Sapphire This model is open content)
|--Pv-open (Nothing)
|--qcom (The inside is basically empty)
'--sample (samples provided by Google)
|--Apps (Apps)
| |--Client (user)
| '--Upgrade (upgrade)
|--Frameworks (frame)
| '--platformlibrary (Platform library)
|--Products (product)
|--Sdk_addon (SDK additions section)
'--Skins (skin)
'--wvgameddpi (WVGA applicable picture)
Android source directory structure detailed (reprint)