Android
Android 系統源代碼結構簡介
Google提供的Android包含了原始Android的目標機代碼,主機編譯工具、仿真環境,代碼包經過解壓縮後,第一級別的目錄和文件如下所示:
.
|– Makefile(全局的Makefile)
|– bionic(Bionic含義為仿生,這裡面是一些基礎的庫的源代碼)
|– bootloader(引導加載器)
|– build (build目錄中的內容不是目標所用的代碼,而是編譯和配置所需要的腳本和工具)
|– dalvik(JAVA虛擬機)
|– development (程序開發所需要的模板和工具)
|– external(目標機器使用的一些庫)
|– frameworks(應用程序的框架層)
|– hardware(與硬件相關的庫)
|– kernel(Linux2.6的源代碼)
|– packages(Android的各種應用程序)
|– prebuilt(Android在各種平台下編譯的預置腳本)
|– recovery(與目標的恢復功能相關)
`– system(Android的底層的一些庫)
bionic目錄展開一個級別的目錄如下所示:
bionic/
|– Android.mk
|– libc
|– libdl
|– libm
|– libstdc++
|– libthread_db
`– linker
bootloader目錄展開的兩個級別目錄:
bootloader/
`– legacy
|– Android.mk
|– README
|– arch_armv6
|– arch_msm7k
|– fastboot_protocol.txt
|– include
|– libboot
|– libc
|– nandwrite
`– usbloader
build目錄展開的一個級別的目錄如下所示:
build/
|– buildspec.mk.default
|– cleanspec.mk
|– core (各種以mk為結尾的文件,它門是編譯所需要的Makefile)
|– envsetup.sh
|– libs
|– target (包含board和product兩個目錄,為目標所需要文件)
`– tools(編譯過程中主機所需要的工具,一些需要經過編譯生成)
其中,core中的Makefile是整個Android編譯所需要的真正的Makefile,它被頂層目錄的Makefile引用。
envsetup.sh是一個在使用仿真器運行的時候,用於設置環境的腳本。
dalvik目錄用於提供Android JAVA應用程序運行的基礎————JAVA虛擬機。
development目錄展開的一個級別的目錄如下所示:
development
|– apps (Android應用程序的模板)
|– build(編譯腳本模板)
|– cmds
|– data
|– docs
|– emulator (仿真相關)
|– host (包含windows平台的一些工具)
|– [...]
Android Architecture
Android Aarchitecture
1.Linux Kernel
2.Android Runtime
3.LIBRARIES
4.APPLICATION FRAMEWORK
5.APPLICATIONS
近期迴響