轩辕镜像
轩辕镜像专业版
个人中心搜索镜像
交易
充值流量我的订单
工具
工单支持镜像收录Run 助手IP 归属地密码生成Npm 源Pip 源
帮助
常见问题我要吐槽
其他
关于我们网站地图

官方QQ群: 13763429

轩辕镜像
镜像详情
mingc/android-build-box
官方博客使用教程热门镜像工单支持
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。
轩辕镜像 - 国内开发者首选的专业 Docker 镜像下载加速服务平台 - 官方QQ群:13763429 👈点击免费获得技术支持。
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

android-build-box Docker 镜像下载 - 轩辕镜像

android-build-box 镜像详细信息和使用指南

android-build-box 镜像标签列表和版本信息

android-build-box 镜像拉取命令和加速下载

android-build-box 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

android-build-box
mingc/android-build-box
自动构建

android-build-box 镜像详细信息

android-build-box 镜像标签列表

android-build-box 镜像使用说明

android-build-box 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

一个优化的Docker镜像,集成Android SDK、Flutter SDK及多种开发工具(如多版本Java、Node.js、fastlane等),适用于Android和Flutter项目的构建、测试与持续集成。
119 收藏0 次下载activemingc镜像
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源
中文简介版本下载
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源

android-build-box 镜像详细说明

android-build-box 使用指南

android-build-box 配置说明

android-build-box 官方文档

Docker Android Build Box

