Android provided by Google contains the original Android target machine code, host compilation tools, and simulation environment. After the code package is decompressed, the first-level directories and files are as follows:
.
| -- Makefile (Global makefile)
| -- Bionic)
| -- Bootloader)
| -- Build (the content in the build directory is not the code used by the target, but the scripts and tools required for compilation and configuration)
| -- Dalvik (Java Virtual Machine)
| -- Development (templates and tools required for Program Development)
| -- External (some libraries used by the target machine)
| -- Frameworks (framework layer of the Application)
| -- Hardware (hardware-related Library)
| -- Kernel (source code of linux2.6)
| -- Packages (various Android applications)
| -- Prebuilt (preset scripts compiled by android on various platforms)
| -- Recovery (related to the recovery function of the target)
'-- System (some underlying libraries of Android)
The bionic directory is displayed as follows:
Bionic/
| -- Android. mk
| -- Libc
| -- Libdl
| -- Libm
| -- Libstdc ++
| -- Libthread_db
'-- Linker
Two levels of bootloader directory expansion:
Bootloader/
'-- Legacy
| -- Android. mk
| -- Readme
| -- Arch_armv6
| -- Arch_msm7k
| -- Fastboot_protocol.txt
| -- Include
| -- Libboot
| -- Libc
| -- Nandwrite
'-- Usbloader
The build directory is displayed in the following directory:
Build/
| -- Buildspec. mk. Default
| -- Cleanspec. mk
| -- Core (various files ending with MK, which are makefiles required for compilation)
| -- Envsetup. Sh
| -- Libs
| -- Target (contains two directories: Board and product, which are the files required by the target)
'-- Tools (tools required by the host during compilation, which must be compiled and generated)
The makefile in core is the real makefile required for the entire android compilation. It is referenced by the makefile in the top-level directory.
Envsetup. Sh is a script used to set the environment when running with a simulator.
The Dalvik directory is used to provide the Java Virtual Machine (JVM), the Foundation for running Android Java applications.
The Development Directory is displayed in the following directory:
Development
| -- Apps (Android Application Template)
| -- Build (compile Script Template)
| -- Cmds
| -- Data
| -- Docs
| -- Emulator (simulation related)
| -- Host (including some tools on the Windows platform)
| -- Ide
| -- PDK
| -- Samples (some sample programs)
| -- Simulator (mostly some tools on the target machine)
'-- Tools
In the emulator directory, qemud is the background program running on the target machine during qemu simulation, and skins are the mobile phone interface during simulation.
Samples contains many simple Android projects, which provide great convenience for developers to learn and develop Android programs and can be used as templates.
The external directory is expanded as follows:
External/
| -- AES
| -- APACHE-HTTP
| -- Bluez
| -- Clearsilver
| -- Snapshot
| -- 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
In external, each directory represents a module in the android target system, which may contain one or more libraries. Where:
Opencore is PV (packetvideo), which is the core of the android multimedia framework.
WebKit is the core of the android web browser.
SQLite is the core of the android database system.
OpenSSL is a Secure Socket Layer, a network protocol layer, used to provide security support for data communication.
The frameworks directory is displayed in the following directory:
Frameworks/
| -- Base
| -- OPT
'-- Policies
Frameworks is the framework of Android applications.
Hardware is a hardware-related library.
Kernel is the source code of linux2.6
The packages directory is displayed in the following two levels:
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
'-- Telephonyprovider
Packages contains two directories, among which apps are various Android applications, and providers are some content providers (a data source in Android ).
The contents of the two directories in packages are mostly programs written in Java, and the hierarchical structure of each folder is similar.
The prebuilt directory is displayed in the following directory:
Prebuilt/
| -- Android. mk
| -- Android-arm
| -- Common
| -- Darwin-x86
| -- Linux-x86
'-- Windows
The two levels of system directory expansion are as follows:
System/
| -- Bluetooth
| -- Bluedroid
| '-- Brfpatch
| -- Core
| -- Android. mk
| -- Readme
| -- ADB
| -- Cpio
| -- Debugadh
| -- Fastboot
| -- Include (header files of each library interface)
| -- 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