天天看點

ubuntu 15.10 編譯Android源碼環境搭建

轉載請注明出處:http://blog.csdn.net/u011974987/article/details/50978291;

來自『_xuhao』的部落格

概述:

作為一個Android開發者,想要自己提升一個階段,想深入了解 Android 相關的知識,Activity 是工作流程是怎樣的? View 是怎樣繪制的? 怎樣修改一些系統相關的應用?等等,就得要深入Android 源代碼~是以就要先擷取Android源碼:

準備工作:

  1. 裝一個Ubuntu系統(http://www.ubuntu.com/download/desktop)電腦的記憶體最好有 8 G,因為編譯 Android 源碼很吃電腦記憶體,特别是在 4.4 以後的版本,電腦記憶體大點,比較保險,編譯一次源碼要好幾個小時,要因為記憶體原因,太讓人郁悶了。

    ps:( ubuntu裝完後把系統軟體全都更新一下)

  2. 一個翻牆vpn(https://www.trueyt.com/)

編譯環境的部署:

通路: http://source.android.com/source/initializing.html

1、 Installing the JDK

Android 5.0 編譯需要 Open Java7 版本

$ sudo apt-get update
$ sudo apt-get install openjdk--jdk
           

Android 4.4 編譯需要 Sun Java6 版本

$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java6-set-default
           

切換 Java 的方法 (上面 2 個根據你的需要安裝)

$ sudo update-alternatives --config java
$ sudo update-alternatives --config javac
           

2、 Installing required packages

$ sudo apt-get install bison g++-multilib git gperf libxml2-utils make python-networkx zlib1g-dev:i386 zip
$ sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so /usr/lib/i386-linux-gnu/libGL.so
           

Notes!!不同的 Ubuntu 版本可能不能,安裝這些編譯工具可能不成功,也不用管,在你編譯的時候,可能會出錯,根據錯誤日志去解決就行了。

配置 USB 通路 (下面的都可能需要翻牆了)

$ wget -S -O - http://source.android.com/source/-android.rules | sed "s/<username>/$USER/" |sudo tee >/dev/null /etc/udev/rules.d/-android.rules; 
$ sudo udevadm control --reload-rules
           

安裝 repo , repo 是 git 的管理工具

$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
           

下載下傳源代碼

(我這邊添加的是内置伺服器,從我們自己的伺服器下載下傳的代碼很快,一般一個小時左右就下載下傳完了!)

  • 建立一個目錄來存放 Android 源碼
$ mkdir android_source_5.
$ cd android_source_5.
           
  • 初始化下載下傳
$ repo init -u https://android.googlesource.com/platform/manifest -b 
你要同步的源碼(android-_r1)
           
  • 在初始化時,可能要配置下git的emai 資訊:
$ git config --global user.email "[email protected]"
$ git config --global user.name "Your Name"
           
  • Downloading the Android Source Tree同步源碼
$ repo sync
           

這個指令如果代理斷了需要重新執行這個指令同步代碼(也可以寫一個shell 腳本)

當控制台顯示 successful的時候恭喜你代碼同步成功了~控制台顯示如下:

編譯源代碼

進入到你DownLoad 源碼的目錄下,執行以下指令

$ cd android_source_5.
$ source build/envsetup.sh
$ choosecombo release aosp_flo eng
$ make -j4
           

編譯的時間是漫長的,中間還可能出錯,是以我們需要随時陪同,中間還可能需要解錯,當你看見螢幕的最下面出現 Successful 的時候,恭喜你,源碼已經編譯成功。如下圖:

ubuntu 15.10 編譯Android源碼環境搭建

繼續閱讀