Android源碼下載完後的目錄如下:
整個代碼的大小為:25.559GB。
一、構建系統
如下用於構建Android源碼樹的指令應用於所有的代碼分支,包括master分支。<喎?http://www.bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PGJyPgo8L3A+CjxwPjEu0aHU8bfW1qc8L3A+CjxwPrm5vajPtc2ztcTSu9Cp0qrH88rH08m9q9Kq0aHU8bHg0uu1xNS0tPrC67XEsOaxvr72tqi1xKGjzai5/c341rdodHRwOi8vc291cmNlLmFuZHJvaWQuY29tL3NvdXJjZS9idWlsZC1udW1iZXJzLmh0bWzAtLLpv7S1scewQW5kcm9pZMv509C1xLfW1qfB0LHtoaO/ydLU0aHU8c/C1Ni6zbm5vajX7tDCtcTUtLT6wuujqLPGzqqhsG1hc3RlcqGxo6mjrNTa1eLW1sfpv/bPwqOstbGz9cq8u6+/4sqxo6y/ydaxvdPKocilwcvWuLaot9bWp7LOyv2hozwvcD4KPHA+PGJyPgo8L3A+CjxwPtK7tanRodTxusPBy7fW1qejrLC01dXI58/CtcTD/MHuwLS9qMGiubm9qM+1zbOho7v5sb61xLm5vajD/MHu0PLB0Mjnz8KjujwvcD4KPHA+PGJyPgo8L3A+CjxwPjIus/XKvLuvPC9wPgo8cD7KudPDZW52c2V0dXAuc2i9xbG+wLSz9cq8u6+7t76zo6zXotLiv8nS1NPDobAuobHX1rf7wLS0+szmc291cmNloaPI58/Co7o8L3A+CjxwPjwvcD4KPHByZSBjbGFzcz0="brush:java;">$source build/envsetup.sh
或
$ . build/envsetup.sh
且後一種簡短格式在檔案中使用的更加頻繁。
3.選擇目標
使用lunch命令來選擇哪一種目標來構建。確切的配置可以作為參數傳遞給命令,如下:
$lunch aosp_arm-eng
以上的例子指定了構建一個完成的模擬器,其所有的debugging使能,輸入該命令後,
若lunch後面沒有參數,那麼會通過一個目錄來讓提示讓你選擇。如下:
所有的構建目標是使用BUILD-BUILDTYPE形式,其中BUILD是代碼名表示特定的特徵結合,如下是部分列表:
而BUILDTYPE如下:
更好的關於構建和運行在實際硬體上的資訊,參考:http://source.android.com/source/building-devices.html
4. 構建代碼
使用make構建一切,GNU make可以通過使用-jN參數來處理並行任務。此處的N,根據所用的電腦的硬體的核心數來指定,一般N指定為CPU核心的1到2倍。例如在一個dual-5520機器上(2個CPU,每個CPU4個核,每個核2個線程),那麼最快的構建是使用make -j16或make -j32。
$make -j4
5.運行
可以在模擬器上運行構建的Android系統,可以flash到裝置上,請注意已經使用lunch命令構建的目標。最好不要把構建的目標運行另一個不同的目標上。
1)類比一個android裝置
通過構建過程,模擬器已經自動的加入到了你的路徑中了。因此,敲入如下命令來運行模擬器:
$emulator
2)Flash到裝置上
為了Flash到裝置上,需要使用fastboot,成功構建後,該命令包含在你的路徑中。在引導時,要麼通過適當的按鍵組合手動放置裝置到fastboot模式。或者從shell中輸入如下命令進入fastboot模式
$adb reboot bootloader
一旦裝置處於fastboot模式,運行:
$fastboot flashall -w
-w選項用於擦去裝置上的/data部分,對於第一次flash一個特定裝置這是有用的,否則不是必需的。
更多的關於在實際硬體上構建和啟動並執行資訊,見:http://source.android.com/source/building-devices.html
二、使用ccache
ccache是一個編譯器ccache用於C和C++。可以讓構建更加快速。在原始碼的根目錄處,做如下操作:
$export USE_CCACHE=1$export CCACHE_DIR=//.ccache$prebuilts/misc/linux-x86/ccache/ccache -M 50G
建議的cache大小為50-100G
可以使用如下操作來查看使用的ccache大小
$watch -n1 -d prebuilts/misc/linux-x86/ccache/ccache -s
若使用Ice Cream Sandwich(4.0.x)或更老的版本,需要用prebuilts來代替prebuilts/misc