背景

  • 编译目标:32位Android5.1
  • 宿主机:64位-Ubuntu Server 18.04

安装docker及相关操作:

详见https://notes.z-dd.net/2021/01/13/Docker%E7%9B%B8%E5%85%B3/
创建编译容器:
docker run -itd --name=容器名 --restart=always -v ~/ubuntu-share:/home/share ubuntu:16.04 /bin/bash

配置编译环境

以下操作都是在容器伪终端进行,即使用docker exec命令进入容器

添加64位系统对32位的支持

  • 检查是否已经支持
    dpkg --print-architecture     # 若支持,输出 amd64
    dpkg --print-foreign-architectures    # 若支持,输出 i386
  • 手动开启支持
    dpkg --add-architecture i386

    安装相关工具、库

  1. 系统更新
    apt-get update
    apt-get dist-upgrade
  2. 安装pingssh
    apt-get install inetutils-ping ssh
  3. 安装open-jdk
    根据Android版本来确定JDK版本,这里需要编译Android5.1
    add-apt-repository ppa:openjdk-r/ppa
    apt-get update
    apt-get install openjdk-7-jdk
    避免出现错误: add-apt-repository: command not found
    apt-get install software-properties-common python-software-properties
  4. 安装编译Android源码需要的依赖、工具
    apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
    
    ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
    apt-get install uuid uuid-dev
    apt-get install zlib1g-dev liblz-dev
    apt-get install liblzo2-2 liblzo2-dev
    apt-get install lzop
    apt-get install git-core curl
    apt-get install u-boot-tools
    apt-get install mtd-utils
    apt-get install android-tools-fsutils

    保存镜像

    配置好环境之后,保存此容器为一个镜像:
    $ sudo docker commit -m "xxx" <CONTAINER ID> <TEPO:TAG>
    #i.e.:
    #sudo docker commit -m "android-build" 1a61adfb1953 local:v1.0
    使用docker images查看是否生成镜像

参考

  1. 使用Docker搭建Android编译环境:
    https://blog.csdn.net/u201011221/article/details/86257088
  2. Docker教程:
    https://www.runoob.com/docker/docker-install-ubuntu.html