android 4.0.3最新源碼下載編譯

來源:互聯網
上載者:User

最新的android4.0原始碼公布以後,相信很多人和我一樣都躍躍欲試,其實4.0的代碼下載和編譯和以前的版本差不多,但是有一些小的差別,寫下來供不明真相的新手來參考

首先,開發環境,google建議在ubuntu10.0.4下,並且最好是64位,既然是為了工作和學習,就盡量按照官方要求的來吧。

Python 2.5 -- 2.7  ubuntu10.0.4已經預設安裝了,所以不需要安裝,其他環境需要安裝

JDK 6   編譯4.0需要jdk 6 ,sdk的編譯需要jdk 5

Git 1.7 or newer

如果你的ubuntu是32位的,請在源碼下載後編譯前按以下步驟修改:

下載完源碼後,修改下面四個檔案:external/clearsilver/cgi/Android.mk
                                                            external/clearsilver/java-jni/Android.mk
                                                           external/clearsilver/util/Android.mk
                                                          external/clearsilver/cs/Android.mk

將其中的 LOCAL_CFLAGS += –m64
                LOCAL_LDFLAGS += –m64

修改為    LOCAL_CFLAGS += –m32
               LOCAL_LDFLAGS += –m32

在build/core/main.mk

找到  ifneq (64,$(findstring 64,$(build_arch)))

將其修改為 ifneq (i686,$(findstring i686,$(build_arch)))

如果你裝的ubuntu是最新的11.04打頭的,由於核心版本的bug可能會在編譯的最後出現標頭檔丟失的錯誤比如:,請按照以下方法修複:

repo download platform/external/qemu 22776/1  如果你是10.0.4就不要做多餘的事情了,如果你修複了,編譯出的版本可能會出現黑屏現象進入不了系統,切記!

編譯的環境不同,碰到的問題也會千奇百怪,如果你編譯出問題了請養成google和百度的習慣

  1:jdk的安裝比較簡單,就不做介紹了

  2:安裝依賴庫:

        64-bit:

$ 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-bit
$ 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

     On Ubuntu 10.10:

    $ sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so

     On Ubuntu 11.10:

    $ sudo apt-get install libx11-dev:i386
 3:下載Repo
$ mkdir ~/bin $ PATH=~/bin:$PATH
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo $ chmod a+x ~/bin/repo

4: 建立源碼目錄:

$ mkdir ANDROID_SOURCE
$ cd ANDROID_SOURCE
5: 擷取git上的android源碼版本
$ repo init -u https://android.googlesource.com/platform/manifest
我們下載最新版
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.3_r1
此時需要你填寫使用者名稱和email


填寫後即可執行同步命令
6:下載源碼
$ repo sync
可加參數: -jx x代表開啟多少個線程來下載源碼
源碼+repo  一共13G左右(因為repo會自動執行check out 命令)
如果中間出錯或者網路不穩定,可以重新初始化repo,用同一個email即可實現本地git庫和伺服器git庫的同步


編譯源碼

下載完源碼後進入源碼主目錄
1 :執行:
$ source build/envsetup.sh
souce命令執行的是源碼包build目錄下的envsetup檔案

可以看出這個檔案裡定義了很多函數供編譯使用
function help()
function get_abs_build_var()
function get_build_var()
function check_product()
function check_variant()
function setpaths()
function printconfig()
function set_stuff_for_environment()
function set_sequence_number()
function settitle()
function choosetype()
function chooseproduct()
function choosevariant()
function tapas()
function choosecombo()
function print_lunch_menu()
function lunch()
function gettop
function m()
function findmakefile()
function mm()
function mmm()
function croot()
function pid()
function gdbclient()
function jgrep()
function cgrep()
function resgrep()
function getprebuilt
function tracedmdump()
function runhat()
function getbugreports()
function startviewserver()
function stopviewserver()
function isviewserverstarted()
function smoketest()
function runtest()
function runtest_py()
function godir ()

2:選擇一個target
$ lunch full-eng

我們編譯後在模擬器中運行,所以選擇full

我們選擇最大的許可權,也就是root後的版本,所以選擇eng
3:編譯源碼
$ make -j4
過程大概3小時
編譯完後在源碼目錄下會產生out檔案夾

好了,可以檢驗以下我們編譯的源碼是否正常運行了
$ emulator
如果提示找不到命令,請初始化環境
$ source build/envsetup.sh
$ lunch full-eng

 
ok,android源碼順利完成,明天進行核心的編譯














相關文章

聯繫我們

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