![docker icon]([] ![Docker Image CI]([]

概述

一个优化的Docker镜像,包含Android SDK和Flutter SDK,旨在为Android和Flutter项目提供完整的构建环境。

核心功能与组件

包含的软件组件

latest镜像始终安装最新软件,包括最近8个Android SDK平台及其关联构建工具。Dockerhub描述(点击上方Docker徽章可访问)提供latest镜像中已安装软件的实时列表。有关标记版本和latest镜像中安装的各种软件详情,请参见矩阵文件。

最新标记版本包含以下组件:

  • Ubuntu 22.04
  • Java - OpenJDK
    • 8 (1.8)
    • 11
    • 17
    • 21
  • Android SDK平台:
    • 28、29、30、31、32、33、34、35
  • Android构建工具:
    • 28.0.1 28.0.2 28.0.3
    • 29.0.2 29.0.3
    • 30.0.0 30.0.2 30.0.3
    • 31.0.0
    • 32.0.0
    • 33.0.0 33.0.1 33.0.2 33.0.3
    • 34.0.0
    • 35.0.0
  • Android NDK - r28b
  • Android bundletool
  • Android模拟器
  • cmake
  • TestNG
  • Python 3.8.10
  • Node.js 22、npm、React Native
  • Ruby、RubyGems
  • fastlane
  • Flutter 3.32.4
  • jEnv(Java版本管理工具)

拉取Docker镜像

该Docker镜像基于本仓库的Dockerfile通过Github Action自动公开构建,无隐藏内容。

拉取最新镜像:

docker pull mingc/android-build-box:latest

提示:建议使用特定稳定版本的标签而非latest,以避免构建中断。例如mingc/android-build-box:1.25.0。

查看标签列表获取所有可用标签,变更日志了解标签间差异,兼容性矩阵查看各标签对应的软件版本(如标签1.2.0包含SDK x、y、z等)。

使用方法

使用镜像构建Android项目

缓存使用方法请参见缓存部分。

通过以下命令使用该镜像构建Android项目:

cd <android项目目录>  # 切换到项目根目录
docker run --rm -v `pwd`:/project mingc/android-build-box bash -c 'cd /project; ./gradlew build'

构建.aab格式发布包:

cd <android项目目录>  # 切换到项目根目录
docker run --rm -v `pwd`:/project mingc/android-build-box bash -c 'cd /project; ./gradlew bundleRelease'

以交互式bash shell运行容器:

docker run -v `pwd`:/project -it mingc/android-build-box bash -l

缓存配置

缓存不会减少总磁盘空间需求,反而可能增加(例如Android SDK缓存可能使空间翻倍)。需注意镜像本身约占16.2GB,缓存可能额外占用6GB。

jEnv缓存

为缓存全局Java设置(/root/.jenv/version),需缓存整个jEnv文件夹/root/.jenv/:

  1. 在主机创建缓存目录:

    mkdir ~/.dockercache/jenv
    
  2. 创建命名卷jenv-cache:

    docker volume create --driver local --opt type=none --opt device=~/.dockercache/jenv/ --opt o=bind jenv-cache
    
  3. 运行容器时挂载该卷:

    docker run --rm -v jenv-cache:"/root/.jenv/" mingc/android-build-box bash -l `echo "Hello World"`
    

Gradle缓存

添加以下参数以缓存Gradle主目录:

-v "$HOME/.dockercache/gradle":"/root/.gradle"

示例:

docker run --rm -v `pwd`:/project -v "$HOME/.dockercache/gradle":"/root/.gradle" mingc/android-build-box bash -c 'cd /project; ./gradlew build'

在gradle.properties中启用缓存:

org.gradle.caching=true

Android SDK缓存

缓存SDK可灵活更新/移除平台/构建工具。1.25.0版本中/opt/android-sdk/约需6GB空间。

  1. 在主机创建缓存目录:

    mkdir ~/.dockercache/android-sdk
    
  2. 创建命名卷android-sdk-cache:

    docker volume create --driver local --opt type=none --opt device=~/.dockercache/android-sdk/ --opt o=bind android-sdk-cache
    
  3. 运行容器时挂载该卷:

    docker run --rm -v android-sdk-cache:"/opt/android-sdk/" mingc/android-build-box bash -l
    

使用sdkmanager管理SDK组件:

  • 列出已安装组件:sdkmanager --list_installed
  • 卸载平台:sdkmanager --uninstall 'platforms;android-26'
  • 安装平台:sdkmanager --install 'platforms;android-26'

完整文档参见sdkmanager官方文档。

建议的gradle.properties配置

推荐设置以下JVM参数:

org.gradle.jvmargs=-Xmx8192m -XX:MaxMetaspaceSize=1024m -XX:+UseContainerSupport -XX:MaxRAMPercentage=97.5

参数说明:

  • -Xmx8192m:JVM最大内存(支持g为单位)
  • -XX:MaxMetaspaceSize=1024m:元空间最大大小(修复Gradle bug gradle/gradle#19750)
  • -XX:+UseContainerSupport:允许JVM感知容器环境(默认启用)
  • -XX:MaxRAMPercentage=97.5:JVM最大使用容器内存的97.5%

容器总内存应大于Xmx + MaxMetaspaceSize + 预留空间(如10GB容器可分配8GB Xmx + 1GB MaxMetaspaceSize + 1GB预留)。

在Bitbucket Pipelines中构建Android项目

在Bitbucket仓库的bitbucket-pipelines.yml中指定该镜像:

image: mingc/android-build-box:latest

pipelines:
  default:
    - step:
        caches:
          - gradle
          - gradle-wrapper
          - android-emulator
        script:
          - . ~/.bash_profile
          - jenv global 11  # 切换Java版本
          - bash ./gradlew assemble
definitions:
  caches:
    gradle-wrapper: ~/.gradle/wrapper
    android-emulator: $ANDROID_HOME/system-images/android-21

在Github Actions中构建Flutter项目

示例.github/workflows/main.yml:

name: CI

on: [push]

jobs:
  build:
    runs-on: ubuntu-20.04
    container: mingc/android-build-box:latest
    steps:
    - uses: actions/checkout@v3
    - uses: actions/cache@v3
      with:
        path: /root/.gradle/caches
        key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
        restore-keys: |
          ${{ runner.os }}-gradle-
    - name: Build
      run: |
        echo "Work dir: $(pwd)"
        echo "User: $(whoami)"
        flutter --version
        flutter analyze
        flutter build apk
    - name: Archive apk
      uses: actions/upload-artifact@v3
      with:
        name: apk
        path: build/app/outputs/apk
    - name: Test
      run: flutter test
    - name: Clean build to avoid action/cache error
      run: rm -fr build

在Docker中运行Android模拟器

以下脚本创建并启动ARM模拟器(用于集成测试/ instrumentation测试):

#!/bin/bash

export ADB_INSTALL_TIMEOUT=30  # 增加ADB超时时间

# 下载ARM系统镜像
sdkmanager "system-images;android-22;default;armeabi-v7a"

# 创建AVD模拟器(100MB SD卡)
echo "no" | avdmanager create avd \
    -n Android_5.1_API_22 \
    -k "system-images;android-22;default;armeabi-v7a" \
    -c 100M \
    --force

# 后台启动模拟器
$ANDROID_HOME/emulator/emulator -avd Android_5.1_API_22 -no-skin -no-audio -no-window -no-boot-anim -gpu off &

# 需添加延迟等待模拟器启动

注意:暂不支持x86_64模拟器,详见Issue #18。

切换系统Java版本

1.23.0及以上版本使用jEnv管理Java版本(旧版本使用update-alternatives,文档见此处)。

使用jEnv前需加载环境:

. ~/.bash_profile

查看可用Java版本:

jenv versions

设置全局Java 8:

jenv global 1.8

设置当前目录Java版本(会创建.java-version文件):

jenv local 11

构建Docker镜像

构建前确保有足够磁盘空间(镜像大小约10-16GB)。需Docker Engine 19.03+(支持buildx)。

构建命令

docker buildx build -t android-build-box .

构建目标

支持三种构建目标(默认complete-flutter):

构建目标SDK CLI工具jEnvplatform-tools平台/构建工具bundletoolNDKFastlane/RakeNode等Flutter
minimal✅✅✅❌❌❌❌❌❌
complete✅✅✅✅✅✅✅✅❌
complete-flutter✅✅✅✅✅✅✅✅✅

自定义软件版本

默认安装最新软件,可通过构建参数指定版本(需设置_TAGGED=tagged):

docker buildx build --target minimal \
  --build-arg ANDROID_SDK_TOOLS_TAGGED="tagged" \
  --build-arg ANDROID_SDK_TOOLS_VERSION="4333796" \
  --build-arg JENV_TAGGED="tagged" \
  --build-arg JENV_RELEASE="0.5.6" .

变更日志

详见专用变更日志。

兼容性

详见兼容性矩阵。

贡献

欢迎通过Pull Request改进镜像。文档修改请以DOCS:为提交前缀,CI配置修改以CI:为前缀。

参考资料

  • Dockerfile参考
  • 编写Dockerfile的最佳实践
  • 构建自己的镜像
  • uber android build environment
  • Refactoring a Dockerfile for image size
  • Label Schema
查看更多 android-build-box 相关镜像 →

常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像免费版与专业版有分别支持哪些镜像?

免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

轩辕镜像下载加速使用手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

🔐

登录方式进行 Docker 镜像下载加速教程

通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤

🐧

Linux Docker 镜像下载加速教程

在 Linux 系统上配置轩辕镜像源,支持主流发行版

🖥️

Windows/Mac Docker 镜像下载加速教程

在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统

📦

Docker Compose 镜像下载加速教程

在 Docker Compose 中使用轩辕镜像加速,支持容器编排

📋

K8s containerd 镜像下载加速教程

在 k8s 中配置 containerd 使用轩辕镜像加速

🔧

宝塔面板 Docker 镜像下载加速教程

在宝塔面板中配置轩辕镜像加速,提升服务器管理效率

💾

群晖 NAS Docker 镜像下载加速教程

在 Synology 群晖NAS系统中配置轩辕镜像加速

🐂

飞牛fnOS Docker 镜像下载加速教程

在飞牛fnOS系统中配置轩辕镜像加速

📱

极空间 NAS Docker 镜像下载加速教程

在极空间NAS中配置轩辕镜像加速

⚡

爱快路由 ikuai Docker 镜像下载加速教程

在爱快ikuai系统中配置轩辕镜像加速

🔗

绿联 NAS Docker 镜像下载加速教程

在绿联NAS系统中配置轩辕镜像加速

🌐

威联通 NAS Docker 镜像下载加速教程

在威联通NAS系统中配置轩辕镜像加速

📦

Podman Docker 镜像下载加速教程

在 Podman 中配置轩辕镜像加速,支持多系统

📚

ghcr、Quay、nvcr、k8s、gcr 等仓库下载镜像加速教程

配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤

🚀

专属域名方式进行 Docker 镜像下载加速教程

无需登录即可使用轩辕镜像加速服务,更加便捷高效

需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429

商务:17300950906
|©2024-2025 源码跳动
商务合作电话:17300950906|Copyright © 2024-2025 杭州源码跳动科技有限公司. All rights reserved.