準備工作完成後,開始編譯工作。下載下傳下來的源碼有5G多,如果按照我之前寫的擷取源碼的話,源碼目錄為~/Android/source
一、環境設定
在lunch時,如果提示permission denied權限不夠的話,需要在源碼根目錄下執行,賦予目錄下所有檔案權限
這時候會lunch指令會列印出如下所示文段:
一、開始編譯
編譯過程可能會出現許多錯誤而中止,在此wayne将會把所有遇到的問題以及解決方法一一貼出來,以供以後參考。
1.Q:
解決方法:cd到源碼根目錄,執行:
找到
将其修改為
然後依次修改以下四個make檔案:
将其中的
修改為
2.Q:
解決方法:
修改以下語句
為
3.Q:
如果之前的依賴包都已經安裝成功的話,此處應該是交叉編譯工具權限的問題。這個問題隻要在文章開頭lunch時執行了賦予權限指令,就應該不會遇到了。
4.Q:
此處編譯錯誤是由于ubuntu 11.10采用了GCC4.6.1導緻的。
修改源碼目錄下/build/core/combo/HOST_linux-x86.mk檔案:
将以下語句
編譯時還有可能出現類似的錯誤,根據錯誤提示的關鍵詞比如g++錯誤、jre錯誤等,都是些細節問題,比較好解決。
經過兩小時左右的等待後,終于順利完成。編譯成功後會生成system.img等鏡像檔案,下面是編譯完成提示:
三、啟動所編譯的系統
編譯完之後會在out/target/product/generic目錄下生成system.img ramdisk.img userdata.img三個鏡像檔案。
在啟動模拟器之前,需要先為模拟器系統設定環境變量,執行gedit ~/.bashrc,新增環境變量如下:
最後,同步這些變化并啟動模拟器:
加載上我們所編譯出來的系統檔案,終于出現了期待已久的模拟器:
到這裡,源碼編譯就完成了,接下來就可以進行自己的改動測試了。依然,歡迎交流指正By wayne!