如何使用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中如何搜索并修改
在命令模式下:
-
输入
/REPO_URL
或者?REPO_URL
-
按下
ESC
-
通过
N
/n
搜索 -
找到需要修改的地方,按下
i
进入编辑模式修改后 -
按下
ESC
-
输入
: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信息