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