Ubuntu 16.04編譯Android 7.1.2

來源:互聯網
上載者:User

標籤:git   電腦   nts   android源碼   and   環境   錯誤   misc   預設   

 

 

折騰了很久,終於搞定了這個環境。記錄一下。

準備工作:

  1. 首先在Ubuntu官網上下載Ubuntu16.04的官方鏡像。官網(這個找了很久,這裡可以直接下載ISO鏡像):https://launchpad.net/ubuntu/+cdmirrors

  2. 建議直接安裝到自己硬碟上(推薦雙系統),不要在虛擬機器上搞,除非你有足夠大的SSD。我之前在虛擬機器上試過,電腦的效能完全發揮不出來,後來搞了雙系統,發現一切都是那麼舒服。

  3. Android源碼下載方法:https://lug.ustc.edu.cn/wiki/mirrors/help/aosp

下面假定已經準備好了Ubuntu系統,並且下載好了Android 7.1.2的源碼(其他版本也行)。

 

環境配置:

1. 安裝基本的依賴軟體:

  注意,我使用的是Ubuntu 16.04,下面的依賴軟體都是根據Ubuntu16.04來的,如果你用的不是Ubuntu16.04,則要根據你的實際情況來,否則可能會出現錯誤。

sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386 sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-devsudo apt-get install git-core gnupg flex bison gperf build-essential  sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib sudo apt-get install libc6-dev-i386 sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev sudo apt-get install lib32z-dev ccachesudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4

2. 根據自己所下載的Android代碼的版本,選擇安裝所需的jdk版本

  我下載的Android版本是7.1.2,所需的JDK版本是openjdk-8-jdk。Ubuntu預設內建的openjdk-8-jdk的安裝源,可以直接安裝,使用下面的命令安裝即可:

sudo apt-get updatesudo apt-get install openjdk-8-jdk

  如果使用的OpenJDK7,由於Ubuntu 16.04沒有OpenJDK7的源,因此要先添加源,然後在安裝OpenJDK7,按下面的命令操作即可:

sudo add-apt-repository ppa:openjdk-r/ppa sudo apt-get updatesudo apt-get install openjdk-7-jdk 

  安裝完以後,執行下面的命令添加JAVA_HOME相關配置

sudo gedit /etc/profile

  在開啟的profile檔案的末尾添加下面的內容:

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH

  修改了/etc/profile檔案需要重啟才會生效,但使用下面命令可以在不重啟的情況下在當前bash環境生效:

source /etc/profile

  最後,檢查一下jdk是否安裝成功:

java -version

3. 編譯參數配置

  基本環境準備完成後,下面開始Android編譯相關配置。

  1)修改android_common_build.mk檔案,尋找WITHOUT_HOST_CLANG,將

ifneq ($(WITHOUT_HOST_CLANG),true)

  修改成

ifeq ($(WITHOUT_HOST_CLANG),false)

  如果不修改這裡,會遇到一個比較棘手的編譯錯誤,修改的目的是把CLANG這個編譯選項關掉。

  2)修改 .bashrc檔案

  在終端中執行下面的命令,在.bashrc檔案末尾添加:export USE_CCACHE = 1

echo export USE_CCACHE=1 >> ~/.bashrc

  為了提高編譯效率,設定編譯器快取:

prebuilts/misc/linux-x86/ccache/ccache -M 50G

  3)為了避免編譯時間出現“Try increasing heap size with java option Xmx<size>”錯誤,需要修改JACK_SERVER_VM_ARGUMENTS配置。修改prebuilts/sdk/tools/jack-admin檔案,在JACK_SERVER_VM_ARGUMENTS的後面添加-Xmx4096M。一共有2處,都要進行修改。

  修改完成以後,記得重啟一下jack server,執行下面兩條命令即可,一定要執行下面的命令,否則上面的修改可能不生效:

./prebuilts/sdk/tools/jack-admin kill-server ./prebuilts/sdk/tools/jack-admin start-server

 

正式編譯

  準備了以後工作後,基本上就ok了,運氣好的話,在編譯的時候基本就不會再出問題。依次執行下面的命令進行編譯即可,當然隨著個人電腦配置的不同,編譯所需的時候也可能會有很大差異,如果覺得 -j8 太多,可以直接使用make,預設是 -j4:

source build/envsetup.shlunchmake -j8

  編譯成功後,執行下面的命令,就可以開啟Android模擬器,開始使用自己編譯的系統了。

emulator

  效果如下:

 

 

參考資料:

1. http://blog.csdn.net/fuchaosz/article/details/51487585/

2. http://blog.csdn.net/csdn_zyp2015/article/details/56277765

Ubuntu 16.04編譯Android 7.1.2

相關文章

聯繫我們

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