Android 4.4源碼編譯過程

來源:互聯網
上載者:User

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.