Ubuntu下编译AOSP步骤
16lz
2021-12-04
什么是AOSP
AOSP是"Android Open Source Project"的缩写,即"Android开放源代码项目",由谷歌发起,此项目致力于Android的维护和更进一步的发展。
编译前准备
系统信息
本次编译在Ubuntu系统上进行,系统版本如下:
yubo@work-105:~$ cat /etc/issueUbuntu 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-devsudo 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 m4sudo apt-get install lib32z-dev ccache bison
另外,编译前需要安装repo工具,repo是Google开发的用于管理Android版本库的一个工具,可以通过如下方法安装:
- 创建bin目录,这一步需要确保当前用户的根目录下存在bin目录,可以用如下命令创建并将bin目录加入环境变量:
mkdir ~/binPATH=~/bin:$PATH
- 下载repo启动器并确保它可执行
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repochmod a+x ~/bin/repo
上面的地址如果无法访问,可以试试清华的源:
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repochmod a+x ~/bin/repo
- 初始化repo
在当前用户的根目录下创建并进入AOSP目录:
mkdir ~/AOSPcd 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.shlunch // 这条命令执行会让你选择一个选项,使用默认的即可emulator // 这条命令会启动模拟器
然后你就会看到模拟器成功启动了,如下图:
大功告成,AOSP编译运行成功!
更多相关文章
- Android(安卓)SDK中的必会工具-android
- Android(安卓)build.prop生成过程
- android image 压缩和解压
- Android(安卓)Makefile 具体是 如何识别 TARGET_PRODUCT 变量
- Android命令行启动程序-am命令的使用-纠正网上大部分资料的错误
- Android(安卓)内核源代码交叉编译
- Android(安卓)模拟器的认识
- Compile a native C Android(安卓)application
- 在 Android(安卓)模拟器中安装 busybox