AOSP Linux环境搭建与高效编译实战指南 📅 2026/7/15 1:14:45 1. 环境准备与依赖安装搭建AOSP编译环境的第一步是准备合适的Linux系统和安装必要的依赖包。我推荐使用Ubuntu 18.04或更高版本这是Google官方推荐的开发环境。实测在Ubuntu 20.04 LTS上编译Android 13可以顺利完成。系统要求至少16GB内存32GB以上更佳250GB以上可用磁盘空间SSD能显著提升编译速度稳定的网络连接源码下载约50GB安装基础依赖包的命令如下sudo apt-get update sudo apt-get install -y git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig python3Java环境配置 不同Android版本需要不同的JDK版本Android 7.0-8.0OpenJDK 8Android 9.0及以上OpenJDK 11安装OpenJDK 11的命令sudo apt-get install openjdk-11-jdk交换空间优化 编译过程内存消耗巨大建议配置8GB以上的交换空间sudo fallocate -l 8G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile echo /swapfile none swap sw 0 0 | sudo tee -a /etc/fstab2. 源码下载与repo工具配置配置Git身份git config --global user.name Your Name git config --global user.email youexample.com安装repo工具mkdir ~/bin PATH~/bin:$PATH curl https://storage.googleapis.com/git-repo-downloads/repo ~/bin/repo chmod ax ~/bin/repo国内镜像源配置大幅提升下载速度 推荐使用清华源或中科大源修改repo的下载源export REPO_URLhttps://mirrors.tuna.tsinghua.edu.cn/git/git-repo初始化代码仓库 以Android 13.0.0_r43为例mkdir aosp cd aosp repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-13.0.0_r43高效同步技巧使用-j参数并行下载建议4-8个线程添加-c参数只同步当前分支使用--no-tags避免下载不必要的标签完整同步命令repo sync -c -j8 --no-tags --optimized-fetch --prune如果同步中断可以重复执行上述命令继续下载。首次完整同步可能需要2-6小时取决于网络状况。3. 编译配置与优化环境初始化source build/envsetup.sh选择编译目标手机模拟器lunch sdk_phone_x86_64车载系统lunch sdk_car_x86_64真机编译需要选择对应设备代号ccache配置加速后续编译 在~/.bashrc中添加export USE_CCACHE1 export CCACHE_DIR/path/to/ccache prebuilts/misc/linux-x86/ccache/ccache -M 50G并行编译设置make -j$(nproc)建议线程数 CPU核心数 × 1.5例如8核CPU使用12线程常见编译目标make完整编译make bootimage仅编译内核make systemimage仅编译系统镜像mm编译当前目录模块mmm path/to/module编译指定路径模块4. 常见问题解决方案内存不足错误FAILED: out/soong/build.ninja Killed (signal 9)解决方案增加交换空间见第1章减少编译线程数make -j4修改JVM堆大小export JACK_SERVER_VM_ARGUMENTS-Dfile.encodingUTF-8 -XX:TieredCompilation -Xmx8g分区空间不足Not enough space on device for partition vendor修改设备配置文件vim device/generic/goldfish/64bitonly/product/sdk_phone64_x86_64.mk增大BOARD_EMULATOR_DYNAMIC_PARTITIONS_SIZE值模拟器KVM加速问题CPU acceleration status: This user doesnt have permissions to use KVM解决方案sudo apt-get install qemu-kvm sudo usermod -aG kvm $USER单模块编译后部署 以修改SystemUI为例mmm frameworks/base/packages/SystemUI adb push out/target/product/emulator_x86_64/system_ext/priv-app/SystemUI/SystemUI.apk /system_ext/priv-app/SystemUI/ adb reboot5. 高级技巧与实用工具增量编译技巧使用ccache缓存中间文件只编译修改的模块生成补丁文件git diff mychange.patch git apply mychange.patch版本切换 查看可用分支cd .repo/manifests git branch -a切换到Android 14repo init -b android-14.0.0_r7 repo syncAndroid Studio导入生成IDE配置文件make idegen development/tools/idegen/idegen.sh用Android Studio打开android.ipr文件车载系统特殊配置 多屏模拟器启动命令lunch sdk_car_md_x86_64 emulator -feature -CarMultiDisplay编译时间统计export BUILD_START$(date %s) make -j16 echo Build time: $(($(date %s) - $BUILD_START)) seconds通过以上步骤你应该已经成功搭建起完整的AOSP编译环境。在实际开发中建议首次编译选择模拟器目标成功后再尝试真机编译。记得定期执行repo sync保持代码更新遇到编译错误时先检查是否是代码同步不完整导致。