Ubuntu16.04下编译Android 6.0 源码

来源:互联网 发布:centos owncloud 安装 编辑:程序博客网 时间:2024/05/16 17:37

Ubuntu16.04下编译Android 6.0源码

1、下载源码

网盘下载地址:https://pan.baidu.com/s/1miuaO0C

2、安装必要的依赖

16.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-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 lib32z-dev ccache
sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4

在安装上述依赖的的过程中,碰到了一个问题:

pkg:error processing archive /var/cache/apt/archives/zlib1gdev_1%3a1.2.8.dfsg-2ubuntu4_i386.deb (–unpack):
trying to overwrite ‘/usr/include/i386-linux-gnu/zconf.h’, which is also in package lib32z1-dev 1:1.2.8.dfsg-2ubuntu4
Processing triggers for man-db (2.7.4-1) …
Errors were encountered while processing:
/var/cache/apt/archives/zlib1g-dev_1%3a1.2.8.dfsg-2ubuntu4_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

中文环境下大概就是

正在解压缩 zlib1g-dev:amd64 ( …/zlib1g-dev_1%3a1.2.7.dfsg-13_amd64.deb) …
dpkg:errorprocessing
/var/cache/apt/archives/zlib1gdev_1%3a1.2.7.dfsg13_amd64.deb(–unpack):
正试图覆盖 /usr/include/zconf.h,它同时被包含于软件包 zlib-devel 1.2.3-4

解决办法就是:

sudo apt-get -o Dpkg::Options::=”–forceoverwrite”install lib32z1-dev

来源于:http://askubuntu.com/questions/176121/dpkg-error-trying-to-overwrite-file-which-is-also-in

3、编译环境的搭建

要在ubuntu上编译6.0源码,需要ubuntu 14.04以上版本,OpenJDK 7,GUN Make 3.81-3.82
具体资料可参照https://source.android.com/source/requirements.html

4、修改clang编译器设置

修改 /art/build/Android.common_build.mk 文件,在75行,即

# Host.ART_HOST_CLANG := falseifeq ($(WITHOUT_HOST_CLANG),false)  # By default, host builds use clang for better warnings.  ART_HOST_CLANG := trueendif

在这里中,改为:

# Host.ART_HOST_CLANG := falseifneq ($(WITHOUT_HOST_CLANG),true)  # By default, host builds use clang for better warnings.  ART_HOST_CLANG := trueendif

请将ifeq ($(WITHOUT_HOST_CLANG),false)
改为ifneq ($(WITHOUT_HOST_CLANG),true)
改为ifneq ($(WITHOUT_HOST_CLANG),true)
改为ifneq ($(WITHOUT_HOST_CLANG),true)

5、开始编译

在 .bashrc文件末尾添加:export USE_CCACHE = 1

echo export USE_CCACHE=1 >> ~/.bashrc

设置缓存,这里要根据自己分区的大小做相应调整

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

导入环境变量

source build/envsetup.sh

运行lunch命令选择编译目标:

lunch 

根据自己需求选择,我选1
开始编译:

make -j8 

6、运行模拟器

emulator
0 0