2. 配置Java开发环境

任务目标

在AOSP源码编译环境中,正确配置Java开发环境是编译成功的前提。不同Android版本对JDK版本有严格要求:Android 7.0及以下需要OpenJDK 8,Android 8.0及以上需要OpenJDK 9+(实际编译通常使用OpenJDK 8或11)。本案例以Ubuntu 18.04 + AOSP Android 9.0为例,完成OpenJDK 8的安装、配置与验证。

环境依赖

  • Ubuntu 18.04 x86_64(或兼容版本)
  • 已安装git、curl等基础工具
  • 具备sudo权限

实现步骤与代码

1. 安装OpenJDK 8

Ubuntu 18.04默认源中不包含OpenJDK 8,需添加第三方源或直接下载安装。以下使用apt安装方式:

# 添加OpenJDK 8源(适用于Ubuntu 18.04)
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update

# 安装OpenJDK 8(包含JDK和JRE)
sudo apt-get install -y openjdk-8-jdk

# 验证安装版本
java -version
javac -version

预期输出(示例):

openjdk version "1.8.0_292"
OpenJDK Runtime Environment (build 1.8.0_292-8u292-b10-0ubuntu1~18.04)
OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)
javac 1.8.0_292

2. 配置JAVA_HOME环境变量

AOSP编译脚本通过JAVA_HOME定位JDK路径。OpenJDK 8默认安装路径为/usr/lib/jvm/java-8-openjdk-amd64,需将其写入环境变量:

# 编辑用户环境变量文件
echo 'export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc

# 使配置立即生效
source ~/.bashrc

# 验证JAVA_HOME
echo $JAVA_HOME
which java

预期输出:

/usr/lib/jvm/java-8-openjdk-amd64
/usr/lib/jvm/java-8-openjdk-amd64/bin/java

3. 验证AOSP编译环境兼容性

在AOSP源码根目录下执行以下命令,确认Java版本满足编译要求:

# 进入AOSP源码目录(假设已下载)
cd ~/aosp

# 加载编译环境(会检查Java版本)
source build/envsetup.sh

# 检查Java版本是否符合要求
java -version 2>&1 | head -n 1

若输出包含1.8.0,则Java环境配置正确,可继续执行lunch选择编译目标。

验证方法与判定标准

  • 版本验证:执行java -version和javac -version,输出必须为1.8.0_xxx格式,不能是OpenJDK 11或更高版本。
  • 路径验证:echo $JAVA_HOME必须输出/usr/lib/jvm/java-8-openjdk-amd64,且which java指向该路径下的可执行文件。
  • 编译环境验证:在AOSP根目录执行source build/envsetup.sh不报错,且java -version仍显示1.8.0,说明编译脚本能正确识别Java环境。

常见问题

  • 系统存在多个JDK版本:使用sudo update-alternatives --config java手动选择OpenJDK 8作为默认版本。
  • Android 8.0+编译报错:若目标AOSP版本要求OpenJDK 9+,需安装openjdk-11-jdk并相应修改JAVA_HOME路径为/usr/lib/jvm/java-11-openjdk-amd64。
  • ppa源添加失败:可改用直接下载方式,从https://adoptium.net/获取Temurin 8的tar包解压后手动配置JAVA_HOME。