安卓编译环境搭建(物理机+Docker)
本文在谷歌官方推荐的Ubuntu14.04上搭建并成功编译安卓固件。Docker环境使用docker-ce 20.10.2版本。
物理机安装方法
安装编译所需要的依赖
sudo apt-get update
sudo apt-get install -y openjdk-8-jdk git-core gnupg flex bison gperf libsdl1.2-dev bc libesd0-dev libwxgtk2.8-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev pngcrush schedtool libxml2 libxml2-utils xsltproc lzop libc6-dev schedtool g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline-gplv2-dev gcc-multilib libswitch-perl libssl1.0.0 libssl-dev software-properties-common
如果安装速度很慢可以参考我之前的文章换源加速,链接:https://www.mccam.xyz/index.php/archives/6/
安装并配置java环境
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install -y openjdk-8-jdk
update-alternatives --config java
update-alternatives --config javac
配置环境变量
编辑~/.bashrc,在文件末尾添加
export JAVA HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
source ~/.bashrc
获取安卓源代码
安装repo
echo "export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'" >> ~/.bashrc
source ~/.bashrc
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o /tmp/repo
sudo cp /tmp/repo /usr/local/bin/repo
sudo chmod +x /usr/local/bin/repo
同步AOSP源代码
mkdir aosp
cd aosp
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest
repo sync
第一次同步需要下载非常大的数据,而且中间一旦有网络连接中断就得重新开始,推荐下载离线包解压,并在解压后的目录里面运行repo sync
清华源AOSP离线包下载地址:点击下载
中科大源AOSP离线包下载地址:点击下载
同步完成后即可正常编译
Docker方式
如果嫌第一种方法太麻烦,本人开源了一个Dockerfile也可快速构建此环境,Github地址:https://github.com/Jubian540/build-env
使用方法
git clone https://github.com/Jubian540/build-env.git
cd aosp
sudo docker build --tag aosp-build:14.04 .
sudo docker run -itd --name aosp-build -v /path-to-aosp/:/root/ aosp-build:14.04
sudo docker exec -it aosp-build bash
这里的/path-to-aosp/是AOSP源代码的路径,进入容器即可正常进行编译。