死磕Android_AOSP编译过程

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

1. 准备工做

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

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

2. 系统安装

若是你当前使用的系统已是mac OS或者是Ubuntu,那么能够跳过这一节.linux

系统安装以前须要准备Ubuntu系统镜像 我是下载的mint.由于我的缘由,以前用过mint一段时间,因此此次使用的是mint,其实和Ubuntu同样的.官方原话: Linux Mint 是一款基于 Ubuntu 与 Debian 开发的 Linux 操做系统发行,被不少爱好者誉为“最好的桌面应用系统”,就像是 Linux 世界中的 macOS,很是适合我的平常办公或开发电脑使用.android

mint下载地址git

我以前是用的Windows 10,因而我下载了mint以后开始用VirtualBox安装该Linux系统..这个没啥好说的,一路next,而后内存最好是4G,硬盘空间给它200G. 若是须要看教程能够参考这里.若是你对VMware比较喜欢,也能够用VMware安装虚拟机,安装过程是差很少的.bash

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

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

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

image

image

3. 开始下载AOSP

首先须要安装Git,由于源码是用Git管理的.url

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

感谢

相关文章
相关标签/搜索