Ubuntu 18.04下Android源码的下载及编译

如何使用VMware Workstation 16 Player安装ubuntu18.04请参考《使用VMware Workstation 16 Player安装ubuntu18.04

本文主要用于记录Android源码下载及编译的步骤和遇到的问题

安装git和repo并配置

安装git:

sudo apt-get install git

配置git的user.name和user.email:

git config --global user.name "your name"
git config --global user.email "XXX@XXX.com"

配置repo:

git clone https://aosp.tuna.tsinghua.edu.cn/git-repo/
chmod a+x git-repo/repo

使用一下命令添加PATH环境变量

vim /etc/profile

添加repo(路径目录如:~/git-repo/repo)到PATH环境变量

export PATH=~/git-repo:$PATH

打开~/git-repo/repo文件,将REPO_URL替换为清华镜像地址,以避免下载android源码时可能出现的无法连接到 gerrit.googlesource.com问题

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

对于一些使用命令不熟悉的小伙伴说一说这一步的具体操作:

vim /git-repo/repo

如果提示vim没有安装就根据提示安装即可:

sudo apt-get install vim

repo文件中的内容还是挺多的,所以这里说一下vim中如何搜索并修改

在命令模式下:

  1. 输入 /REPO_URL 或者 ?REPO_URL

  2. 按下ESC

  3. 通过 N / n 搜索

  4. 找到需要修改的地方,按下 i 进入编辑模式修改后

  5. 按下ESC

  6. 输入 :wq 保存修改并退出

其中第三步的 N / n 分别为 向上查找向下查找

修改之后应为这样:

在这里插入图片描述

下载Android源码

创建一个存放源码的目录,比如我的放在~/Android/source路径下的,然后cd到对应的路径下执行下面命令

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

执行如下命令可以查看可以下载的android源码分支,目前我看到的已经可以获取android-12.x的分支了

cd .repo/manifests.git/
git branch -a

这里同步android-12.0.0_r32分支并拉取对应分支源码

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-12.0.0_r32
repo sync

小插曲:这里有点记不住了,好像在sync的时候,会报请使用python2.X的一个错误,这里需要修改python的默认指向路径(默认是安装了python3.X的版本),不记得具体是哪里了,反正报这个错就按这个办法解决就行

修改python的默认版本(python2和python3切换)

将系统的默认python版本由python2修改为python3.(Python3修改为python2类似)

echo alias python=python3 >> ~/.bashrc

同一个大的python版本号下修改小的版本。示例:python3的默认版本由3.5改为3.6

echo alias python3=python3.6 >> ~/.bashrc

修改完了之后,更新以下!

source ~/.bashrc

修改系统默认python的路径

删除原来的python链接文件

sudo rm /usr/bin/python

建立新的python链接指向

#此处示例为:将python3.5建立为新的python链接指向
sudo ln -s /usr/bin/python3.5 /usr/bin/python

把路径/usr/bin/加入环境变量PATH中

PATH=/usr/bin:$PATH

修改完成

然后就是漫长的等待过程,如果期间发生错误了,可以重新执行repo sync 命令即可,可能需要用上几个小时的时间

在这期间我们来配置Ubuntu 18.04编译环境

配置Ubuntu 18.04编译环境

配置java8

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

使用 java -version 检查是否安装成功,需要有openjdk提示时

在这里插入图片描述

配置在ubantu 18.04中编译android源码需要的一些依赖,这些依赖包在ubantu 16.04中编译android源码时也是需要的

sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib
sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386
sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev
sudo apt-get install git-core gnupg flex bison gperf build-essential  
sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib
sudo apt-get install libc6-dev-i386
sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev
sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
sudo apt-get install lib32z-dev ccache

在安装 libesd0-dev (sudo apt-get install libesd0-dev) 会无法安装,解决办法:

sudo vim /etc/apt/sources.list 
//在行尾添加如下两行的内容
deb http://us.archive.ubuntu.com/ubuntu/ xenial main universe
deb-src http://us.archive.ubuntu.com/ubuntu/ xenial main universe

更新软件源并重新安装:

sudo apt-get update && sudo apt-get install libesd0-dev

编译Android源码

cd到应的源码目路,初始化编译环境

. build/envsetup.sh

通过lunch指令可以设置编译目标,所谓的编译目标就是生成的镜像要运行在什么样的设备上

lunch

等待一会,输入我们需要编译目标的编号即可

最后,我们便可通过如下命令来开始编译andriod源码

make -j6

这里的j6表示可以开启6个线程来参与编译源码,这里指定的线程数一般应该遵从cpu内核数的2倍这个规律,可以通过 cat /proc/cpuinfo 查看相关cpu信息

参考文章

Ubantu18.04环境下编译android源码

ubuntu18.04无法安装libesd0-dev【学习笔记】

【ubuntu】ubuntu修改python的默认指向路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值