基於ubuntu12.04下下載android源碼

來源:互聯網
上載者:User
一.安裝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
  1. java -version  

命令來查看版本號碼,如出現以下提示資訊,則安裝成功


2.添加需要的包

借鑒網上的方法。

64位系統:

[plain]
view plaincopy
  1. $ 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
  1. $ 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
  1. $ mkdir ~/bin   
  2. $ PATH=~/bin:$PATH  

  下載repo的指令碼,用於執行repo.

[plain]
view plaincopy
  1. $ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo   
  2. $ chmod a+x ~/bin/repo  
4.初始化一個repo的用戶端

 建立一個空的目錄,用於存放android源碼。

PS:原始碼的目錄名稱不要帶空格,之前我的檔案夾帶空格所以導致編譯沒有通過。

我是用Nautilus在根目錄下建立了
“AndroidDev”,並把使用者和組都設定為自己經常使用的使用者,擁有讀寫權限。

接著,在上面建立的目錄下運行repo進行下載源碼:

下載主線分支,主分支裡麵包含著最新修改的bugs,並未正式發出版本的最新源碼。

[plain]
view plaincopy
  1. $ repo init -u https://android.googlesource.com/platform/manifest   
下載其他分支,正式發布的版本,可以通過添加-b的命令下載下來。

[plain]
view plaincopy
  1. $ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1   

在下載過程中會需要填寫Name及Email,填寫完之後,選擇Y進行確認。最後,提示repo初始化完成在所在的目錄下,這裡也可以看到當前的目錄下有一個隱藏檔案.repo/
這個檔案裡面設定著一些初始化的資訊。三.代碼同步執行以下命令

[plain]
view plaincopy
  1. $ 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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.