AOSP12源码编译及遇到的坑

前言

想进一步学习android,就需要去看源码,很早之前就下了源码,编了几次一直有问题就搁置。前段时间开始写博客,看了不少资料,也买了刘望舒大佬的三部曲,《Android进阶指北》第一章就是编译,所以将搁置的计划拾起来了。由于android 12去年才出,其他的文章基本都是Q的甚至更早的版本,12上还是有一些变化,遇到一些坑,所以打算整理一下。

一、环境准备

系统环境

1、ubuntu系统最好18以上(虚拟机也可以,笔者是双系统,感觉如果学源码的话,还是可以搞双系统玩一下)
2、磁盘越大越好,最好空闲300G+吧(我现在是300多一点,但是有ccache,还有编译的文件镜像等等,不排除我代码下的有问题)
3、JAVA开发环境,repo等
具体配置可以根据各种教程去配,跟着流程就没问题,由于笔者的环境是很早之前搞得,所以最新的一次没有额外配置,所以就不详细说了。可以参考
刘望舒大佬的教程1
官网教程

下载源码

源码下载,没有科学上网的的话,推荐使用清华镜像,推荐指定版本因为毕竟是学习的过程,不需要一直保持代码有多新,我用的是android-12.0.0_r32,不想折腾其实可以下11的。

repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-12.0.0_r32

// 同步源码树
repo sync

这块文档还是蛮多的,大差不差,可以直接看清华镜像中说明。

编译源码

刘望舒大佬的教程2
还是推荐看一下这个文档,并没有什么额外的东西。内容设计很多编译的相关知识,主要编译只需要执行

// 初始化环境,不执行之后的指令找不到,所以当指令找不到的话,先执行一下这个
source build/envsetup.sh
// 清除缓存
make clobber
// 选择编译版本
lunch aosp_x86-eng
// 编译,n代表线程数,一般是cpu核数的1-2倍之间,
// 我用一倍的几次成功了,用1.5倍编译到最后失败了 Q@Q,概率问题吧
make -jn
// 运行虚拟机
emulator

二、遇到的坑

2.1 ccache

看官方文档和比较旧的文档,会这么一条指令prebuilts/misc/darwin-x86/ccache/ccache -M 50G,执行以后找不到指令,文件下也不存在ccache文件夹。由于笔者电脑是陪我多年的笔记本,性能比较差,所以还是挺需要这个东西的,所以郁闷了很久。

问题原因

  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MGYH

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值