一准備工作
首先你在自己的電腦上要安裝好Ubuntu,然後進行下面的工作,你只需要復制+粘貼就行了
1、安裝Git工具。Android源代碼采用Git工具來管理,與SVN相比,這是一種分布式的源代碼管理工具,而SVN是集中式的源代碼管理工具。要安裝Git工具,在Ubuntu上執行以下命令即可:
USER-NAME@MACHINE-NAME:~$ sudo apt-get install git-core gnupg
2、安裝Java SDK。在Ubuntu上執行以下命令:
USER-NAME@MACHINE-NAME:~$ sudo add-apt-repository ppa:ferramroberto/java
USER-NAME@MACHINE-NAME:~$ sudo apt-get update
USER-NAME@MACHINE-NAME:~$ sudo apt-get install sun-java6-jre sun-java6-plugin
USER-NAME@MACHINE-NAME:~$ sudo apt-get install sun-java6-jdk
順便提一句,在上面第三步sudo apt-get install sun-java6-jre sun-java6-plugin時,會彈出一個對話框,這時按Tab鍵來切換焦點,然後按回車就行。
3、依賴的其它包。在Ubuntu上執行以下命令:
USER-NAME@MACHINE-NAME:~$ sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl
此處是安裝了很多軟件,直接將命令復制粘貼
4、調試工具。在Ubuntu上執行以下命令:
USER-NAME@MACHINE-NAME:~$ sudo apt-get install valgrind
二、源代碼的下載
有很多網站都提供了源代碼的下載,但是有一些鏡像是不能用了,此處給出官方參考網站,如果本地的內容也不能用了時,請參考官網:
http://source.android.com/source/downloading.html
獲取Android源代碼
1、在當前目錄下新建一個目錄用來存放我們的Android目錄,
mkdir Android
cd Android
mkdir bin
cd bin
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > repo
2、建立存放Android源代碼的目錄source,並初始化版本
sudo chmod a+x repo
cd ..
mkdir source
cd source
../bin/repo repo init -u https://android.googlesource.com/platform/manifest
如果想要下載android4.0的分支請用命令:
../bin/repo repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
轉換分支用-b 參數。同時注意,bin和source同時位於Android目錄下,是平行結構
3、之後要求輸入用戶名和地址,可隨機輸入,也可輸入自己的賬戶
4、同步代碼
../bin/repo sync
注意:此時同步代碼會非常慢,可能需要幾天的時間。同步時可能會出現請求連接失敗,在此執行這個命令就行,這個工程文件支持斷點續傳。
三、Android內核下載
Anroid內核在使用命令../bin/repo sync時並不會被一起下載。如果你不需要對Android內核進行修改和移植,可以不需要這部分內容,可以從Android模擬器中提取這部分內容的鏡像
在Android目錄下新建一個存放內核的目錄kernel,然後執行下面命令
$ git clone https://android.googlesource.com/kernel/common.git
$ git clone https://android.googlesource.com/kernel/goldfish.git
$ git clone https://android.googlesource.com/kernel/msm.git
$ git clone https://android.googlesource.com/kernel/omap.git
$ git clone https://android.googlesource.com/kernel/samsung.git
$ git clone https://android.googlesource.com/kernel/tegra.git
注意,內核不支持斷點續傳,同時速度要比源代碼下載速度快很多
正在嘗試編譯,編譯成功後在將相關的方法發表出來
摘自 zqiang_55的專欄