Android2.3.7源码结构分析
對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 (輸入法配置)
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工具使用的文件,并非是安卓項目所屬。
參考資料:
http://wenku.baidu.com/view/7eb0cff69e314332396893c7.html
http://wenku.baidu.com/view/9e9e9f8b680203d8ce2f247e.html?from=rec&pos=0&weight=212&lastweight=108&count=5
總結
以上是生活随笔為你收集整理的Android2.3.7源码结构分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【开源推荐】AllJoyn:打造全球物联
- 下一篇: Ubuntu12.04下arm交叉编译环