編譯Android源碼和內核源碼的歸納總結

經過一個多星期的努力,終於在零基礎的情況下在ubuntu-12.04-desktop-amd64(64位Ubuntu系統)成功編譯了android-4.0.3的源碼和Linux version 2.6.29的linux內核源碼。期間遇到很多困難,好幾次想放棄了,不過只要堅持並找到正確的方法,最後就一定能夠成功。

注意事項:
在編譯過程中,最需要注意的就是版本問題。uabntu的版本和源碼的版本最好能夠互相對應。這樣在開編譯過程中才能避免一些怪異的錯誤。ubantu和Android源碼都是不斷更新的,我敢說開發人員肯定是在一定的系統上開發的。假設現在推出了一套新的Android6.0版本是在ubantu16.04上開發的。那麼在16.04上肯定能完美運行,因爲這是開發人員經過不斷的修復更新的結果。然而,這並不能保證新開發出來的Android版本能在原來的ubantu10.03,ubantu12.04上完美編譯。除非開發人員做了向前兼容的工作。但是根據這一個星期來找到的錯誤來說,實際情況很肯能並非如此。所以找對版本很重要。
當然,如果你是大神,可以自己修改源碼來應對各種erro。那就隨便哪個版本啦。你想知道什麼纔是對應的版本,我不知道,得問開發源碼的人,我是試過多個版本,發現路路不通,最後根據前輩寫的博客和自己的聰明才智(嘻嘻)才最終成功的。

這邊給出這個博客的地址:http://blog.csdn.net/jiangwei0910410003/article/details/37988637/
這個博客的博主因爲一個問題沒能成功在模擬器上使用2.6.29的內核運行4.0.3的android源碼編譯出來的Android系統,但成功編譯了4.0.3的android源碼。最後他換成了2.3.7的android源碼。成功運行了。

編譯源碼的目的:過程很重要,TODO

分兩部分來進行,編譯Android源碼和編譯內核源碼,廢話不多說開始準備:

安裝ubantu系統:
不是ubantu系統的話可以使用虛擬機。下載地址:http://pan.baidu.com/s/1gfHb9Ph
注意事項,因爲源碼的文件都比較大,在分配磁盤大小時建議在60G以上,最好能分配2G或3G內存。
ubantu12.04鏡像文件。下載地址:http://pan.baidu.com/s/1bpDfWKn
編譯Android源碼:

準備工作:
1.下載JDK6,android4.0.3只能用6這個版本。下載地址:http://pan.baidu.com/s/1gfvwSaJ
2.下載android源碼。http://pan.baidu.com/s/1i5uCSex

安裝JDK參考博客:http://weixiaolu.iteye.com/blog/1401786
需要注意的是環境配置的時候要填寫正確的路徑地址。

解壓源碼到uabntu系統下,文件比較大,建議先將壓縮文件複製到虛擬機下,在虛擬機解壓文件。這邊給一個解壓命令很全的博客地址:http://blog.csdn.net/jiangwei0910410003/article/details/37997899

JDK有了,源碼也有了。下面就開始編譯Android源碼了。
但是在編譯源碼之前,要先更新一下ubantu上的軟件:sudo apt-get update
如果更新失敗,那一定是更新源的問題,所謂更新源就是更新來源。切換更新源。切換方法參考這個文檔:http://pan.baidu.com/s/1jIdFPQ2 這裏面有關於如何更新軟件的問題。
另外還要安裝很多軟件才能正常編譯,具體要安裝的軟件參考這個博客:http://jileniao.net/linux-android-building.html

開始編譯:分別執行
①source build/envsetup.sh
②lunch
此時要選擇一個編譯平臺
③make -jn
這裏的n注意取值,網上一般說法是CPU核數的兩倍,還有一說是CPU核數加1。到底哪個更準確我也沒有驗證。
但要值得提醒的是,雖然n用一個大的值會使編譯速度加快,但如果n取值過大,編譯是會報錯的。

編譯時間會比較長,而且也會出很多錯,多看出錯的log多思考。

編譯內核源碼。
這個比起上面的內容步驟上會相對簡單一點,關鍵是找着好的博客,方法對了。
內核源碼下載地址:http://pan.baidu.com/s/1mi4Gv0k
參考博客地址:http://blog.csdn.net/flydream0/article/details/7070392
需要注意的地方就是在配置環境變量的時候一定要注意路徑是否正確。另外,在配置環境變量的時候要使用root用戶。在編寫完環境變量後一定要用命令:source ~/.bashrc 或 重啓電腦,來使配置的變量生效。

最後給出倆張我成功編譯的Android系統運行在模擬器上的效果圖:這裏寫圖片描述這裏寫圖片描述

看設置裏面的Android版本和內核版本,已經換成我下載的版本了。

直接執行 emulator 提示 emulator: WARNING: system partition size adjusted to match image file (166 MB > 66 MB)
所需空間不足
影響:沒什麼影響,就是運行的慢一點。
解決方法:
emulator 加入參數 -partition-size 1024 (大於系統所要求的尺寸)即可,例如 emulator -partition-size 1024

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章