过年的时候把自己的旧的联想y480扔给我爸去使用了,最主要是带两个电脑有点重,而且使用windows时,我就不能控制住我自己,一直LOL。但是适当的游戏还是可以的,于是把自己的新的MSI装了个双系统,装双系统的时候还是有点曲折的。额,扯远了,因为一直要在
Ubuntu
上编译Android
源码,每次都要去安卓源码去下载源码,并且按照教程进行编译。不爽,因此今天在这里记录一下操作,方便自己以后如果又重装系统时编译Android
讲道理Android
源码下载有两种方式:
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY
repo init -u https://android.googlesource.com/platform/manifest
这样就能开始下载最新的Android源码清单了,如果要下载指定版本的Android
源码,可以进行如下操作:
repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
具体的版本不仅和Android
系统有关还和google亲儿子系列的型号有关:
上图给出了部分Android
源码版本。当清单文件下载完成后,使用:
repo sync
就可以同步Android源码了。这时候需要VPN一直挂着,还不一定成功。
之前还不知道有镜像源这种东西,这个名词还是在尝试使用
openSUSE
的时候,因为不使用镜像源,openSUSE上的软件都基本无法下载下来。于是就脑洞大开,Android
源码会不会也有镜像源了,google了一把,让我找到了。
如何使用该镜像源,官网上说得很清楚了,但是为了防止还要跳转,我在这里也记录下来:
之前的步骤和从官网下载的过程是一致的:
下载repo
工具
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
这个可以不要。
接下来就可以不同了,镜像站为我们打好了源码的tar
压缩包,只要下载完该压缩包,然后进入解压后的文件,使用repo sync
就可以了:
wget https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar # 下载初始化包
tar xf aosp-latest.tar
cd AOSP # 解压得到的 AOSP 工程目录
# 这时 ls 的话什么也看不到,因为只有一个隐藏的 .repo 目录
repo sync # 正常同步一遍即可得到完整目录
# 或 repo sync -l 仅checkout代码
我们也可以按照官网的方式下载:
mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-4.0.1_r1
repo sync
但是个人推荐使用压缩包的方式,下载的压缩包大概20G左右。
在编译前需要先把环境配置好,我使用的是Ubuntu 16.04
,Ubuntu 14.04
的操作是一致的。
首先Git
我们需要安装吧?
sudo apt install git
在官网上说Android
源码需要使用openjdk
编译,因此安装openjdk
sudo apt update
sudo apt install openjdk-8-jdk
接下来需要安装各种编译环境了(没有看到Ubuntu16.04的编译环境,但是有Ubuntu14.04的):
sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \
libgl1-mesa-dev libxml2-utils xsltproc unzip
在这里我们就使用Ubuntu14.04
的环境(关于 apt-get 和apt 实际上是一致的,在Ubuntu16.04 上推荐使用apt,但是apt-get还是能用的)
然后就是进入我们刚才同步完成的aosp
source build/envsetup.sh
lunch full-eng
make -j8
接下来的时间可以去睡一觉了,我的MSI笔记本编译了近两个小时。