Ubuntu下编译AOSP步骤
Posted yuxiyu!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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版本库的一个工具,可以通过如下方法安装:
- 创建bin目录,这一步需要确保当前用户的根目录下存在bin目录,可以用如下命令创建并将bin目录加入环境变量:
mkdir ~/bin
PATH=~/bin:$PATH
- 下载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
- 初始化repo
在当前用户的根目录下创建并进入AOSP目录:
mkdir ~/AOSP
cd AOSP
然后配置git用户名和邮箱:
git config --global user.name [Your Name]
git config --global user.email [you@example.com]
然后运行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个线程。
这一步根据你的网速来决定需要多久,一般是漫长的等待。
命令执行成功后如下图所示:
编译源码
通过上面几个步骤,已经将源码下载下来,下面开始编译源码:
在源码所在目录执行下面的命令:
source build/envsetup.sh
该命令通过脚本初始化环境。
然后使用下面的命令设置构建目标:
// 这一步请注意,选择构建目标跟下文编译成功启动模拟器时要对应,否则会出错
lunch aosp_arm-eng
然后使用下面的命令开始编译:
make -j6
接下来就是漫长的等待…
编译成功时可以看到如下图所示的日志输出:
启动模拟器
启动模拟器使用如下几条命令:
source build/envsetup.sh
lunch // 这条命令执行会让你选择一个选项,使用默认的即可
emulator // 这条命令会启动模拟器
然后你就会看到模拟器成功启动了,如下图:
大功告成,AOSP编译运行成功!
以上是关于Ubuntu下编译AOSP步骤的主要内容,如果未能解决你的问题,请参考以下文章