logo
0
0
WeChat Login
更新 CMake 安装方式说明

Android 构建环境 Docker 镜像

这是一个用于构建 Android 应用程序的 Docker 镜像集合,支持灵活配置 Android SDK、NDK、CMake 和 Gradle 版本。

特性

  • 模块化构建: 支持自由组合 SDK、NDK、CMake 和 Gradle 版本
  • 多版本支持: 可指定多个版本或使用范围格式 (如 31t36)
  • 增量构建: 基于已构建的镜像进行增量构建,提高效率
  • 镜像推送: 支持构建后自动推送到镜像仓库
  • 腾讯云镜像源: 使用腾讯云镜像加速下载

镜像说明

基础镜像 (base.Dockerfile)

基于 Ubuntu 22.04,预装:

  • OpenJDK 8/11/17/21
  • Android SDK Command Line Tools
  • 常用开发工具 (git, wget, curl, python3 等)

组件镜像

  • sdk.Dockerfile: 安装指定版本的 Android SDK Platform 和 Build Tools
  • gradle.Dockerfile: 安装指定版本的 Gradle
  • ndk.Dockerfile: 安装指定版本的 Android NDK(可选安装 CMake 工具链)

快速开始

1. 构建基础镜像

./build.sh -b android-build:base --sdk 35

2. 构建完整环境

./build.sh --sdk 35 --ndk 26.1.10909125 --cmake 3.22.1 --gradle 8.2

3. 使用 CNB 构建环境

# 执行构建 ./build-cnb.sh

使用说明

build.sh 参数

参数说明示例
-s, --sdkAndroid SDK 版本35, 34,35, 31t36
-n, --ndkNDK 版本26.1.10909125
-c, --cmakeCMake 版本(与 NDK 一起安装)3.22.1,3.30.5
-g, --gradleGradle 版本8.2
-j, --javaJava 版本17 (默认)
-b, --base基础镜像android-build:base
-t, --tag最终镜像标签android-build:custom
--no-cache不使用缓存构建-
--push构建后推送镜像-
-h, --help显示帮助信息-

SDK 版本格式

  • 单个版本: --sdk 35
  • 多个版本: --sdk 34,35
  • 范围版本: --sdk 31t36 (构建 31, 31t32, 31t33, ..., 31t36 的依赖链)

使用示例

示例 1: 构建包含 SDK 35 的镜像

./build.sh --sdk 35 -t android-build:sdk35

示例 2: 构建完整 Android 构建环境

./build.sh --sdk 35 --ndk 26.1.10909125 --cmake 3.22.1 --gradle 8.2

注意:CMake 版本需要与 NDK 一起指定,例如 --ndk 26.1.10909125 --cmake 3.22.1

示例 3: 构建连续 SDK 版本依赖链

./build.sh --sdk 31t36

这将构建:

  • android-build:sdk-31
  • android-build:sdk-31t32
  • android-build:sdk-31t33
  • ...
  • android-build:sdk-31t36

示例 4: 使用自定义基础镜像

./build.sh --base my-android:base --sdk 35 -t android-build:custom

示例 5: 构建并推送镜像

./build.sh --sdk 35 --ndk 26.1.10909125 --push

环境变量

基础镜像内置以下环境变量:

  • ANDROID_HOME: /opt/android-sdk
  • ANDROID_SDK_ROOT: /opt/android-sdk
  • GRADLE_HOME: /opt/gradle
  • JAVA_HOME: /usr/lib/jvm/java-17-openjdk-amd64
  • TZ: Asia/Shanghai

常用工具

镜像中已预装以下工具:

  • OpenJDK 8/11/17/21
  • Git (含 git-lfs)
  • Python 3 (含 pip)
  • wget, curl, zip, unzip
  • Android SDK Command Line Tools
  • Android Platform Tools

构建优化

  1. 增量构建: 脚本会自动检查镜像是否已存在,避免重复构建
  2. 层缓存: 使用 --no-cache 参数可禁用缓存
  3. 并行构建: 可同时构建不同版本的镜像
  4. 镜像复用: 后续构建可基于已有镜像进行

目录结构

. ├── base.Dockerfile # 基础镜像 ├── sdk.Dockerfile # SDK 组件 ├── gradle.Dockerfile # Gradle 组件 ├── ndk.Dockerfile # NDK 组件(可选安装 CMake) ├── build.sh # 主构建脚本 └── build-cnb.sh # CNB 环境构建脚本

注意事项

  1. 首次构建需要下载 Android SDK 等资源,可能需要较长时间
  2. 使用腾讯云镜像源加速下载
  3. 确保已安装 Docker 并有足够的磁盘空间
  4. 推送镜像前请确保已登录到目标镜像仓库