1. andriod 代碼層次
|-- Makefile : 系統的 Makefile
|-- bionic : C 庫函數的替代品
|-- bootable : 和引導相關的代碼
|-- build : 是編譯和配置所需要的指令碼和工具
|-- dalvik : java 虛擬機器
|-- development : 程式開發所需要的模板和工具
|-- external : 用的外部的開源的擴充庫,編譯產生在目錄 /lib
|-- frameworks : android SDK 的架構
|-- hardware : 與硬體相關的代碼
|-- kernel : linux kernel 原始碼
|-- out : 編譯產生的目錄
|-- packages : Android的各種應用程式
|-- prebuilt : 編譯的預置指令碼
`-- system : 底層的一些庫
2. bionic目錄展開一個層級的目錄如下所示:
bionic/
|-- Android.mk
|-- libc : c 庫函數實現, ,只是支援 arm 和 x86 平台,其他平台編譯會報錯
|-- libdl : 動態連結程式庫支援的函數實現,只是支援 arm 和 x86 平台,其他平台編譯會報錯
|-- libm : c 函數中數字計算函數,這部分代碼在多個平台下實現了:alpha, amd64, arm, bsdsrc,
i386, i387,i64, powerpc, sparc64
|-- libstdc++ : c++ 的庫函數
|-- libthread_db : thread 的一個實現
`-- linker : 和編譯起 linker 對接的代碼,現在只是支援 x86 和 arm 平台
- no support for locales
- no support for wide chars (i.e. multi-byte characters)
- its own smallish implementation of pthreads based on Linux futexes
- support for x86, ARM and ARM thumb CPU instruction sets and kernel
interfaces
3. bootable 目錄展開目錄如下所示 :
bootable/
|-- bootloader : 啟動相關的代碼,裡面主要的代碼是 usbloader, nandwrite, libc, libboot,
arch_armv6, arch_msm7
|-- diskinstaller : 把編譯之後的image 安裝到 disc 上的工具
`-- recovery : 恢複機制
4. build目錄展開目錄如下所示 :
build/
|-- buildspec.mk.default
|-- cleanspec.mk : make clean 調用到的指令碼
|-- core : 核心組建編譯的Makefile 以及相關的腳步
|-- envsetup.sh : 設定編譯的環境
|-- history : 存放 git log 的一個路徑。
|-- libs : 沒什麼實質內容,不是很清楚
|-- target : 目標輸出的內容的編譯指令碼
`-- tools : 一些工具的編譯Makefile 以及相關指令碼
5. development目錄展開如下所示:
development
|-- apps :Android應用程式的模板,代碼
|-- build :編譯指令碼模板
|-- cmds
|-- data
|-- docs : SDK 的 release note
|-- emulator :模擬相關
|-- host :包含windows平台的一些工具
|-- ide : Eclipse, intellij, xcode 三種IDE 環境下的外掛程式
|-- pdk :platform development kit
|-- samples :一些樣本程式
|-- simulator :大多是目標機器的一些工具
|__ testrunner :測試載入器的代碼
`-- tools :開發過程可能需要的一些工具的代碼,例如調試器, 跟蹤trace.
6.frameworks目錄展開如下所示: (是Android應用程式的架構)
frameworks/
|-- base :
|-- opt
`-- policies
7. system 目錄展開如下:
system/
|-- bluetooth : 藍芽支援代碼
|-- core : adb, cpio, debuggerd, fastboot, init, logcat ... 代碼
|-- extras : showmap etc....
`-- wlan : 無線支援