AOSP编译

文章讲述了在Ubuntu22.04系统上编译AOSP过程中遇到的内存不足和模拟器卡住或无法打开的问题。为了解决内存不足,可以通过增加虚拟内存,使用`swapoff-a`命令。对于模拟器问题,更新软件源、修改驱动以及检查log,甚至关闭ipv6能帮助解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AOSP编译

重新安装Ubuntu 22.04的系统,参考如下的教程,编译AOSP:

遇到的问题:
1.The minimum required amount of free memory is around 16GB
参考:

通过添加虚拟内存的方式解决
可通过top命令,实时查看内存的消耗情况,如果不够,继续加大虚拟内存
如果遇到dd: 打开'/swapfile' 失败: 文本文件忙的情况,可参考:

通过如下的命令,来解决:

sudo swapoff -a

2.emulator,模拟器卡住或者打不开
参考:

尝试更新软件源,修改驱动,并重启

在这里插入图片描述
另外启动模拟器的时候可以使用如下的命令,分析log,看问题出在哪里:

emulator -verbose -show-kernel

如本人在调试时,连接公司的wpa网络,发现log一直提示wifi相关的提示,发现关闭ubuntu系统的,ipv6后,暂时解决了此问题

### 在 Ubuntu 系统上编译 AOSP 9 的具体步骤 #### 准备工作 为了成功编译 AOSP 9,在开始之前需要满足一些基本的硬件和软件需求。以下是具体的准备事项: - **硬件要求** 至少需要 16 GB 的内存,推荐使用更大的内存(如 32 GB 或更高)。构建过程中还需要至少 400 GB 的磁盘空间[^4]。 - **操作系统** 推荐使用 Ubuntu LTS 版本,虽然引用中提到的是 Ubuntu 22.04 和 20.04,但由于 AOSP 9 是较旧的版本,建议使用兼容性更好的 Ubuntu 18.04 LTS[^5]。 --- #### 步骤 1: 更新系统 确保系统的包管理器是最新的,并升级已有的软件包: ```bash sudo apt update && sudo apt upgrade -y ``` 这一步非常重要,因为它能减少后续可能遇到的一些依赖冲突问题[^1]。 --- #### 步骤 2: 安装必要的工具与依赖项 AOSP 需要一系列开发工具和库的支持。可以通过以下命令安装这些依赖项: ```bash sudo apt install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 libncurses5-dev xz-utils libssl-dev python3 python3-pip python-setuptools unzip rsync subversion squashfs-tools bc kpartx debootstrap jq expect ccache -y ``` 如果目标设备需要调试功能,则还需额外安装 `adb` 工具: ```bash sudo add-apt-repository ppa:nilarimogard/webupd8 sudo apt update sudo apt install android-tools-adb ``` 完成安装后可通过 `adb version` 来确认是否正确安装[^3]。 --- #### 步骤 3: 创建并设置工作目录 创建一个新的文件夹用于存储 AOSP 源码,并切换到该目录下: ```bash mkdir ~/aosp-android-9 cd ~/aosp-android-9 ``` 初始化 Repo 工具以便于管理多个 Git 存储库: ```bash curl https://storage.googleapis.com/git-repo-downloads/repo > repo chmod a+x ./repo ``` --- #### 步骤 4: 下载 AOSP 源码 通过 Repo 初始化仓库并指定分支为 Android 9 (`pie`): ```bash ./repo init -u https://android.googlesource.com/platform/manifest -b pie ``` 随后同步源码至本地: ```bash ./repo sync --force-sync --no-tags --current-branch --jobs=8 ``` 注意:`--jobs=8` 参数表示同时开启 8 个线程加速下载速度,可以根据 CPU 核心数调整数值[^5]。 如果某些模块未能正常下载,可以单独重新尝试: ```bash ./repo sync <module_name> ``` --- #### 步骤 5: 设置构建环境 进入源码根目录并加载构建脚本: ```bash source build/envsetup.sh ``` 选择默认的目标产品配置(例如 Pixel 手机对应的 `aosp_arm64`): ```bash lunch aosp_arm64-eng ``` 其中 `-eng` 表示工程模式,适合开发者测试;生产环境中应改为 `-userdebug` 或 `-user`[^4]。 --- #### 步骤 6: 开始编译 启动实际的编译过程: ```bash make -j$(nproc) ``` 这里的参数 `-j$(nproc)` 动态计算核心数量以充分利用多核处理器性能。 完整编译时间取决于机器性能,通常需要几小时甚至更长时间。 --- #### 步骤 7: 启动模拟器或刷入真机 编译完成后可以在终端运行以下命令来启动内置的 Android 模拟器: ```bash emulator ``` 或者将生成的镜像刷入真实设备(需提前解锁 Bootloader 并连接 USB 调试): ```bash fastboot flashall -w ``` --- ### 注意事项 - 如果在同步阶段遇到网络问题,可以考虑更换国内镜像站点(如清华开源镜像站),替换 URL 即可。 - 对于初学者来说,可能会因为遗漏某步而导致失败,请严格按照顺序操作。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值