一.安裝Ubuntu12.04
我個人更喜歡在Windows進行開發,所以Ubuntu的安裝選擇的是Virtual Box4.1.16,具體的虛擬機器安裝Ubuntu的方法在這不贅述,唯一注意的一點就是硬碟儲存映像開大些,我開的是60G,最好選擇“動態分配儲存”,因為在以後編譯Android源碼過程中會用到很大量的空間,空間不夠編譯會報錯。
安裝完Ubuntu之後,保證能連上Internet,否則以後的步驟都無法執行。
二.搭建環境1.Java環境
按照網上的做法,大部分都是通過apt-get的方式來進行安裝,我是沒有成功,所以就直接用ubuntu內建的軟體中心搜尋Java,選擇“OpenJDK Java 6 Runtime”,安裝之。。PS : 建議使用版本6或者5的,版本7的會造成編譯出錯。
安裝成功後可以通過在命令列裡輸入:
[plain]
view plaincopy
- java -version
命令來查看版本號碼,如出現以下提示資訊,則安裝成功
2.添加需要的包
借鑒網上的方法。
64位系統:
[plain]
view plaincopy
- $ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc
32位系統:
[plain]
view plaincopy
- $ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev libx11-dev libreadline6-dev libgl1-mesa-dev tofrodos python-markdown libxml2-utils xsltproc
我是32位系統,所以選擇第二組命令,等其自動下載安裝完成後即可。
3.下載repo
注意:網上很多做法是使用Proxy 伺服器下載,開始我試了,不僅沒效果,反倒是請求伺服器一直逾時,最後我把設定代理的環境變數刪了立馬好用,網上的做法有點多此一舉。也許是網路環境不一樣吧,大家多試試。
在使用者目錄下,建立bin檔案夾,用於存放repo,並把該路徑設定到環境變數中:
[plain]
view plaincopy
- $ mkdir ~/bin
- $ PATH=~/bin:$PATH
下載repo的指令碼,用於執行repo.
[plain]
view plaincopy
- $ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
- $ chmod a+x ~/bin/repo
4.初始化一個repo的用戶端
建立一個空的目錄,用於存放android源碼。
PS:原始碼的目錄名稱不要帶空格,之前我的檔案夾帶空格所以導致編譯沒有通過。
我是用Nautilus在根目錄下建立了
“AndroidDev”,並把使用者和組都設定為自己經常使用的使用者,擁有讀寫權限。
接著,在上面建立的目錄下運行repo進行下載源碼:
下載主線分支,主分支裡麵包含著最新修改的bugs,並未正式發出版本的最新源碼。
[plain]
view plaincopy
- $ repo init -u https://android.googlesource.com/platform/manifest
下載其他分支,正式發布的版本,可以通過添加-b的命令下載下來。
[plain]
view plaincopy
- $ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
在下載過程中會需要填寫Name及Email,填寫完之後,選擇Y進行確認。最後,提示repo初始化完成在所在的目錄下,這裡也可以看到當前的目錄下有一個隱藏檔案.repo/
這個檔案裡面設定著一些初始化的資訊。三.代碼同步執行以下命令
[plain]
view plaincopy
- $ repo sync
(若出現了new branch 、new tag說明已經在正常的同步過程了)這時只需要等待其完成,這個同步的時間會很久,因為Android的代碼全部下載下來了,也包括著其他的分支。整個源碼大概會有16G左右,惟有等待了,但這個時候可以用來準備一下開發環境。
下載一個漫長的過程,在下載的過程中,有可以會有中斷的情況,這時需要重新的repo sync,進行繼續的同步了。下載完成的最後,會有許多100%的下載成功的提示,
代碼下載過程中,經常提示以下錯誤:
error: Failed connect to android.googlesource.com:443;Connection refused while accessinghttps://android.googlesource.com/a/platform/frameworks/base/info/refs
fatal: HTTP request failed
error: Cannot fetch platform/tools/motodev
error: Cannot fetch platform/frameworks/base
error: Cannot fetch platform/prebuilts/sdk
error: Exited sync due to fetch errors
解決方案:編輯/etc/hosts檔案
$ vim /etc/hosts
增加下面內容,儲存(提前儲存好):
74.125.31.82 www.googlesource.com
74.125.31.82 android.googlesource.com
203.208.46.172 cache.pack.google.com
59.24.3.173cache.pack.google.com
然後重新輸入
$ repo sync