android 源碼下載及編譯

來源:互聯網
上載者:User

(Google 官網http://source.android.com/source/)

一 編譯環境搭建

1.初始話編譯環境

源碼大小大約為6G,完成一次編譯需要25G左右,我的硬碟為50G.

2.建立linux環鏡

Google doc(http://source.android.com/source/)推介使用ubuntu 10.10 64位(LTS),我的系統就是這個版本.一般需要以下軟體:

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

GNU Make 3.81 -- 3.82, which you can download from
gnu.org,

JDK 6 if you wish to build Gingerbread or newer; JDK 5 for Froyo or older. You can download both fromjava.sun.com.(Gingerbread,Froyo為android源碼的一種標識)

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

3.安裝java sdk

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

$ sudo apt-get update

$ sudo apt-get install sun-java6-jdk

會出現找不到sun-java6-jdk的錯誤,我從
java.sun.com下載了jdk-6u31-linux-x64.bin檔案並安裝.注意要配置好環境變數,Google doc並沒有說這點.

4.安裝需要的包

$ 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

5.配置USB訪問

開啟/etc/udev/rules.d/51-android.rules檔案(root),添加以下內容,將username替換為你的用戶名

# adb protocol on passion (Nexus One)SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12", MODE="0600", OWNER="<username>"# fastboot protocol on passion (Nexus One)SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0600", OWNER="<username>"# adb protocol on crespo/crespo4g (Nexus S)SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e22", MODE="0600", OWNER="<username>"# fastboot protocol on crespo/crespo4g (Nexus S)SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e20", MODE="0600", OWNER="<username>"# adb protocol on stingray/wingray (Xoom)SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a9", MODE="0600", OWNER="<username>"# fastboot protocol on stingray/wingray (Xoom)SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="708c", MODE="0600", OWNER="<username>"# adb protocol on maguro/toro (Galaxy Nexus)SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0600", OWNER="<username>"# fastboot protocol on maguro/toro (Galaxy Nexus)SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e30", MODE="0600", OWNER="<username>"# adb protocol on panda (PandaBoard)SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d101", MODE="0600", OWNER="<username>"# fastboot protocol on panda (PandaBoard)SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d022", MODE="0600", OWNER="<username>"# usbboot protocol on panda (PandaBoard)SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d010", MODE="0600", OWNER="<username>"

6.建立CCache(為了加快編譯)

添加以下內容到.bashrc

export USE_CCACHE=1

export CCACHE_DIR=<~/.ccache>(這句沒看懂文檔的意思,就這樣寫了)

二.下載源碼

1.安裝Repo

(確保家目錄有bin目錄,並且在PATH中)

$ mkdir ~/bin

$ PATH=~/bin:$PATH

(下載Repo指令檔,並確保可執行)

$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo$ chmod a+x ~/bin/repo

2.初始化Repo客戶端

(source為放置源檔案的地方)

$ mkdir source$ cd source
下載Repo最新的版本(使用git branch -r命令來查看所有版本)$ repo init -u https://android.googlesource.com/platform/manifest

下載指定的版本(我下載的是android-4.0.1_r1):

$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1

開始下載,在下載的過程中需要輸入姓名和郵箱,如果下載的過程中出現中斷,可以執行以下命令繼續下載

$ repo sync

源碼下載結束後執行,來設定緩充區大小

prebuilt/linux-x86/ccache/ccache -M 50G

3.編譯系統

初始化編譯環境

$ source build/envsetup.sh

選擇一個目標

$ lunch full-eng

編譯

$  make -j4

啟動模擬器

$ emulator

效果如下:


哇噻,終於好了 ~~

編譯某一個包:

make ONE_SHOT_MAKEFILE=packages/apps/Launcher2/Android.mk


相關文章

聯繫我們

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