美文网首页Android
死磕Android_AOSP编译过程

死磕Android_AOSP编译过程

作者: 潇风寒月 | 来源:发表于2019-06-12 22:59 被阅读0次

一直有个小心愿,想要了解以及调试Android源码。为了实现这个目标,我经历了种种坎坷,花了一个多周才搞定了。最近家里的电脑一直没怎么关机,一直在给我跑AOSP。公司最近在天天加班,所以一天只有一次试错的机会,出错了只能晚上回来继续解决问题。源码实在是太大了,我这个Android P的代码刚下载下来的时候差不多有60G左右吧。

1. 准备工作

  1. 一块大一点儿的硬盘,至少得有200G剩余空间.
  2. CPU尽量好点的,这样编译快.
  3. 网速越快越好,不然你想想60G啊,要下载到什么时候...
  4. 系统最好是Ubuntu或者mac OS,官方是这样推荐的.

为此我还专门买了一块2T的硬盘,学习得舍得花钱.我的那个CPU不是很好,编译特别特别慢,每次编译都是一个整整一个晚上.网速有多快搞多快.

2. 系统安装

如果你当前使用的系统已经是mac OS或者是Ubuntu,那么可以跳过这一节.

系统安装之前需要准备Ubuntu系统镜像 我是下载的mint.因为个人原因,之前用过mint一段时间,所以这次使用的是mint,其实和Ubuntu一样的.官方原话: Linux Mint 是一款基于 Ubuntu 与 Debian 开发的 Linux 操作系统发行,被很多爱好者誉为“最好的桌面应用系统”,就像是 Linux 世界中的 macOS,非常适合个人日常办公或开发电脑使用.

mint下载地址

我之前是用的Windows 10,于是我下载了mint之后开始用VirtualBox安装该Linux系统..这个没啥好说的,一路next,然后内存最好是4G,硬盘空间给它200G. 如果需要看教程可以参考这里.如果你对VMware比较喜欢,也可以用VMware安装虚拟机,安装过程是差不多的.

我是安装的真机....没错是那种真实的系统,我的Windows 10是在原来的那块SSD上,新的Linux系统是安装在新的2T机械硬盘上,我以为安装之后开机时引导会有问题,但是还好,居然没出问题,哈哈哈哈哈.

安装Linux的时候,需要先下载ultraiso软件,制作U盘启动盘.制作过程参考这里.写入方式记得选"RAW".然后重启电脑,U盘设置为第一启动项.之后的安装过程就是一路next,记得选择和Windows并存.最好是别切换语言,就用English,这样的条件下系统默认创建的文件夹是英文的,用着舒服.详细安装过程看这里

安装完系统之后,进入系统设置,可以看到底部有一个软件源,进入之后将源换成中国的.

image image

3. 开始下载AOSP

首先需要安装Git,因为源码是用Git管理的.

sudo apt-get install git

接下来创建一个bin文件夹,并加入到PATH中,有点像Windows的环境变量.

mkdir ~/bin
PATH=~/bin:$PATH

安装curl下载的库:

sudo apt-get install curl

下载repo并设置权限:

curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo
chmod a+x ~/bin/repo

然后找个空旷的地方,创建一个AOSP文件夹,待会儿需要把源码下载到这里:

然后运行下面这句话,添加源.这里使用的是清华的源.

export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'

然后初始化Git,邮箱和姓名:

git config --global user.email "xxx@gmail.com"
git config --global user.name "xxx"

初始化仓库:

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest

初始化并指定版本:

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-9.0.0_r8

开始同步源码:

repo sync

等待源码下载完成后,注意,这个过程千万不能断网,也不能关机,也不能让电脑睡眠啥的.下载源码很费时间,,,,

4. 开始编译AOSP

首先需要安装jdk

sudo apt-get update
sudo apt-get install openjdk-8-jdk

然后进入AOSP文件夹,

source build/envsetup.sh
// 编译前删除build文件夹
make clobber

这里我选择编译开发工程师的版本,可以方便debug

lunch aosp_x86-eng

然后开始编译

make -j6

直到看到下面的log

image

我这里是下载了10个多小时.终于下载好了......对于电脑来说,又是一个不眠之夜

运行模拟器
在编译完成之后,就可以通过以下命令运行Android虚拟机了,命令如下:

source build/envsetup.sh
lunch 5
emulator

如果是在编译完后运行虚拟机,由于之前已经执行过source和lunch命令了,可以直接运行:

emulator

最后的最后,,我看到了胜利的曙光

image

感谢

相关文章

  • 死磕Android_AOSP编译过程

    一直有个小心愿,想要了解以及调试Android源码。为了实现这个目标,我经历了种种坎坷,花了一个多周才搞定了。最近...

  • 死磕

    学习,做事,人生,都是一个死磕的过程

  • “死磕”与学习

    也说“死磕” 死磕到底,死磕精神,死磕侠。互联网的发达,孕育了越来越多的网络词汇,“死磕”现在出现的频率颇高。 那...

  • 共读对生命说是

    和痛苦周旋。 这篇我认为就是我所说的,如果还是不能放手,就对这件事的前前后后想想清楚,死磕,在死磕的过程中...

  • 这些“死磕成本”的店,却因高体验卖出了惊人销量

    有些店死磕服务,有些死磕产品,还有些死磕成本。可有些品牌除了这些,还死磕别的... 无论何时,店铺的人工成本、租金...

  • 死磕与磕死

    前天晚上,打开百度网盘,准备听梁冬的节目睡睡平安,突然发现所有的音频转哪转哪,就是不出声音。到底哪里出了毛病?听听...

  • 磕,死磕

    疫情期间,你做的最多的是什么? 我啊~大概是反省吧,自省。 我发现反省是扇隐秘的门,一旦打开,就像探险一样,不停的...

  • 保持高质量输出的五个关键词

    一、死磕 死磕的意思是保持持续不断的输出,在我们写作的过程当中偶尔会有一些阻碍我们写作的小插曲,比如说今天很累,不...

  • 死磕别人,不如死磕自己

    【死磕别人,不如死磕自己。】有朋友是干销售的,任凭那股子死磕别人的毅力,一切都是那么不可控,最后只剩毅力。与其死磕...

  • 微信公众号运营如何让你的文章阅读量暴涨?

    对于绝大多少微信公众号运营编辑来说,每天做的基本就是死磕找文,然后死磕标题,接着死磕配图,再死磕排版,文章发出去之...

网友评论

    本文标题:死磕Android_AOSP编译过程

    本文链接:https://www.haomeiwen.com/subject/ovkdfctx.html