Windows 11 + VMware + Ubuntu 18.04 环境下的 Android 13 源码下载与编译实战指南
在当今移动开发领域,深入理解Android系统底层机制变得越来越重要。对于希望深入研究Android系统或需要进行定制化开发的工程师来说,获取并编译Android源码是必经之路。本文将详细介绍在Windows 11系统下,通过VMware虚拟机搭建Ubuntu 18.04环境,高效下载和编译Android 13源码的完整流程,特别针对国内开发者优化了镜像源配置方案。
1. 环境准备与硬件配置
搭建Android源码编译环境首先需要考虑硬件配置。不同于普通应用开发,Android源码编译对硬件资源有着较高要求。根据实际测试经验,以下是最佳硬件配置建议:
推荐配置:
- 内存:32GB及以上(最低16GB)
- 存储:1TB SSD(最低512GB)
- CPU:4核及以上,建议6核或8核处理器
为什么需要如此高的配置? Android 13源码完整下载后约占80GB空间,编译过程中会产生大量中间文件,整个编译过程需要至少200GB的临时空间。内存不足会导致编译速度极慢甚至失败。
硬件配置对比表:
| 组件 | 最低配置 | 推荐配置 | 理想配置 |
|---|---|---|---|
| 内存 | 16GB | 32GB | 64GB+ |
| 存储 | 512GB HDD | 1TB SSD | 2TB NVMe SSD |
| CPU | 4核 | 6核 | 8核+ |
提示:如果使用笔记本电脑,建议连接电源并设置为高性能模式,编译过程将持续数小时,消耗大量电力。
2. VMware与Ubuntu环境搭建
2.1 VMware安装与配置
首先需要下载并安装VMware Workstation Pro。目前最新稳定版本为VMware Workstation 16,安装过程相对简单:
- 从官网下载VMware Workstation安装包
- 运行安装程序,按向导完成安装
- 安装完成后,建议进行以下优化设置:
- 启用"硬件加速虚拟化"选项
- 调整内存分配策略为"优先锁定虚拟机内存"
- 开启"禁用内存页面修整"选项
2.2 Ubuntu 18.04安装
Android官方推荐使用Ubuntu 18.04 LTS作为编译环境。在VMware中安装Ubuntu的步骤如下:
# 创建新虚拟机时的重要参数设置
VMware配置建议:
- 磁盘空间:至少200GB(动态分配)
- 内存:至少8GB(推荐16GB)
- CPU核心:至少4个
- 网络适配器:桥接模式
安装完成后,建议立即执行系统更新:
sudo apt update && sudo apt upgrade -y
2.3 基础环境配置
为方便后续操作,建议设置root密码并切换到root用户:
sudo passwd root
su -
安装必要的基础工具:
apt install -y git curl vim openssh-server net-tools
3. 依赖安装与环境准备
3.1 安装编译依赖
Android源码编译需要大量开发工具和库文件支持。执行以下命令安装所有必要依赖:
apt-get install -y 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 python3
3.2 Python环境配置
Android 13要求使用Python 3,但部分工具仍可能调用python命令。我们需要确保系统正确配置:
# 检查Python版本
python3 --version
# 创建python软链接
update-alternatives --install /usr/bin/python python /usr/bin/python3 1
3.3 Java环境安装
Android 13需要Java 11开发环境:
apt-get install -y openjdk-11-jdk
# 验证安装
java -version
javac -version
4. 源码下载与配置
4.1 初始化repo工具
repo是Google开发的用于管理Android源码的工具。我们使用清华镜像源加速下载:
mkdir ~/bin
PATH=~/bin:$PATH
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo
chmod +x ~/bin/repo
4.2 创建源码目录
mkdir ~/aosp13
cd ~/aosp13
4.3 配置清华镜像源
为加速下载,我们需要配置repo使用清华镜像:
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'
4.4 初始化仓库
选择Android 13稳定分支进行初始化:
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-13.0.0_r7
常见问题解决:
-
SSL证书验证失败:
git config --global http.sslverify false -
Python命令找不到:
ln -sf /usr/bin/python3 /usr/bin/python
4.5 同步源码
开始同步源码,这个过程可能需要数小时:
repo sync -j8
注意:
-j8表示使用8个线程并行下载,可根据网络情况调整。清华源对并发连接数有限制,建议不要超过8。
5. 源码编译
5.1 初始化编译环境
source build/envsetup.sh
5.2 选择编译目标
lunch
在出现的菜单中选择适合的编译目标,如aosp_x86_64-eng用于x86_64架构的模拟器镜像。
5.3 开始编译
使用m命令开始编译,-j参数指定并行编译任务数:
m -j$(nproc)
编译时间参考:
- 16核32GB内存机器:约1.5-2小时
- 8核16GB内存机器:约3-4小时
- 4核8GB内存机器:可能超过6小时
5.4 编译问题排查
常见问题1:内存不足
Out of memory error
解决方案:
- 增加虚拟机内存分配
- 减少并行编译任务数:
m -j4 - 使用
ccache加速后续编译
常见问题2:Java版本冲突
Unsupported Java version
确保使用的是OpenJDK 11:
update-alternatives --config java
update-alternatives --config javac
6. 编译后操作
6.1 运行模拟器
编译完成后,可以启动模拟器测试:
emulator
6.2 生成系统镜像
编译生成的系统镜像位于:
out/target/product/<device>/
包含:
system.img:系统镜像ramdisk.img:ramdisk镜像userdata.img:用户数据镜像
6.3 增量编译
后续修改代码后,只需重新执行:
m -j$(nproc)
将只编译修改过的部分,大幅节省时间。
7. 高级技巧与优化
7.1 使用ccache加速编译
ccache可以缓存编译结果,显著加快后续编译速度:
export USE_CCACHE=1
export CCACHE_DIR=/path/to/ccache
prebuilts/misc/linux-x86/ccache/ccache -M 50G
7.2 模块化编译
当只需要编译特定模块时:
# 进入模块目录
cd packages/apps/Settings
# 编译当前模块
mm
7.3 多版本管理
可以初始化多个仓库分支,方便切换不同Android版本:
mkdir ~/aosp12
cd ~/aosp12
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-12.0.0_r32
repo sync
在实际项目中,我发现合理配置ccache可以将第二次编译时间缩短60%以上。对于频繁修改和测试的场景,建议分配至少50GB空间给ccache。另外,使用SSD存储比传统硬盘在编译速度上有显著提升,特别是在处理大量小文件时。
&spm=1001.2101.3001.5002&articleId=154977126&d=1&t=3&u=f48e9812d993468fbde9f23626bfc929)
1021

被折叠的 条评论
为什么被折叠?



