什么是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版本库的一个工具,可以通过如下方法安装:

  1. 创建bin目录,这一步需要确保当前用户的根目录下存在bin目录,可以用如下命令创建并将bin目录加入环境变量:
mkdir ~/binPATH=~/bin:$PATH
  1. 下载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
  1. 初始化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编译运行成功!

更多相关文章

  1. Android(安卓)SDK中的必会工具-android
  2. Android(安卓)build.prop生成过程
  3. android image 压缩和解压
  4. Android(安卓)Makefile 具体是 如何识别 TARGET_PRODUCT 变量
  5. Android命令行启动程序-am命令的使用-纠正网上大部分资料的错误
  6. Android(安卓)内核源代码交叉编译
  7. Android(安卓)模拟器的认识
  8. Compile a native C Android(安卓)application
  9. 在 Android(安卓)模拟器中安装 busybox

随机推荐

  1. android修改进入工程模式
  2. Android kernel printk打印级别
  3. android manifest相关属性
  4. Android中的Handler的使用
  5. Android获取基站坐标代码
  6. android 捕捉app错误信息
  7. 简单的程序底部Tab例子
  8. Android for BlueStacks Beta
  9. android xml文件操作
  10. Android实现刮刮卡抽奖(上)