news 2026/4/3 4:30:59

【GitHub每日速递 20260112】超牛!可定制的 Docker 安卓模拟器镜像,适配 CI 还能远程操控

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【GitHub每日速递 20260112】超牛!可定制的 Docker 安卓模拟器镜像,适配 CI 还能远程操控

原文: https://mp.weixin.qq.com/s/KCnHVAizDJNVQsEqkIANZA

超牛!可定制的 Docker 安卓模拟器镜像,适配 CI 还能远程操控

[docker-android] 是一个 在Docker容器中运行Android模拟器 的 工具。简单讲,它让你能快速启动一个可远程访问的Android模拟器,方便在无界面环境中测试App。适用人群:移动开发人员、自动化测试工程师

项目地址:https://github.com/HQarroum/docker-android

主要语言:Shell

stars: 2.1k

仓库核心功能

docker-android项目提供了一个轻量且可定制的 Docker 镜像,能将 Android 模拟器作为服务运行。其主要功能是通过 Docker 容器,提供一个可在网络上远程控制的完整 Android 模拟器环境。

主要优势

  • 轻量级:基于 Alpine 系统构建,镜像大小进行了优化,并且可以选择不包含 Android SDK 和模拟器,进一步减小镜像体积。例如,不包含 SDK 和模拟器的镜像未压缩时仅 414 MB,压缩后为 138 MB。
  • 可定制性强:支持自定义 Android 版本、设备类型和镜像类型,可根据需求设置 API 级别、镜像类型和 CPU 架构。
  • 网络连接便利:内置了模拟器和 ADB 的端口转发功能,方便在容器外部通过网络连接到模拟器。
  • 适合 CI 环境:可以无头模式运行,很适合在 CI 农场中使用,并且与scrcpy兼容,可远程控制 Android 屏幕。

主要内容与使用方法

构建与运行

  • 可以使用docker-compose构建并启动容器,如docker compose up android-emulator,还支持 GPU 加速和包含 Google Play 商店的配置。
  • 也可以使用纯 Docker 命令构建,如docker build -t android-emulator .

运行容器

构建好镜像后,需要挂载 KVM 驱动并暴露 ADB 端口,例如docker run -it --rm --device /dev/kvm -p 5555:5555 android-emulator。运行时需确保 API 33 版本至少有 4GB 内存和 8GB 磁盘空间。

数据保存

可通过挂载数据目录来保存数据,如docker run -it --rm --device /dev/kvm -p 5555:5555 -v ~/android_avd:/data android-emulator

连接 ADB

容器内的 ADB 服务器会自动启动并监听所有接口,启动内核后,可使用adb connect 127.0.0.1:5555连接 ADB。还能使用scrcpy远程控制模拟器屏幕。

自定义镜像

构建时可通过API_LEVELIMG_TYPEARCHITECTURE三个参数自定义 Android 版本、镜像类型和 CPU 架构。例如,要安装支持 Google Play 商店的 Android Pie 版本,可使用以下命令:

docker build \ --build-arg API_LEVEL=28 \ --build-arg IMG_TYPE=google_apis_playstore \ --build-arg ARCHITECTURE=x86 \ --tag android-emulator .

挂载外部驱动器

为减少镜像大小和构建时间,可在构建时通过INSTALL_ANDROID_SDK=0参数阻止下载和安装 SDK,并在运行时挂载外部的 Android SDK 文件夹,如:

docker build -t android-emulator --build-arg INSTALL_ANDROID_SDK=0 . docker run -it --rm --device /dev/kvm -p 5555:5555 -v /shared/android/sdk:/opt/android/ android-emulator

从 Docker Hub 拉取

在 Docker Hub 上有不同的预构建镜像,可根据 API 级别和镜像类型拉取,例如docker pull halimqarroum/docker-android:api-33

可能的应用场景

  • 应用测试:在 CI/CD 流程中,使用不同版本和配置的 Android 模拟器对应用进行自动化测试。
  • 开发调试:开发者可以在本地使用该容器快速搭建 Android 开发环境,进行应用的调试和开发。
  • 远程控制演示:结合scrcpy工具,可远程控制 Android 模拟器的屏幕,进行演示或教学。

2024 稳定版!beancount 文本文件双入口记账语言全揭秘

