
编译android源代码(aosp)
增加 Swap 内存:由于系统内存仅 8GB,且运行于虚拟机内,我额外设置了 16GB 的 Swap 内存,使总可用内存变为 24GB。 查看 ccache 状态:
发布日期:2021-05-15 10:40:31
浏览次数:7
分类:精选文章
本文共 1782 字,大约阅读时间需要 5 分钟。
安卓源码编 build 配置与问题解决
步骤1:下载源码并配置环境
按照官方文档,首先需要下载最新的安卓源码。在我的情况下,源码 archive 在 /home/koder/android-source-20151229
。配置方面,我选择了 Ubuntu LTS 64 位系统,符合硬件配置要求。
1. 系统要求
- 存储空间:源码体积约为 30-40GB,build完成后还需至少 100GB 的可用空间。
- 系统版本:推荐使用 Ubuntu LTS 14.04 64 位,与官方文档一致。
- 硬件注意事项:对于内存不足的问题,请参考后续内容,以下是我实现解决方案。
步骤2:执行 build 工作
在成功配置环境后,使用如下命令启动编 build 工作:
./prebuilts/android-emulator/emulator -sysdir $ANDROID_PRODUCT_OUT -system $ANDROID_PRODUCT_OUT/system.img -ramdisk $ANDROID_PRODUCT_OUT/ramdisk.img -data $ANDROID_PRODUCT_OUT/userdata.img -kernel /home/koder/android-source-20151229/prebuilts/qemu-arm/kernel/arm/kernel-qemu-armv7 -skin /home/koder/android-source-20151229/sdk/emulator/skins -memory 2048 -partition-size 2048 -skin WVGA800 -scale 0.7
环境变量设置
在运行 above 指令前,请确保以下环境变量已正确设置:
export JAVA_HOME="/home/koder/Documents/jdk1.8.0_65"export PATH="$JAVA_HOME/bin:$PATH"export CLASSPATH=".:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar"export ANDROID_HOME="/home/koder/Documents/android-sdk-linux"export ANDROID_BUILD_OUT_HOST="/home/koder/android-source-20151229/out/host/linux-x86/bin"export ANDROID_PRODUCT_OUT="/home/koder/android-source-20151229/out/target/product/generic"export PATH="$ANDROID_HOME:$ANDROID_BUILD_OUT_HOST:$PATH"export export JAVA_HOME PATH CLASSPATH ANDROID_PRODUCT_OUT
内存不足问题解决方案
在编 build 过程中,可能会遇到内存不足的问题。以下是我采取的解决方法:
操作步骤:
sudo suswapsize=24*1024dd if=/dev/zero of=/extra/swap0 bs=1M count=$((swapsize/1024))chmod 600 /extra/swap0vi /etc/fstab
Swap 内存配置示例
swap /extra/swap0 none swap defaults 0 0
通过增加 Swap 内存,我成功解决了内存不足的问题,允许 build 完成。
其他常见问题
watch -n1 -d prebuilts/misc/linux-x86/ccache/ccache -s
- 内存不足时的解决方案已如上所述。建议硬件配置至少 16GB 的内存,以支持 build 过程所需的资源。
通过以上方法,我顺利完成了编 build 工作,并为后续开发奠定了坚实基础。
发表评论
最新留言
不错!
[***.144.177.141]2025年04月14日 01时01分14秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
vue(渐进式前端框架)
2019-03-11
权值初始化和与损失函数
2019-03-11
案例讨论
2019-03-11
算法的伪码表示
2019-03-11
递推方程与算法分析
2019-03-11
主定理的应用
2019-03-11
最优装载问题
2019-03-11
课程总结
2019-03-11
CMake的主体框架
2019-03-11
微积分(三)
2019-03-11
软件工程应用
2019-03-11
数据科学
2019-03-11
函数与高级变量
2019-03-11
键盘事件
2019-03-11
注册页面案例
2019-03-11
np.bincount(x)的简单解释
2019-03-11
LeetCode Top-100 T22-括号生成
2019-03-11
vscode设置eslint保存文件时自动修复eslint错误
2019-03-11
JAVA 多线程
2019-03-11
Java的 arraylist类【具体案例】
2019-03-11