MTK6577 Android源代码目录
MTK6577 Android源代碼目錄
點(diǎn)擊打開鏈接
?1.?????MTKAndroid4.0 源代碼目錄
(1)??makeMtk
整個(gè)工程編譯或是構(gòu)建(make/build)的入口。
?
(2)??abi
應(yīng)用程序二進(jìn)制接口(application binary interface)。
?
(3)??bionic:
?
Android之所以采用bionic而不是glibc,有幾個(gè)原因:
?
版權(quán)問題,因?yàn)間libc是LGPL
庫的體積和速度,bionic要比glibc小很多。
提供了一些Android特定的函數(shù),getprop LOGI等
Bionic Libc有如下特點(diǎn):
?
采用BSD License, 而不是glibc的GPL License;
大約有200KB, 比glibc小很多,且比glibc要快;
實(shí)現(xiàn)了一個(gè)更小,更快的pthread;
提供了Android所需要的重要函數(shù),如getprop LOGI等
不完全支持POXIC標(biāo)注,譬如C++ exceptions, wide chars等;
不支持libthread_db和libm的實(shí)現(xiàn)
?
(4)??bootable
啟動(dòng)引導(dǎo)程序的源代碼,包括bootloader、diskinstaller和recovery。
其中bootloader適合各種bootloader的通用代碼;diskinstaller是android鏡像打包器,x86可生產(chǎn)iso;recovery系統(tǒng)恢復(fù)相關(guān)
?
(5)??build
android的編譯系統(tǒng),包含這種makefiles、scripts和其他工具。
?
(6)??cts
android兼容性測試套件,android設(shè)備如果需要google認(rèn)證,就需要通過google的兼容性檢測,目的是確保該設(shè)備系統(tǒng)具備標(biāo)準(zhǔn)的SDK API接口。
?
(7)??dalvik
dalvik虛擬機(jī)源代碼,是用于android平臺(tái)的java虛擬機(jī),但不是java標(biāo)準(zhǔn)的虛擬機(jī)。
?
(8)??development
開發(fā)所需要的一些例程、文檔和工具等。
?
(9)??device
不同廠商設(shè)備相關(guān)的代碼和編譯腳本等,包括TI、三星和摩托等廠商。
?
(10) docs
介紹開源相關(guān)的source.android.com文檔。
?
(11) external
android用到的擴(kuò)展庫,包括bluetooth、skia、sqlite、freetype、webkit等功能庫和一些工具庫,系統(tǒng)運(yùn)行庫層(LIBRARIES)大部分代碼位于這里。
圖1
?
(12) frameworks
android應(yīng)用框架層代碼位于這里,這層為應(yīng)用層提供API,而且是一種重要的機(jī)制。這種機(jī)制為應(yīng)用層提供了可以復(fù)用的組件,提供了應(yīng)用開發(fā)的規(guī)范,屏蔽了應(yīng)用層和底層交互的復(fù)雜性。Framework層主要的組件有activity manager、content providers等。
?
(13) hardware
硬件適配層HAL代碼,見圖1,Android的HAL是為了保護(hù)一些硬件提供商的知識(shí)產(chǎn)權(quán)而提出的,是為了避開linux的GPL束縛。思路是把控制硬件的動(dòng)作都放到了Android HAL中,而linux driver僅僅完成一些簡單的數(shù)據(jù)交互作用,甚至把硬件寄存器空間直接映射到user space。而Android是基于Aparch的license,因此硬件廠商可以只提供二進(jìn)制代碼,所以說Android只是一個(gè)開放的平臺(tái),并不是一個(gè)開源的平臺(tái)。也許也正是因?yàn)锳ndroid不遵從GPL,所以Greg Kroah-Hartman才在2.6.33內(nèi)核將Andorid驅(qū)動(dòng)從linux中刪除。
?
(14) kernel
linux內(nèi)核,見圖1的LINUX KERNEL部分。
?
(15) libcore
核心java庫,android2.3之前位于/dalvik/libcore目錄下,見圖1的ANDROID RUNTIME下的core libraries部分。
?
(16) mediatek
mtk開發(fā)平臺(tái)源代碼、工具、編譯配置文件和定制代碼。
?
(17) ndk
android的NDK(Native Development Kit,原生開發(fā)套件),NDK提供了一系列的工具,幫助開發(fā)者快速開發(fā)C(或C++)的動(dòng)態(tài)庫,并能自動(dòng)將so和java應(yīng)用一起打包成apk。
?
(18) out
編譯輸出目錄,編譯后的所有輸出(包括對象、二進(jìn)制和臨時(shí)文件)都在這個(gè)目錄,分為主機(jī)部分和目標(biāo)機(jī)部分。
?
(19) packages
應(yīng)用程序包,包含各種內(nèi)置的核心應(yīng)用程序,比如bluetooth、calendar、camera等,見圖1的APPLICATIONS部分。
?
(20) prebuilt
編譯所需要的程序文件,主要包含不同平臺(tái)下的ARM編譯器
?
(21) sdk
SDK(softwaredevelopment kit)軟件開發(fā)工具包,這里是編譯SDK工具所需要的文件,包含hierarchyviewer、eclipse插件、emulator等。
?
(22) system
嵌入式linux所需要的一些系統(tǒng)工具程序,比如adb、fastboot、debugger、logcat等。
?
(23) vendor
供應(yīng)商(這里是CPU廠商MTK)應(yīng)用、二進(jìn)制發(fā)布庫文件。
總結(jié)
以上是生活随笔為你收集整理的MTK6577 Android源代码目录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 柳传志:选人要看“后脑勺”
- 下一篇: 计算机网络的结构组成