转载:https://blog.csdn.net/m0_37293461/article/details/102557802
1.下载repo工具
这里我们只要知道repo是使用Python对git进行封装的工具就行,还有就是repo的作用是方便管理Android源码繁多的git库,它的使用时简化了git版本库的管理。
安装git:
sudo apt-get install git
创建bin,并加入到PATH中:
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
安装python,repo初始化时会用到:
sudo apt-get install python
2 . 下载源码
建立工作目录:
mkdir aosp
cd aosp
这里如果想使用清华镜像来更新repo,可以加上如下内容到你的~/.bashrc中:
export REPO_URL=‘https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/’
source ~/.bashrc
设置身份,添加自己的git邮箱和密码:
git config --global user.email “usergmail@gmail.com”
git config --global user.name “username”
初始化仓库:
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
3.准备依赖环境
安装 jdk8:
sudo apt-get update
sudo apt-get install openjdk-8-jdk
这里可以自己配一下java环境变量,很简单就不说了。
使用 ubuntu 14+,需要安装以下依赖包:
sudo apt-get install git gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib x11proto-core-dev libx11-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip
4.编译源码
在AOSP的根目录,输入如下的命令初始化环境:
source build/envsetup.sh
// 编译前删除build文件夹A
make clobber
这里实际的操作就是执行build文件夹下的envsetup.sh这个脚本
选择编译目标:
lunch
lunch命令是envsetup.sh里定义的一个命令,用来让用户选择编译目标。
这里我们选择5,具体的编译目标类型自己可以去查看哦。
lunch 5
下面开始编译:
通过-jN参数来设置编译的并行任务数,以提高编译速度,在此前我的CPU核心数为6,这里N值最好选在6到12之间,这里我们设置6个并行任务进行编译(注意:这里看自己的电脑配置,如果配置低,N值选小一点)
make -j6
如果AOSP清华镜像报错:revision refs/tags/android-9.0.0_r8 in platform/cts not found
解决方法:在根目录单独下载
repo sync platform/cts
然后重新同步,成功后会有标志:repo sync has finished successfully
如果报错“File "build/make/tools/normalize_path.py", line 25 print os.path.normpath(p)”
解决办法,安装python2.7
1、下载python
wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz
2、解压、编译安装(依次执行以下5条命令)
tar -zxvf Python-2.7.9.tgz
cd Python-2.7.9
./configure --prefix=/usr/local/python-2.7.9
make
make install
创建软链接,如果提示链接已存在,则先删除后创建
ln -s /usr/local/python-2.7.9/bin/python /usr/bin/python
如果报如下错误
解决办法:安装jdk6
现在官方网站上最新的版本已经不是JDK6了, 但是其他版本是不能用于Android的编译的,一定要去下载JDK6。
1. 去oracle官网下载文件”jdk-6u45-linux-x64.bin”,将其上传到linux
2.安装
chmod +x jdk-6u45-linux-x64.bin
./jdk-6u45-linux-x64.bin
3.配置环境变量
sudo vi /etc/profile
JAVA_HOME=/home/joybook/program/java/jdk1.6.0_14
export JRE_HOME=/home/joybook/program/java/jdk1.6.0_14/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH$ source /etc/profile
4.测试是否生效
java -version