Android源代码编译笔记(支持5.x及以上版本) - Linux篇

本文记录了在Linux环境下编译Android源代码的过程,包括系统与硬件配置、优化措施、软件包安装、源代码下载与编译等步骤。通过设置国内镜像源和调整编译环境,解决了内存不足、多线程编译失败等问题。文中还提供了遇到的错误解决方案,如Jack内存溢出和特定编译错误的修复方法。
摘要由CSDN通过智能技术生成

2016/10/21
中科大负责镜像的同学回复说问题已解决。

2016/10/11
关于AOSP的镜像,中科大的目前不能正常使用。
可以暂时使用清华的源。

这是之前的笔记,主要记录了如何搭建Android源代码编译环境进行编译。里边有一些优化和问题的记录,可能会帮助大家更快地编译出来自己的Android系统。

系统与硬件

为了方便,我使用了VMWare虚拟机搭载Ubuntu 14.04作为我的操作系统。因为虚拟机确实比较方便,在这个硬盘便宜的时代,多占一些空间还是问题不大的。而且可以方便我们来回移动虚拟机,并且虚拟机文件在Windows系统和Mac OSX系统上都可以比较良好的运行。(Windows上用VMWare Workstation,Mac OSX上用VMWare Fusion,一家公司的产品,虚拟机文件兼容性没得说。)

虚拟机的硬盘空间我分配了上限120G(现在发现勉强够用,如果开ccache就有点够呛了),大家可以适当调大些。
内存根据你的实际情况,越大越好,因为在编译的后期很有可能会出现内存不足导致的编译失败。我分配了10G物理内存出来。
CPU核心也是看你的物理机的CPU,后边的”make -jN”命令里边的N和你的CPU核心数(总线程数)直接相关。

可以优化的地方

备份不同阶段的虚拟机

在某篇文章中看到这么一句话,”大家编译的时候总会遇到这样那样的问题,而且每次编译遇到的问题还不一样”。对这一点深有体会。所以我们可以在不同的阶段复制一份虚拟机文件作为备份,以后你想回到哪一个阶段都比较方便(或者你也可以把任何一个阶段的虚拟机分享给别人)。

为此,我专门买了一个大的移动硬盘存储了多份虚拟机文件。我备份了下面的几个阶段:

  1. 刚装好Ubuntu操作系统的(这个时候的系统文件最小,4-5G)
  2. 安装好安卓编译环境所需要的各种软件包并且代码下载完成(体积陡然变成40+G了)
  3. 编译好源代码的(我编译的是5.1.1,此时体积编程100+G了,还没有开ccache)
  4. …(个人喜好,可以备份任意阶段)

我并没有使用VM的快照功能,因为在操作虚拟机的时候都是直接将虚拟机文件复制到电脑的主硬盘上进行的,因为是SSD所以速度快一些,但是容量有限,所以能省则省。对于动辄几十G的操作变化来说,还是不要用快照了。

Ubuntu的源设置为中国

将Software&Updates的服务器切换到中国,我这里选择的是163

使用AOSP的国内镜像

网上找了一圈,发现了几个国内的镜像

这3个选择哪个呢?
东软的帮助里边只有SDK代理的配置,而没有AOSP的配置。
清华大学的同步源使用的是https协议,限制速度了,同步比较慢。
对比起来,中科大的源,速度较快,能达到5M+/S左右。下载源代码大概花了1个多小时,比Google源快太多了。

现在已经限制速度了,最快600K+/S左右

安装软件包

安装JDK

不同的分支需要不同的Java版本来进行编译

分支 Java版本
Master分支 OpenJDK 8
5.x - 6.0分支 OpenJDK 7
2.3.x - 4.4.x Java JDK 6

这里我下载的是5.1.1版本的源代码,需要安装OpenJDK 7,安装指令如下

$ sudo apt-get install openjdk-7-jdk

如果你要下载Master分支的源代码,则需要安装OpenJDK 8,安装指令如下(推荐16.04)

$ sudo apt-get update
$ sudo apt-get install openjdk-8-jdk

14.04安装OpenJDK 8比较麻烦,具体参考For Ubuntu LTS 14.04

安装必要的软件包

Ubuntu 14.04需要的软件包如下

$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
  zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \
  lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \
  libgl1-mesa-dev libxml2-utils xsltproc unzip

配置USB访问

指令如下


                
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值