1. 程式人生 > >ubuntu16.04 編譯android 6 Marshmallow

ubuntu16.04 編譯android 6 Marshmallow

之前一直是在別人配置的ubuntu上面編譯android,心血來潮,也想自己搞一下,以下是我的配置方法。

設定阿里源

sudo gedit /etc/apt/sources.list

把以下內容替換到sources.list

deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com
/ubuntu/ xenial main restricted multiverse universe #Added by software-properties deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties deb http://mirrors.aliyun.com/ubuntu/ xenial universe deb http://mirrors.aliyun
.com/ubuntu/ xenial-updates universe deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner deb-src http://archive.canonical.com/ubuntu xenial partner deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
sudo apt-get update

安裝必要的工具和依賴包

安裝vim git

sudo apt-get install vim git curl

安裝openJDK7

sudo add-apt-repository ppa:openjdk-r/ppa 
sudo apt-get update
sudo apt-get install openjdk-7-jdk
# 配置OpenJDK.開啟/etc/profile檔案:
sudo vim /etc/profile
# 在末尾追加下面程式碼:
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export JRE_HOME=${JAVA_HOME}/jre 
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib 
export PATH=${JAVA_HOME}/bin:$PATH
# 啟用新配置:
source /etc/profile

安裝其他依賴

sudo apt-get install -y 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-dev
sudo apt-get install git-core gnupg flex bison gperf build-essential  
sudo apt-get install zip  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 ccache
sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4

下載Android原始碼

我是通過國內中科大的映象進行下載的具體可以參考https://lug.ustc.edu.cn/wiki/mirrors/help/aosp

下載repo工具

mkdir ~/bin
PATH=~/bin:$PATH
curl -sSL  'https://gerrit-googlesource.proxy.ustclug.org/git-repo/+/master/repo?format=TEXT' |base64 -d > ~/bin/repo
chmod a+x ~/bin/repo
vim ~/bin/repo 
# 把 REPO_URL 一行替換成下面的:
REPO_URL = 'https://gerrit-googlesource.proxy.ustclug.org/git-repo'

下載Android原始碼

mkdir mAndroid
cd mAndroid
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-6.0.0_r12
repo sync

編譯Android

編譯之前,需要改一處地方
修改 mydroid/art/build/Android.common_build.mk 檔案,定位到75行,將下面的程式碼:

ifneq ($(WITHOUT_HOST_CLANG),true)

改為:

ifeq ($(WITHOUT_HOST_CLANG),false)

最後,就是source,lunch,make了

source build/envsetup.sh
lunch 1
make