本文引用地址:http://www.oschina.net/question/234345_44376
此文章介紹的很好,很全,很易讀!
對Andorid系統進行分析或者系統功能定製的時候,我們經常需要在眾多檔案中花費大量時間定位所需關注的部分。為了減輕這部分枯燥而不可避免的工作,本文對2.3.7版本的源碼結構進行了簡單分析。希望對剛加入安卓大軍的朋友們有所協助。
為2.3.7_r1版本的根目錄結構:
Makefile (makefile檔案)
bionic (bionic C庫,C運行時支援:libc、libm、libdl、動態linker)
bootable (啟動引導相關代碼)
build (存放系統編譯規則及generic等基礎開發包配置)
cts (Android相容性測試套件標準)
dalvik (dalvik JAVA虛擬機器)
development (應用程式開發相關)
device (廠商裝置的編譯變數等)
external (android使用的一些開源的模組)
frameworks (核心架構——java及C++語言)
hardware (主要是硬體適配層HAL代碼)
libcore (核心庫,支援dalvik)
ndk (本地代碼的開發工具,用來包含應用程式的本地代碼)
out (編譯完成後的代碼輸出與此目錄)
packages (應用程式套件組合)
prebuilt (x86和arm架構下先行編譯的一些資源)
sdk (sdk及模擬器)
system (檔案系統庫、應用及組件——C語言)
主要工程及描述:
bionic 目錄
Libc (C庫)
Libdl (dl是動態連結,提供訪問動態連結程式庫的功能)
Libm (m是數學,提供數學計算相關功能)
libstdc++ (標準 C++實現庫)
libthread_db (線程調試庫,gdb相關)
linker (動態連結器)
bootable 目錄
Bootloader (適合各種bootloader的通用代碼,部分函數實現及一些彙編檔案)
Diskinstaller (android鏡像打包器,x86可生產iso)
Recovery (系統復原相關)
build目錄
core (核心編譯規則)
libs (主機端庫,有android “cp”功能替換)
target (目標機編譯對象:模擬器等)
tools (編譯中主機使用的工具及指令碼)
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 (猜測是堆棧內執行個體相關操作的實線)
libdex (dex的庫)
libnativehelper (安卓本地協助庫)
tests (測試代碼)
tools (工具)
vm (虛擬機器實現)
development 目錄
Apps (一些核心應用程式)
build (編譯指令碼模板)
cmds (有個monkey工具)
data (配置資料)
docs (文檔)
host (主機端USB驅動等)
ide (整合式開發環境)
ndk (本地開發套件——c語言開發套件)
pdk (Plug Development Kit)
samples (樣本)
scripts (指令碼)
sdk (sdk配置)
sdk_overlay (IME配置)
simulator (模擬器)
testrunner (測試用)
tools (一些工具)
tutorials (教程)
framework目錄
base (核心架構庫,多為java或c++)
ex (猜測是以前版本遺留的java類)
opt (可選部分:emoji工廠類)
hardware目錄
broadcom (博通公司開源抽象層)
libhardware (硬體抽象層庫)
libhardware_legacy(遺留的硬體抽象層庫)
msm7k (高通7k處理器開源抽象層)
qcom (qcom公司開源抽象層)
ril (無線介面層(Radio Interface Layer))
ti (ti公司開源抽象層)
kernel目錄
Linux核心,空
libcore目錄
dalvik (dalvik支援)
dom (檔案物件模型相關)
expectations (異常相關)
icu (jni的國際化組件的unicode支援)
include (一些標頭檔)
json (JavaScript對象符號相關)
junit (junit測試載入器相關)
luni (猜測是一些java基本庫的實現)
sqlite-jdbc (sqlite的java資料庫聯結實現)
support (一些測試)
xml (xml支援)
prebuilt目錄
各主機的先行編譯標頭檔
system目錄
bluetooth (藍芽相關)
core (系統核心工具)
extras
(擴充工具)
media (媒體相關)
netd (網路相關)
vold (SD卡相關)
wlan (無線相關)
PS:.git檔案夾內為repo或git工具使用的檔案,並非是安卓項目所屬。
本文完.