安卓编译环境搭建(物理机+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源代码的路径,进入容器即可正常进行编译。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值