Ubuntu下编译AOSP步骤

什么是AOSP

AOSP是"Android Open Source Project"的缩写,即"Android开放源代码项目",由谷歌发起,此项目致力于Android的维护和更进一步的发展。

编译前准备

系统信息

本次编译在Ubuntu系统上进行,系统版本如下:

yubo@work-105:~$ cat /etc/issue
Ubuntu 18.04.2 LTS \n \l

由于AOSP源码巨大,请确保磁盘空间至少还有200GB,另外内存和CPU配置尽量高,网络环境尽可能好,否则编译前下载源码就需要好久。

安装软件

编译AOSP前你需要安装如下软件:

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 bison

另外,编译前需要安装repo工具,repo是Google开发的用于管理Android版本库的一个工具,可以通过如下方法安装:

  1. 创建bin目录,这一步需要确保当前用户的根目录下存在bin目录,可以用如下命令创建并将bin目录加入环境变量:
mkdir ~/bin
PATH=~/bin:$PATH
  1. 下载repo启动器并确保它可执行
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

上面的地址如果无法访问,可以试试清华的源:

curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo
chmod a+x ~/bin/repo
  1. 初始化repo

在当前用户的根目录下创建并进入AOSP目录:

mkdir ~/AOSP
cd AOSP

然后配置git用户名和邮箱:

git config --global user.name [Your Name]
git config --global user.email [[email protected]]

然后运行repo init初始化repo,清单文件指定了 Android 源代码中包含的各个代码库位于工作目录中的什么位置,这里我直接运行了下面的命令,指定了分支名:

repo init -u https://android.googlesource.com/platform/manifest -b android-9.0.0_r9

同样你也可以使用清华的源:

repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-9.0.0_r9

下载AOSP源码

通过下面的命令同步源码(在上面的~/bin/AOSP目录下执行):

repo sync

如果想加快同步源码的速度,可以加入下面的参数:

repo sync -c -j8

-c表示同步当前分支,-j8表示开启8个线程。

这一步根据你的网速来决定需要多久,一般是漫长的等待。

命令执行成功后如下图所示:

Ubuntu下编译AOSP步骤_第1张图片

编译源码

通过上面几个步骤,已经将源码下载下来,下面开始编译源码:

在源码所在目录执行下面的命令:

source build/envsetup.sh

该命令通过脚本初始化环境。

然后使用下面的命令设置构建目标:

// 这一步请注意,选择构建目标跟下文编译成功启动模拟器时要对应,否则会出错
lunch aosp_arm-eng

然后使用下面的命令开始编译:

make -j6

接下来就是漫长的等待…

编译成功时可以看到如下图所示的日志输出:

启动模拟器

启动模拟器使用如下几条命令:

source build/envsetup.sh
lunch  // 这条命令执行会让你选择一个选项,使用默认的即可
emulator // 这条命令会启动模拟器

然后你就会看到模拟器成功启动了,如下图:
Ubuntu下编译AOSP步骤_第2张图片
Ubuntu下编译AOSP步骤_第3张图片

大功告成,AOSP编译运行成功!

你可能感兴趣的:(Android,Android,AOSP,编译)