Android優勢在於開源,手機和平板生產商可以根據自己的硬體進行個性定製自己的手機產品,如小米、樂Phone、M9等,因此,在對Android的原始碼進行定製時,很有必要了解一下Android對的編譯過程。Google公司官方的編譯過程只是告訴使用者如何去編譯一個通用的系統。
Android系統的下載與編譯,Google的官網上已經給出了詳細的說明,請參照Android的官方址:http://source.android.com/source/index.html。內容主要有:
(1) 準備Android下載與編譯環境。
(2) 下載原始碼。
(3) 編譯原始碼及核心原始碼。
Android原始碼的編譯Google只給出了類UNIX系統,確切的說是Ubuntu及MacOS上的詳細過程。使用Ubuntu12.04作為編譯主機系統,由於Android系統裡程式碼大部分是用Java語言寫的,所以必須要安裝JDK,不過,不同的版本,對JDK的版本有不同的要求。在Gingerbread(2.3.x)版本及其之後的版本,使用JDK6.0,並且使用64位系統編譯。在Gingerbread(2.3.x)以前的版本,使用JDK5.0,並且可以在32位系統上編譯。對於硬體環境來講,要有足夠快的PC,如果有條件,最好使用實體PC。記憶體最少1GB,硬碟最少要30GB。也可以使用VMware或VirtualBox等虛擬機器軟體,但是編譯速度太慢,如果記憶體小於1GB,在編譯系統時候可能會出錯。
JDK6.0建議直接從SUN公司的網站上下載,其網址http://java.sun.com/javase/downloads/。
下載Android4.0及Goldfish原始碼:
(1) 下載並初始化repo工具:通過curl命令下載repo工具;給repo工具加執行許可權;建立原始碼目錄;初始化repo工具,準備訪問Google原始碼倉庫;保證Ubuntu能夠上網,並且能正常連線到Android伺服器,在初始化完repo工具後,會提示輸入Gmail郵箱及使用者名稱驗證。
(2) 下載Android原始碼:$repo sync -jn
(3) 其他原始碼下載:www:linaro.org
(4) 下載模擬器Goldfish核心原始碼:Google在開發Android系統的同時,使用qemu開發了針對每一個版本的一個模擬器,這大大降低了開發人員的開發成本,便於Android技術的推廣。qemu是一個開源的模擬器軟體,而Google使用qemu模擬的是ARM936ej-s的Goldfish處理器,如果開發人員在沒有目標開發板的情況下,想要對硬體進行操作Android底層的驅動,可以使用模擬器的核心原始碼。
編譯Android及goldfish核心原始碼:
(1) 編譯Android原始碼:初始化環境:切換到Android原始碼目錄 $cd WORKING_DIRECTORY 執行如下命令,載入編譯過程中用到的命令,環境變數: $ source build/envsetup.sh
(2) 選擇編譯選項 $ lunch
(3) 編譯前的準備
(4) 編譯原始碼 $ make –jn
(5) 編譯goldfish核心原始碼:指定gcc交叉編譯器,直接使用Android自帶的arm-eabi-4.4.3編譯器,它在WORKING_DIRECTORY/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin路徑下。
Android編譯過程分析。Google給出的編譯步驟如下:
(1) source build/envsetup.sh:載入命令。
(2) lunch:選擇目標平臺編譯選項。
(3) make:執行編譯
本章節介紹了編譯Android系統的一般編譯過程,在分析了編譯過程和配置檔案後,重點介紹了特東平臺下Android系統編譯和定製手機模擬器ROM。