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模拟器了!



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