|
簡(jiǎn)介
在使用Andriod SDK進(jìn)行應(yīng)用程序開(kāi)發(fā)的時(shí)候,我們需要對(duì)源代碼進(jìn)行調(diào)試,有可能需要進(jìn)入到某個(gè)Android API函數(shù)內(nèi)部進(jìn)行跟蹤調(diào)試。但是,如果目標(biāo)版本的SDK沒(méi)有關(guān)聯(lián)對(duì)應(yīng)版本的源代碼的話(huà),就會(huì)提示你找不到源代碼。
圖:找不到Android源碼的提示
我們都知道Android系統(tǒng)是一個(gè)開(kāi)源工程,在網(wǎng)上可以下載到源代碼。一般在網(wǎng)上搜索一下,就會(huì)找到各種下載源代碼的方法,比如使用Git和Repo,Android源代碼下載的網(wǎng)址是http://Android.git.kernel.org/。關(guān)于利用Git下載Android源代碼的方法,我就不再贅述了,因?yàn)榫W(wǎng)上的方法很多,這里給出一個(gè)參考鏈接Windows平臺(tái)下Android源碼的下載。
如果你跟我一樣是初學(xué)者,相信看了上面的文章,你就知道如何使用Git下載Android源碼了。但是,看著http://Android.git.kernel.org/ 站點(diǎn)下的各種目錄和文件,相信你也會(huì)跟我一樣傻眼,不知道那個(gè)目錄下的文件對(duì)應(yīng)是什么代碼,想找到自己所需要的東西都比較難了。所以這里給大家介紹一下Android源代碼的結(jié)構(gòu),如果發(fā)現(xiàn)文章有錯(cuò)誤之處,還請(qǐng)各位童鞋輕點(diǎn)砸磚!
圖:http://Android.git.kernel.org/ 下紛繁復(fù)雜的文件
認(rèn)識(shí)Android源代碼結(jié)構(gòu)之前,先來(lái)再熟悉一下Android的系統(tǒng)架構(gòu)吧!Android系統(tǒng)架構(gòu)被分為四層,自下而上分別是:Linux操作系統(tǒng)及驅(qū)動(dòng)層、本地框架和Java運(yùn)行環(huán)境、Java框架、Java應(yīng)用層。每一層的具體介紹在此就略過(guò)了。
圖:Android系統(tǒng)架構(gòu)
認(rèn)識(shí)Android源代碼結(jié)構(gòu)
Android代碼的工程分為3個(gè)部分,在打開(kāi)http://Android.git.kernel.org/ 后看到的,就是Android源代碼的根目錄。(建議:打開(kāi)這個(gè)網(wǎng)站后,對(duì)照學(xué)習(xí)以下內(nèi)容)
- 核心工程(Core Project):建立Android 系統(tǒng)的基礎(chǔ),在根目錄的各個(gè)文件夾中。
- 擴(kuò)展工程(External Project):使用其他開(kāi)源項(xiàng)目擴(kuò)展的功能,在external 文件夾中。
- 包(Package):提供Android 的應(yīng)用程序和服務(wù),在package 文件夾中。
1、Android 的核心工程
Android 的核心工程包含了對(duì)Android系統(tǒng)基本運(yùn)行的支持,以及Android系統(tǒng)的編譯系統(tǒng),工程的內(nèi)容如下表:
工程名稱(chēng) | 工程描述 |
bionic | [Build 系統(tǒng)] C運(yùn)行時(shí)支持:libc、libm、libdl、動(dòng)態(tài)linker |
bootloader/legacy | Bootloader 參考代碼 (內(nèi)核加載器,在內(nèi)核運(yùn)行之前運(yùn)行) |
build | [Build 系統(tǒng)] Build系統(tǒng) |
dalvik | Dalvik虛擬機(jī) |
delelopment | 高層的開(kāi)發(fā)和調(diào)試工具 |
framework/base | Android 核心的框架庫(kù) |
framework/policies/base | 框架配置策略 |
hardware/libhardware | 硬件抽象層庫(kù) |
hardware/ril | 無(wú)線(xiàn)接口層(Radio Interface Layer) |
kernel | Linux 內(nèi)核 |
prebuilt | [預(yù)編譯內(nèi)核] 對(duì)Linux 和 Mac OS 編譯的二進(jìn)制支持 |
system/core | 最小化可啟動(dòng)的環(huán)境 |
system/extras | 底層調(diào)試和檢查工具 |
it知識(shí)庫(kù):Android 源代碼結(jié)構(gòu),轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。