http://android.git.kernel.org/
Git:分佈式的版本管理系統。
Windows上的Git程序 http://code.google.com/p/msysgit/downloads/list
克隆一個單獨的子項目:
git clone git://android.git.kernel.org/ + project path.
克隆整個項目,需要下載一個python腳本repo,然後運行:
curl http://android.git.kernel.org/repo > ./repo
chmod a+x repo
mkdir myandroid
cd myandroid
repo init -ugit://android.git.kernel.org/platform/manifest.git
repo sync
今後需要更新就直接 repo sync就可以了。
截止目前,有將186個子項目,大小爲9.6G
簡述比較重要的子項目:
build system編譯和配置所需要的腳本和工具。
platform/bootable/bootloader/legacy.git
bootloader 參考代碼
內核源代碼
Android的模擬器是基於QEMU開發的,QEMU是一個有名的開源虛擬機項目(詳見http://bellard.org/qemu/),它可以提供一個虛擬的ARM移動設備。Android模擬器被命名爲goldfish。
out目錄是build輸出目錄,
由out/target和out/host組成。
Android源代碼併成功編譯後,
在out/target/product/generic目錄下,可以獲得三個鏡像文件:
在out/host/linux-x86/bin目錄找到emulator工具。
Android並沒有採用glibc作爲C庫,而是採用了Google自己開發的Bionic Libc。它的官方Toolchain也是基於Bionic Libc而並非glibc的。這使得使用或移植其他Toolchain來用於Android要比較麻煩。其只使用於內核移植,因爲內核不需要C庫。
交叉編譯工具鏈。
Notes:
與glibc相比,Bionic Libc有如下一些特點:
Android中所用的其他一些二進制工具也比較特殊:
Dalvik 虛擬機源代碼。
platform/ndk.git NDK
platform/sdk.git SDK
手機上自帶的應用程序的源碼
Android 用一個custom build system去產生二進制、文檔和工具。其基於GNU Make.
編譯之前最好用make–v 和 gcc –v 查看其版本。 要求make 的版本大於3.80。
如果運行下面過程中,提示某個 tools沒裝,就需要安裝,比如bison jre jdk
如在ubuntu裏 #sudo aptitude install bison
JDK 最好手動安裝。去oracle下二進制包,不要用gcj或者openjdk.
第一件事恐怕就是先執行. build/envsetup.sh,完成一些命令的初始化,這樣就會多出一系列的命令。 這些命令-也就是envsetup.sh中的函數
% cd $TOP
% . build/envsetup.sh 特別注意格式,是一個點後緊接空格。點命令就是source 命令
# pick a configuration using choosecombo
% choosecombo #會讓你作一些選擇
% make -j4 PRODUCT-generic-user
如果需要編譯一個debug版本
% make -j4 PRODUCT-generic-eng
“m clean”來清除你剛編譯產生的目標文件。
也可以通過”m clobber”來刪除所有目標編譯的輸出文件,也就相當於將整個/out目錄刪除。