Ubuntu編譯Android源碼

博主是在Ubuntu16.04下編譯Android 6.0.1的源碼。

首先需要獲取到Android源碼,有很多種方式,大家可以自行google。博主是在網上分享的一個百度雲鏈接中下載的,方便省事,需要鏈接的可以私信我或者給我留言。

Android 6.0.1源碼目錄如下圖


編譯Android需要安裝OpenJDK 7。博主之前系統中有安裝Java官網的JDK,最後發現並不能編譯。下載OpenJDK的方法:

需要先指定ppa,不然默認下載的是openjdk-8-jdk

sudo add-apt-repository ppa:openjdk-r/ppa

下載

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

然後,需要安裝依賴

sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib 
sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386 
sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 
sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev
sudo 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 libgl1-mesa-dev libxml2-utils xsltproc unzip m4
sudo apt-get install lib32z-dev ccache

此外,還需要修改源碼的一行代碼。(如果不修改會報錯,大家如果想嘗試看看是什麼錯,也可以不修改哈哈)

修改/art/build/Android.common_build.mk文件第75行,將原來的代碼

ifneq ($(WITHOUT_HOST_CLANG),true)

修改爲

ifeq ($(WITHOUT_HOST_CLANG),false)

接下來,正式開始編譯。

首先初始化編譯環境

source build/envsetup.sh


然後通過lunch命令選擇編譯目標


博主選擇目標爲aosp_arm64-eng

lunch aosp_arm64-eng

開始編譯

make -j8

編譯成功


可以運行Android模擬器了!



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章