Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android編程入門 >> 在Ubuntu Server14.04上編譯Android6.0源碼

在Ubuntu Server14.04上編譯Android6.0源碼

編輯:Android編程入門

  此前編譯過Android4.4的源碼,但是現在Android都到了7.0的版本,不禁讓我感歎Google的步伐真心難跟上,趁這周周末時間比較充裕,於是在過去的24小時裡,毅然花了9個小時編譯了一把Android6.0的源碼,但是昨天編譯完之後已經很晚了,沒來得及記錄編譯的步驟,今天才慢悠悠地來記錄一下我在Ubuntu Server14.04上編譯Android6.0源碼的步驟。好了,廢話不多說,我們開始吧!

  步驟一:

  安裝Ubuntu系統。我們既可以通過虛擬機的方式安裝Ubuntu,也可以直接在電腦上安裝,為了獲得更好的Linux操作體驗,我建議直接在電腦上面安裝Ubuntu,我在自己電腦上安裝了win10和Ubunut Server14.04雙系統,使用的時候可以根據自己的需要隨時切換系統,非常方便。關於如何搭建雙系統,網上有很多教程,我就不在此敘述了,但是我想說明的一點是在安裝Ununtu的時候,分配給Ubuntu的磁盤空間一定要盡可能大一點,至少60G,我分配了105G,編譯完成之後還剩下50多G,也就是說差不多用了近50G的空間,所以安裝Ubuntu的時候一定得分配大一點的磁盤空間,不然編譯會因為空間不足而中斷。

  步驟二:

  搭建好Ubuntu系統之後,我們需要下載一份Android6.0的源碼,網上很多文章都介紹了如何通過repo的方式來下載源碼,但是通過這種方式下載速度可能並不是很理想,我是直接下載的別人已經上傳到百度雲的Android6.0源碼,下載地址:http://pan.baidu.com/s/1o6N86a2#path=%252F。

  因為Android6.0的源碼所占空間非常大,所以上傳者把Android源碼分成了很多個文件,待全部下載完畢之後,我們可以通過命令把這些分開的文件合並為一個文件。

  步驟三:

  如果我們是在Windows上下載的源碼,那麼當我們打開Ubuntu之後,要做的第一件事請就是把Windows中的Android源碼拷貝到Ubuntu系統下面,我直接利用復制粘貼的方式將源碼拷貝到了Ubuntu的Home目錄下面,拷貝之後的目錄結構Home/android6_r1/各個分開的源碼文件。

  步驟四:

  合並這些被分開的源碼文件。我們按下鍵盤上的ctrl + alt + T打開控制台,通過cd命令進入到Home/android6_r1/目錄下面,然後執行命令:cat Android6_r1_* > M.tgz,不用多久,在Home/android6_r1/目錄下面就會生成一個新的文件——M.tgz,M.tgz就是合並之後的壓縮文件。

  步驟五:

  解壓步驟四生成的壓縮文件。同樣是在Home/android6_r1/目錄下面,我們在控制台執行命令:tar zxvf M.tgz,開始解壓。解壓的過程大概需要20分鐘左右的時間,請耐心等待。解壓好了之後,在Home/android6_r1/會生成一個mydroid的文件夾,這個文件夾就是Android源碼的根文件夾了,裡面有abi、devices、hardware、packages、sdk、art等文件夾和文件。  

  步驟六:

  安裝編譯源碼所需要的軟件。在控制台中我們通過cd..命令退回到Unbuntu用戶的根目錄下,然後依次執行以下命令:

  sudo apt-get update

  sudo apt-get install openjdk-7-jdk

  sudo update-alternatives --config java

  sudo update-alternatives --config javac

  以上命令每一條都必須分開單獨執行,目的是為了獲取1.7版本的jdk並設置環境變量。當我們安裝完Ubuntu之後可能會自帶一個jdk,但是如果用自帶的jdk編譯Android源碼很可能會提示jdk版本不符合要求的錯誤,因此我們需要重新下載1.7版本的jdk,我用openjdk-7-jdk編譯未出現任何問題。

  接下來繼續執行以下命令,同樣每一行都是分開單獨執行的:

  sudo apt-get install git gnupg flex bison gperf build-essential

  sudo apt-get install zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev

  sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386

  sudo apt-get install libgl1-mesa-dev g++-multilib mingw32 tofrodos

  sudo apt-get install python-markdown libxml2-utils xsltproc zlib1g-dev:i386

  sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

  以上命令主要是安裝編譯源碼時需要用到的各種軟件,如果沒有安裝這些軟件,編譯的過程中會提示缺少必要的軟件而無法繼續編譯,因此,在正式編譯源碼之前,一定要先安裝這些軟件。

  步驟七:

  開始編譯。在控制台中通過cd命令進入到Home/android6_r1/mydroid/目錄下,然後執行命令:source build/envsetup.sh,導入編譯Android源碼所需的環境變量和其它參數。

  步驟八:

  在控制台中執行命令:lunch,運行命令之後會提示我們選擇編譯目標。這裡我選擇的的默認目標,即aosp_arm_eng。

  步驟九:

  在控制台中執行命令:make -j8,開始編譯。注意,make -j8命令中的數字8和我們電腦的CPU核心數以及線程數有關系,一般這個數字的數值最大不能超過CPU線程數的2倍,例如我電腦的處理器是i5 6200U,為雙核四線程,因此編譯Android源碼的時候,我可以設置的最大工作線程數量為4 * 2 = 8。在執行make命令的時候我們應該根據自己的CPU參數設置合理的工作線程數值。

  以上步驟執行完之後,就是一段非常漫長的等待了,我從中午十二點多開始編譯,一直到晚上九點多編譯完成,整個編譯過程耗時九個多小時,幸好我的運氣還不錯,編譯過程中沒有出現任何錯誤,只是中途意外中斷了一次,但是Android源碼是可以接著上次中斷的位置繼續編譯的,已經編譯的部分不會重復編譯,因此並未對我造成大的影響。同志們,我想說的是,編譯的過程中一定要有耐心喲!

  整個源碼編譯完成之後,如果提示如下信息,那麼Congratulations, you are successful!!!

  

  此時,你可以直接執行命令:emulator,執行之後將會出現android模擬器的界面,如圖:

  

  

  

  OK,至此Android6.0源碼的編譯就大功告成了,接下來我們就可以隨心所欲地閱讀和修改源碼內容,定制自己心目中的Android系統了!

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved