Android 2.1 source code structure analysis
Rockie Cheng
For Android 2.1
| -- Makefile
| -- Bionic (bionic C Library)
| -- Bootable Code )
| -- Build (stores basic development kit configurations such as system compilation rules and generic)
| -- CTS (Android compatibility test suite Standard)
| -- Dalvik (Dalvik Java Virtual Machine)
| -- Development (Application Program Development)
| -- External (some open-source modules used by Android)
| -- Frameworks (core framework -- Java and C ++ language)
| -- Hardware (mainly protects the Hal code of the hardware adapter layer)
| -- Out (the code output after compilation is in this directory)
| -- Packages (Application Package)
| -- Prebuilt (resources pre-compiled in x86 and arm architectures)
| -- SDK (SDK and simulator)
| -- System (File System Library, application, and component-C language)
'-- Vendor (vendor-defined 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 (functions implemented by C, architecture independent)
| -- Docs (document)
| -- Include (header file)
| -- INet (? Inet problems. The specific role is unknown)
| -- Kernel (some header files in Linux kernel)
| -- NetBSD (? Nesbsd system related, specific role unknown)
| -- Private (? Some private header files)
| -- Stdio (stdio implementation)
| -- Stdlib (implemented by stdlib)
| -- String (string function implementation)
| -- Tools (several tools)
| -- Tzcode (Time Zone related code)
| -- Unistd (unistd implementation)
| '-- Zoneinfo (Time Zone Information)
| -- Libdl (implemented by libdl. DL is a dynamic link and provides the function of accessing the Dynamic Link Library)
| -- Libm (implementation of libm mathematical library ,)
| -- Alpha (apaha Architecture)
| -- Amd64 (amd64 Architecture)
| -- Arm (ARM architecture)
| -- Bsdsrc (? BSD source code)
| -- I386 (i386 architecture)
| -- I387 (i387 architecture ?)
| -- IA64 (IA64 Architecture)
| -- Include (header file)
| -- Man (mathematical function, suffixed with. 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 (multi-threaded program debugger Library)
| '-- Include (header file)
'-- Linker (dynamic linker)
'-- Arch (supports arm and x86 architectures)
Bootable directory
.
| -- Bootloader (applicable to common bootloader code)
| '-- Legacy (it is estimated that it cannot be used directly. For details, refer)
| -- Arch_armv6 (V6 architecture, several simple assembly files)
| -- Arch_msm7k (several basic drivers of Qualcomm 7 k Processor Architecture)
| -- Include (General header file and Qualcomm 7 k architecture header file)
| -- Libboot (the startup library is easy to write)
| -- Libc (some common C functions)
| -- Nandwrite (nandwirte function implementation)
| '-- Usbloader (usbloader implementation)
| -- Diskinstaller (Android image package, x86 can produce ISO)
'-- Recovery (related to system recovery)
| -- Edify (the edify script language used by the upgrade script)
| -- Etc (init. RC recovery script)
| -- Minui (a simple UI)
| -- Minzip (a simple compression tool)
| -- Mtdutils (MTD tool)
| -- Res (Resource)
| '-- Images (some images)
| -- Tools)
| '-- OTA (OTA over the air updates upgrade tool)
'-- Updater)
Build directory
.
| -- Core (core compilation rules)
| -- History (History)
| -- Libs
| '-- Host (host database, replaced by the android "CP" function)
| -- Target (the compilation object of the target machine)
| -- Board (Development Platform)
| -- Emulator (simulator)
| -- Generic (General)
| -- Idea6410 (self-added)
| '-- SIM (simplest)
| '-- Product (compilation rules of the Development Platform)
| '-- Security (key-related)
'-- Tools (tools and scripts used by the compiling host)
| -- ACP (Android "ACP" command)
| -- Apicheck (API checking tool)
| -- Applypatch (patch tool)
| -- Apriori (pre-linked tool)
| -- Atree (tree tool)
| -- Bin2asm (bin conversion to ASM tool)
| -- Check_prereq (check the compilation timestamp tool)
| -- Dexpreopt (simulator related tools with unknown functions)
| -- Droiddoc (? Unknown role, Java language. Someone on the Internet said it was related to JDK 5)
| -- Fs_config (this program takes a list of files and directories)
| -- Fs_get_stats (obtain the file system status)
| -- Iself (determines whether the ELF format is used)
| -- Isprelinked (determine whether prelinked is used)
| -- KCM (key-related)
| -- LSD (list symbol dependencies)
| -- Releasetools (image generation tools and scripts)
| -- Rgb2565 (RGB conversion to 565)
| -- Signapk (APK signature tool)
| -- Soslim (strip tool)
'-- Zipalign (ZIP Archive alignment tool)
Dalvik directory Dalvik Virtual Machine
.
| -- Dalvikvm (main. c directory)
| -- Dexdump (Dex disassembly)
| -- Dexlist (list all methods in all concrete classes in a DEX file .)
| -- Dexopt (pre-verification and optimization)
| -- Docs (document)
| -- Dvz (a command related to zygote)
| -- Dx (dx tool, which converts multiple Java into Dex)
| -- Hit (? Written in Java)
| -- Libcore (core library)
| -- Libcore-disabled (? Disabled Library)
| -- Libdex (Dex Library)
| -- Libnativehelper (support functions for Android's class libraries)
| -- Tests (test code)
| -- Tools)
'-- VM (Virtual Machine implementation)
Development Directory (some routines and tools required by developers)
| -- Apps (some core applications)
| -- Debuthdebug (Bluetooth debugging program)
| -- Customlocale (custom region settings)
| -- Development (Development)
| -- Fallback (a language-related Program)
| -- Fontlab (font)
| -- Gesturebuilder (gesture action)
| -- Ninepatchlab (?)
| -- Objviewer (OBJ viewer)
| -- Sdksetup (SDK installer)
| -- Spareparts (Advanced Settings)
| -- Term (Remote logon)
| '-- Launchperf (?)
| -- Build (compile Script Template)
| -- Cmds (with a monkey tool)
| -- Data (configuration data)
| -- Docs (document)
| -- Host (host-side 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)
| -- Bluetooth chat)
| -- Browserplugin (browser plug-in)
| -- Businesscard (Commercial card)
| -- Compass (Compass)
| -- Contactmanager (Contact Manager)
| -- Cubelivewallpaper (a simple routine of live wallpaper)
| -- Fixedgridlayout (like layout)
| -- Globaltime (Global Time)
| -- Helloactivity (Hello)
| -- Home (home)
| -- Jetboy (jetboy game)
| -- Lunarlander (seemingly a game)
| -- Mailsync (Mail sync)
| -- Multiresolution (Multi-Resolution)
| -- Mysamplerss (RSS)
| -- Notepad (Notepad)
| -- Rssreader (RSS reader)
| -- Searchabledictionary (Directory Search)
| -- Simplejni (JNI routine)
| -- Skeletonapp (shell APP)
| -- Snake)
| -- Softkeyboard (soft keyboard)
| -- Wiktionary (? Wiki)
| '-- Wiktionarysimple (? Wikipedia)
| -- Scripts (SCRIPT)
| -- SDK (SDK configuration)
| -- Simulator (? Simulator)
| -- Testrunner (? For testing)
'-- Tools (some tools)
External directory
.
| -- AES (AES encryption)
| -- APACHE-HTTP (Web Server)
| -- Astl (Android STL) is a slimmed-down version of the regular C ++ STL .)
| -- BISON (automatically generates a syntax analyzer to convert irrelevant grammar into C and C ++)
| -- Blktrace (blktrace is a block layer Io tracing mechanic)
| -- Bluetooth (Bluetooth related, protocol stack)
| -- Bsdiff (diff tool)
| -- Bzip2 (compression tool)
| -- Clearsilver (HTML template System)
| -- Least (low-latency, low-overhead, high-availability IPC Mechanism)
| -- Dhcpcd (Dhcp Service)
| -- Dosfstools (DOS file system tool)
| -- Dropbear (server of SSH2)
| -- E2fsprogs (ext2 File System Tool)
| -- Elfcopy (tool for copying elf)
| -- Elfutils (ELF tool)
| -- Embunit (embedded unit project)
| -- Emma (Java code coverage statistics Tool)
| -- ESD (enlightened sound daemon, which combines multiple audio streams for playing on one device)
| -- Expat (expat is a stream-Oriented XML parser .)
| -- Fdlibm (freely distributable libm ))
| -- FreeType (font)
| -- Fsck_msdos (DOS file system check tool)
| -- Gdata (Google wireless data)
| -- 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 uniied bootloader .)
| -- Gtest (Google C ++ testing framework)
| -- Icu4c (ICU (international component for Unicode) version in C/C ++)
| -- IPSec-tools (this package provides a way to use the native IPSec functionality)
| -- Iptables (firewall)
| -- Jdiff (generate a report describing the difference between two public Java APIs .)
| -- Jhead (JPEG header information tool)
| -- JPEG (JPEG Library)
| -- JUnit (JUnit is a unit test framework in Java)
| -- Kernel-headers (some kernel header files)
| -- Libffi (libffi is a foreign function interface library .)
| -- Libpcap (network packet capture function)
| -- Libpng (PNG Library)
| -- Libxml2 (XML Parsing Library)
| -- Mtpd (a command)
| -- Netcat (simple Unix utility which reads and writes data‑ss network connections)
| -- Netperf (network performance measurement tool)
| -- Neven (view Code related to JNI)
| -- Opencore (Multimedia Framework)
| -- OpenSSL (SSL encryption)
| -- Openvpn (VPN open source Library)
| -- Oprofile (oprofile is a performance analysis mechanism supported by Linux kernel .)
| -- Ping (Ping Command)
| -- PPP (pppd dialing command, it seems that there is no chat)
| -- Proguard (Java class file shrinker, optimizer, obfuscator, and preverifier)
| -- Protobuf (a flexible, efficient, fig for serializing structured data)
| -- Qemu (ARM Simulator)
| -- Safe-IOP (functions for faster Ming safe integer operations)
| -- Skia (skia graphics engine)
| -- Sonivox (sole MIDI solution for Google Android mobile phone platform)
| -- Speex (use of the speex encoding/decoding API (libspeex ))
| -- SQLite (database)
| -- SREC (open-source continuous voice recognition provided by Nuance)
| -- Strace (trace tool)
| -- Svox (embedded text-to-speech)
| -- Tagsoup (tagsoup is an HTML Parser that is developed in Java and complies with Sax)
| -- Tcpdump (software for capturing 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 Network Card Management)
| -- Xmlwriter (XML editing tool)
| -- Yaffs2 (yaffs File System)
'-- Zlib (a general purpose data compression library)