beancount 是一个基于文本文件实现复式记账的会计工具。简单讲,它让你用纯文本记录财务流水,像写代码一样管理个人或公司账目。适用人群:程序员、极客、喜欢文本化管理财务的人士。

项目地址:https://github.com/beancount/beancount

主要语言:Python

stars: 4.9k

核心功能

Beancount 是一种用于复式簿记的计算机语言,可让用户在文本文件中定义财务交易记录,将其读入内存,生成各种财务报告,并且提供了一个 Web 界面。

文档资料

  • 文档可在 https://beancount.github.io/docs/ 查看。
  • 文档创作在 Google Docs 上进行,可申请访问或对单个文档发表评论来参与贡献。所有源文档的索引可在 http://furius.ca/beancount/doc/index 查看。
  • 有专门的 Beancount 邮件列表:https://groups.google.com/forum/#!forum/beancount ,可在此提问,以便其他人能共享回复内容。关于命令行会计的更广泛讨论也会在 Ledger 邮件列表 https://groups.google.com/forum/#!forum/ledger-cli 中进行。

下载和安装

可从 Github 上的官方 Git 仓库获取源代码:https://github.com/beancount/beancount/ 。更多详细安装信息可查看 http://furius.ca/beancount/doc/install 。

版本情况

  • 版本 3:自 2024 年 6 月起为当前稳定版本,建议使用。该版本在 v2 基础上进行了精简,v2 分支中包含的大部分工具已迁移到 Github 上各自独立的项目中。
  • 版本 2:是 Beancount 的上一个稳定版本,在 2020 年至 2024 年处于维护模式,现在已冻结且过时。它是对第一个版本的完全重写,引入了许多约束和新语法等。
  • 版本 1:是 Beancount 的原始版本,2013 年停止开发。此初始版本旨在与 Ledger 相似并部分兼容,不建议使用。

问题反馈

可在 Github 项目页面提交问题工单:https://github.com/beancount/beancount/issues

优势和应用场景

  • 优势:以文本文件记录交易,简单易管理和备份;开源且遵循自由开放的理念,用户可根据需求定制;有稳定版本支持,且开发者持续投入精力完善。
  • 应用场景:适用于个人财务管理,记录日常收支;也可用于小型企业或基金会的财务记账和报告生成。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/29 22:18:12

从论文到落地|ResNet18镜像实现1000类图像精准分类

从论文到落地|ResNet18镜像实现1000类图像精准分类 📚 引言:当经典论文走进生产环境 深度学习的发展史上,ResNet(Deep Residual Learning for Image Recognition) 是一座不可逾越的里程碑。2015年&#xff…

作者头像 李华
网站建设 2026/3/27 16:17:56

Wireshark实战:企业网络故障排查全流程

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个企业网络故障排查的实战教程项目,模拟一个办公网络出现上网缓慢的问题。提供分步骤的Wireshark使用指南:1) 设置正确的抓包过滤器 2) 识别异常TCP重…

作者头像 李华
网站建设 2026/3/28 16:50:12

AI一键搞定RabbitMQ环境搭建,告别繁琐安装步骤

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 请生成一个完整的RabbitMQ安装配置脚本,要求:1. 支持Ubuntu 20.04系统 2. 包含Erlang环境自动安装 3. 配置默认vhost和测试用户 4. 开启管理插件 5. 添加防…

作者头像 李华
网站建设 2026/3/14 23:36:46

极速验证:5种DBEAVER字体方案原型对比

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 构建一个DBEAVER字体方案快速测试平台,功能:1.实时预览不同字体设置效果 2.支持A/B测试对比 3.生成配置报告 4.导出最佳方案。使用Vue.js实现实时预览界面&…

作者头像 李华
网站建设 2026/3/29 21:32:05

AI如何帮你自动生成Content-Security-Policy规则

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个AI辅助生成Content-Security-Policy的工具,要求:1. 输入网站URL自动爬取所有资源请求 2. 分析资源依赖关系和安全风险 3. 生成优化的CSP规则 4. 提…

作者头像 李华
网站建设 2026/4/3 3:41:22

PYQT6零基础入门:第一个GUI程序只需10分钟

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 请生成一个极其简单的PYQT6入门示例,适合完全没有GUI开发经验的学习者。要求:1) 创建一个带按钮的窗口;2) 点击按钮弹出消息框;3) 添…

作者头像 李华