ubuntu 11.04+擷取Android源碼(補充篇)

來源:互聯網
上載者:User

之前我寫了ubuntu 11.04下android源碼的擷取http://www.cnblogs.com/dwayne/archive/2011/11/11/2245383.html,在進行編譯之後,發現了一些問題,所以再次發上了補充篇。

下載之後源碼的編譯部分是在ubuntu 11.10下完成的,編譯源碼的過程在整理出來以後wayne會寫出來跟大家分享。本文是在記錄編譯源碼過程中的問題和解決方案後,對以後再準備進行android源碼的分析工作做出提醒和經驗建議。

在我之前的源碼擷取篇的基礎上,有以下幾點建議做出調整:

1.避免選擇wubi安裝ubuntu系統(不穩定,可能導致編譯失敗)。

2.在安裝開發過程中所需要的一些開發包時,為避免編譯過程中遇到些莫名問題,在先前所說基礎上,建議安裝以下包:

$ sudo apt-get install lib64z1-dev libc6-dev-amd64 g++-multilib lib64stdc++6

3.安裝java環境時,選擇線上安裝方式會更方便。因為它會安裝sun-java6-bin和sun-java6-jre,自動設定編譯環境。

 

以下是修改後的完整過程總結:

Attention:本文環境是在ubuntu 11.04+下擷取並編譯android 2.3.3_r1的源碼,記錄下過程,方便自己備份的同時也希望能對後來者有所協助。

官網上的要求資訊為:

In general you will need:

  • Python 2.4 -- 2.7, which you can download from python.org.

  • JDK 6 if you wish to build Gingerbread or newer; JDK 5 for Froyo or older. You can download both from java.sun.com.

  • Git 1.7 or newer. You can find it at git-scm.com.

一、下載前準備工作

Note: The source download is approximately 6GB in size. You will need 25GB free to complete a single build, and up to 80GB (or more) for a full set of builds.

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 lib64z1-dev libc6-dev-amd64 g++-multilib lib64stdc++6

2.安裝java環境

安裝Java 6,因為在現在的ubuntu系統包庫裡,已經不再包含JDK,因此我們需要手動添加庫,執行如下命令:

$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk

之前安裝jdk時,官網上給出了兩條添加庫語句,第二條

$ sudo add-apt-repository "deb-src http://archive.canonical.com/ubuntu lucid partner"

是會提示錯誤的

Error: 'deb-src http://archive.canonical.com/ lucid partner' invalid

昨天再看官網已經更新了,去掉了這一條,很給力啊有木有~

 

二、開始下載源碼(這部分同ubuntu 11.04下android源碼的擷取http://www.cnblogs.com/dwayne/archive/2011/11/11/2245383.html)

現在我們已經準備好了android源碼開發所需的環境(無錯誤),下載源碼的過程由於Android的源碼很是龐大,需要分Android源碼和核心兩部分擷取。核心部分的源碼我暫時是不用的,所以這裡只下載源碼。

1.先建立一個檔案夾存放Android目錄,並初始化repo:

wayne@ubuntu:~$ mkdir Android
wayne@ubuntu:~$ cd Android
wayne@ubuntu:~/Android$ mkdir bin
wayne@ubuntu:~/Android$ cd bin
wayne@ubuntu:~/Android/bin$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo >repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 19731 100 19731 0 0 14034 0 0:00:01 0:00:01 --:--:-- 17157

在這裡,幾個月前http://android.git.kernel.org/已經無法訪問了,很多朋友如果用的是這個源下載網站,就會出現如下情況:

wayne@ubuntu:~/Android/bin$ curl http://android.git.kernel.org/repo >repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 244 100 244 0 0 75 0 0:00:03 0:00:03 --:--:-- 976

然後在之後的代碼初始化時就會出現如下錯誤:

./bin/repo: 行 1: 未預期的符號 `newline' 附近有語法錯誤
./bin/repo: 行 1: `<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">'

2.現在繼續。建立存放源碼目錄source,初始化所需的android源碼版本,在終端執行如下命令:

wayne@ubuntu:~/Android/bin$ sudo chmod a+x repo
wayne@ubuntu:~/Android/bin$ cd
wayne@ubuntu:~$ cd Android/source/
wayne@ubuntu:~/Android/source$ ../bin/repo init -u https://android.googlesource.com/platform/manifest -b android-2.3.3_r1
gpg: 鑰匙環‘/home/wayne/.repoconfig/gnupg/secring.gpg’已建立
gpg: 鑰匙環‘/home/wayne/.repoconfig/gnupg/pubring.gpg’已建立
gpg: /home/wayne/.repoconfig/gnupg/trustdb.gpg:建立了信任度資料庫
gpg: 密鑰 920F5C65:公開金鑰“Repo Maintainer <repo@android.kernel.org>”已匯入
gpg: 合計被處理的數量:1
gpg: 已匯入:1

Get https://android.googlesource.com/tools/repo
remote: Counting objects: 1414, done
remote: Finding sources: 100% (78/78)
remote: Total 1414 (delta 917), reused 1414 (delta 917)
Receiving objects: 100% (1414/1414), 429.88 KiB | 169 KiB/s, done.
Resolving deltas: 100% (917/917), done.
From https://android.googlesource.com/tools/repo
* [new branch] maint -> origin/maint
* [new branch] master -> origin/master
* [new branch] stable -> origin/stable
...

這樣下來之後,會要求輸入使用者名稱和郵箱地址,隨意寫個就ok。

初始化完畢之後會出現:

repo initialized in /home/wayne/Android/source

現在完成初始化之後便可以下載了,在終端執行如下命令,開始下載:

wayne@ubuntu:~/Android/source$ ../bin/repo sync

下載全部的源碼需要很長時間,現在正在經曆漫長的等待……

過程中時常看一下,也許會出錯而中斷:

error: Exited sync due to fetch errors

遇到這些問題時,重新執行一遍../bin/repo sync就ok。

Fetching projects: 100% (165/165), done.
Checking out files: 100% (3573/3573), done.ut files: 30% (1078/3573)
Checking out files: 100% (4679/4679), done.out files: 33% (1580/4679)
Checking out files: 100% (10008/10008), done.t files: 23% (2370/10008)
Checking out files: 100% (11980/11980), done.t files: 0% (64/11980)
Checking out files: 100% (9601/9601), done. out files: 0% (67/9601)
Syncing work tree: 100% (165/165), done.

下載完成。接下來就是編譯源碼了,敬請期待。

還是一樣,歡迎交流指正!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.