framework

Android源码编译(ubuntu16.04+android

2017-10-02  本文已影响1486人  第八区

简介

1 环境配置

先看下我的计算机的配置

computer.png
1.1 安装VMware

这里我们使用虚拟机来安装ubuntu。至于VMware具体安装方法大家自行百度。这里贴出我所用的版本。


vmware.png

安装完VMware后就是安装ubuntu。先下载系统镜像ubuntu

ubuntu.png
1.2 安装ubuntu

接下来就是在vmware中安装ubuntu。步骤大家可以自己百度,这里就不再累述。但有一点要注意给ubuntu分配的空间一点要充足。我建议150G以上,否则到时候编译了一半,空间不足那就很尴尬了。我就吃过这个亏,所以这个坑大家尽量跳过。这里贴出我的配置:

ubuntu_set.png

以上安装完ubuntu后。我们启动ubuntu,开始安装必备的软件。

1.3 安装git
sudo apt-get install git

然后配置用户信息

$ git config [--global] user.name "[name]"
$ git config [--global] user.email "[email address]"

更多的操作可参考Git常用命令

1.4 安装openjdk

Ubuntu16.04的安装源已经默认没有openjdk了,所以要自己手动添加仓库

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

开始安装

sudo apt-get install openjdk-8-jdk 

由于这里我们是编译最新的android源码,所以安装的是jdk8。 如果是编译其他版本则,按照需要去安装对应的版本。

1.5 安装必须的依赖
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

这里我已亲测安装时没什么问题的。
到现在为止,我们的编译环境已经准备完毕了,接下来就是下载源码了

2 源码下载

由于android的源码很大,而且有些地方还需要翻墙。所以我们使用清华大学的镜像。详细步骤Android 镜像使用帮助有详细说明。这里我就简要写下步骤。

2.1 配置repo 工具:
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

这里最好将加入到环境变量中,这样以后每次启动都不用再设置PATH

vim ~/.bashrc
bashrc.png

在最后两行设置PATH。最后刷新。

source ~/.bashrc
2.2 下载初始化包

由于源码很大,直接下载可能中途会失败、或者很慢的情况,所以这里先下载初始化包。大概有30几个G

2.3 下载完后解压得到aosp文件夹
2.4 同步代码

所有代码都是从隐藏的 .repo 目录中 checkout 出来的,所以aosp解压后只有 .repo 目录。进入到aosp同步一下即可得到代码。

repo sync

3 编译

3.1 初始化编译环境

进入到源码根目录下

source build/envsetup.sh
3.2 选择编译选项
lunch aosp_arm64-eng

或者直接输入lunch。


142377-030890ab8be7bc46.jpg

然后选择自己想要的类型。这里我们就选择第一个aosp_arm-eng。

3.3 开始编译
make -j4

注意这里的-j4,要根据自己机器的cpu核心数来决定。我这里用的是4个线程。
接下来就进入到了编译过程。这将会是一个漫长的过程。根据你机器的配置所消耗的时间也不一定,而我这里花了接近1个小时40分钟(看来我的机器还是挺给力的,哈哈!)。当你看到最后一串绿色的#### build completed successfully **** ####说明你已经成功了

QQ截图20170929230721.png
3.4 启动模拟器

直接在当前终端输入

emulator
3.png QQ截图20170929231629.png

大功告成。

3.5 镜像文件

编译产生的文件就在 out目录下。而最终的三个镜像文件ramdisk.img,system.img,userdata.img以及它们对应的目录树root在
out/target/product/generic

三个镜像文件及其三个目录树之间的生成关系是我们进行ROM制作的基础

img.png
3.6清理编译生成的文件
make clobber

也就是删除了out目录以及下面的所有的文件。

上一篇下一篇

猜你喜欢

热点阅读