如果您使用的是搭建好编译环境的 Ubuntu18.04 虚拟机镜像,在网盘资料“iTOP-3568 开发板\02_iTOP-3568 开发资料汇总(不含光盘资料)\02iTOP-3568 开发板搭建好编译环境的 Ubuntu18.04 虚拟机镜像”目录下,安装 jdk 和 android 源码依赖已经安装好了,不必重复安装。请根据您的电脑配置,参考本章节进行灵活配置。

1 电脑配置要求

编译 Android 11 对机器的配置要求较高:

1. 64 位 CPU

2. 16GB 物理内存+交换内存

1)Ubuntu 确认 cpu 位数,我们输入以下命令

getconf LONG_BIT

ubuntu的处理器架构 ubuntu处理器配置_物理内存


如上图所示,可以发现 Ubuntu18.04 是 64 位 CPU。

2 修改物理内存

打开虚拟机,如下图。单击红色框中的“虚拟机”。如下图所示:

ubuntu的处理器架构 ubuntu处理器配置_Java_02


然后点击“设置”弹出虚拟机的设置界面,如下图所示:

ubuntu的处理器架构 ubuntu处理器配置_java_03


点击“内存”选项卡,然后设定物理内存。配置内存,需要根据用户实际情况进行配置。下面这台机

器中,显示最多可以设置 32G,这里分配 16G 的内存,内存必须为 4 的倍数(编译 Android 11 尽量多分

配内存)。如果大家的物理内存不够,可以参考下个小节分配交换内存。

3 增加交换内存

接下来增加交换内存。配置交换内存,需要用户根据自己的实际情况进行配置。这里举例分配 5G 交换

内存。

在开始之前,使用命令检查一下您的 ubuntu 的 swap 分区。

sudo swapon --show

通过以下命令创建一个用于 swap 的文件

sudo fallocate -l 5G /swapfile

注意,此时可能会显示

fallocate:fallocate failed:Text file busy

此时,执行以下命令:

sudo swapoff -a

然后再执行以下命令:

sudo fallocate -l 5G /swapfile

执行以下命令为 swapfile 文件设置正确的权限:

sudo chmod 600 /swapfile

使用 mkswap 实用程序在文件上设置 Linux SWAP 区域:

sudo mkswap /swapfile

使用以下命令激活 swap 文件:

sudo swapon /swapfile

要让创建好的 swap 分区永久生效,可以将 swapfile 路径内容写入到 /etc/fstab 文件当中:

ubuntu的处理器架构 ubuntu处理器配置_ubuntu的处理器架构_04


sudo vim /etc/fstab

在/etc/fstab 文件最后添加如下内容:

/swapfile swap swap defaults 0 0

ubuntu的处理器架构 ubuntu处理器配置_Java_05


使用 swapon 或 free 命令验证 SWAP 是否处于活动状态,如下所示:

sudo swapon --show

sudo free -h

ubuntu的处理器架构 ubuntu处理器配置_Java_06


4 安装 JDK

1)Android11 系统编译依赖于 JAVA 8。编译 Android 之前需安装 OpenJDK。安装命令如下:

sudo apt-get install openjdk-8-jdk

执行结果,如下图:

ubuntu的处理器架构 ubuntu处理器配置_ubuntu的处理器架构_07


2)如果您之前安装过其他版本的 JDK,需要进行版本切换。如果没有安装过,可以跳过此步骤,查看目前

已经安装在系统里的 Java 版本,使用以下命令:

update-java-alternatives -l

ubuntu的处理器架构 ubuntu处理器配置_java_08


查看相应的 jdk(java javac 等)是否在 ubuntu 的 jdk 菜单里,查看切换命令 jdk 的命令,如下所示:

sudo update-alternatives --config java

输入 java8 对应的选择项,按回车进行确认。

3) 配置 Java 环境变量,Android11 源码里带有 Open JDK8 的配置脚本,在 Android11 源码根目录下,命名为

javaenv.sh。可直接执行以下命令,配置 JDK1.8

source javaenv.sh

ubuntu的处理器架构 ubuntu处理器配置_Java_09


输入以下命令查看 java 的版本,如果 Java 版本是 1.8 版本,接下来便可以编译 Android11 源码。

ubuntu的处理器架构 ubuntu处理器配置_java_10