news 2026/4/15 18:50:31

【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/4/15 15:22:53

企业级SQL注入防御实战:从SQLI-LABS到真实场景

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个企业级SQL注入防御演示系统,包含:1. 模拟电商网站(含用户登录、商品搜索、订单管理)2. 集成SQLI-LABS中的典型漏洞模式 3. …

作者头像 李华
网站建设 2026/4/15 15:20:07

ResNet18优化指南:推理速度提升3倍的参数设置

ResNet18优化指南:推理速度提升3倍的参数设置 1. 背景与挑战:通用物体识别中的效率瓶颈 在当前AI应用广泛落地的背景下,通用物体识别已成为智能监控、内容审核、辅助驾驶等场景的基础能力。其中,ResNet-18作为轻量级深度残差网络…

作者头像 李华
网站建设 2026/4/15 15:23:23

AI万能分类器使用案例:智能推荐系统构建

AI万能分类器使用案例:智能推荐系统构建 1. 引言:AI万能分类器的现实价值 在当今信息爆炸的时代,如何从海量非结构化文本中快速提取语义、实现自动化归类,已成为智能系统的核心能力之一。传统文本分类方法依赖大量标注数据和模型…

作者头像 李华
网站建设 2026/4/15 15:20:04

Python条件判断的5个真实业务场景应用

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个电商促销规则引擎:1. 根据用户会员等级(普通/VIP/SVIP)应用不同折扣 2. 购物满300减50 3. 特定商品组合购买额外优惠 4. 使用清晰的if-elif-else结构实现 5. 输…

作者头像 李华
网站建设 2026/4/15 15:20:05

1小时快速开发局域网传输工具原型

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 快速开发一个局域网传输工具的概念验证原型。功能包括:1. 最基本的文件传输功能;2. 极简命令行界面;3. 支持同一网络下的设备发现;4…

作者头像 李华
网站建设 2026/4/13 17:01:59

无需GPU!ResNet18 CPU优化版实现极速图像识别

无需GPU!ResNet18 CPU优化版实现极速图像识别 在边缘计算、嵌入式设备和资源受限场景中,依赖高性能GPU进行图像识别往往不现实。然而,这并不意味着我们无法实现高效、准确的视觉理解能力。本文将深入解析一款基于 TorchVision 官方 ResNet-1…

作者头像 李华