百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

7.4K Star这么牛!Docker里面可以运行Android系统

liuian 2024-12-09 15:20 34 浏览

[开源日记],分享10k+Star的优质开源项目

项目介绍

Docker-android 是一个基于 Docker 镜像的解决方案,旨在支持 Android 应用的开发和测试。使用该镜像,用户可以在不同的设备和皮肤上运行 Android 模拟器,并支持一系列工具如 noVNC、adb、Appium、Selenium Grid 以及与真实设备和 Genymotion Cloud 的集成。

功能特点

  • 1.轻量级: 基于 Alpine Linux,镜像体积小,支持 KVM 加速和 Java 11运行环境,使得容器易于部署和管理。
  • 2.多版本支持: 支持 Android 6.0 到 12.0 的不同 API 版本,以及 Chrome 浏览器和 Chromedriver 的对应版本。
  • 3.多设备模拟: 提供多种手机和平板设备的模拟器支持,如三星 Galaxy S10、Nexus 7 等,满足不同设备的测试需求。
  • 4.远程控制: 通过 noVNC 在浏览器中查看和控制模拟器的界面,支持录制视频和截图,方便远程开发和测试。
  • 5.自动化测试: 支持使用 Appium 和 Selenium Grid 进行自动化测试,兼容不同测试框架如 Espresso、Robotium,提高测试效率。
  • 6.云集成: 与 Genymotion Cloud 集成,使用云端的 Android 虚拟设备,加速测试和开发流程。
  • 7.灵活配置: 支持自定义配置,包括代理、语言、分辨率、内存等,满足个性化需求。
  • 8.项目构建: 支持构建 Android 项目并运行单元测试,为开发者提供全面的开发环境。
  • 9.支持多种系统

Type

Device Name

Phone

Samsung Galaxy S10

Phone

Samsung Galaxy S9

Phone

Samsung Galaxy S8

Phone

Samsung Galaxy S7 Edge

Phone

Samsung Galaxy S7

Phone

Samsung Galaxy S6

Phone

Nexus 4

Phone

Nexus 5

Phone

Nexus One

Phone

Nexus S

Tablet

Nexus 7

使用场景

  • Android开发者: 开发者可以利用 docker-android 快速搭建 Android 开发环境,跨版本调试和测试应用,提高开发效率。
  • 测试团队: 测试团队可以利用该镜像进行自动化测试,支持不同框架的测试,同时通过云集成和远程控制进行设备测试。
  • 教育机构: 教育机构可以利用 docker-android 进行教学和培训,提供统一的 Android 环境,便于学生实践和学习。

快速开始

如果你的主机操作系统为 Ubuntu,则可以跳过以下步骤。对于 macOS 和 Windows 用户,你需要在支持虚拟化的 Ubuntu 操作系统上运行该镜像,因为该镜像仅支持在 Ubuntu 操作系统下运行。

计算机要支持虚拟化。检查虚拟化是否启用:

sudo apt install cpu-checker
kvm-ok

运行 Docker-Android 容器:

docker run -d -p 6080:6080 -e EMULATOR_DEVICE="Samsung Galaxy S10" -e WEB_VNC=true --device /dev/kvm --name android-container budtmo/docker-android:emulator_11.0

打开浏览器并访问 http://localhost:6080 查看容器内部。

检查模拟器状态:

docker exec -it android-container cat device_status
开源地址:https://github.com/budtmo/docker-android

[开源日记],分享10k+Star的优质开源项目

创作不易分享,,在看,三连支持一波,感谢。↓↓↓

相关推荐

python入门到脱坑函数—定义函数_如何定义函数python

Python函数定义:从入门到精通一、函数的基本概念函数是组织好的、可重复使用的代码块,用于执行特定任务。在Python中,函数可以提高代码的模块性和重复利用率。二、定义函数的基本语法def函数名(...

javascript函数的call、apply和bind的原理及作用详解

javascript函数的call、apply和bind本质是用来实现继承的,专业点说法就是改变函数体内部this的指向,当一个对象没有某个功能时,就可以用这3个来从有相关功能的对象里借用过来...

JS中 call()、apply()、bind() 的用法

其实是一个很简单的东西,认真看十分钟就从一脸懵B到完全理解!先看明白下面:例1obj.objAge;//17obj.myFun()//小张年龄undefined例2shows(...

Pandas每日函数学习之apply函数_apply函数python

apply函数是Pandas中的一个非常强大的工具,它允许你对DataFrame或Series中的数据应用一个函数,可以是自定义的函数,也可以是内置的函数。apply可以作用于DataF...

Win10搜索不习惯 换个设定就好了_window10搜索用不了怎么办

Windows10的搜索功能是真的方便,这点用惯了Windows10的小伙伴应该都知道,不过它有个小问题,就是Windows10虽然会自动联网搜索,但默认使用微软自家的Bing搜索引擎和Edge...

面试秘籍:call、bind、apply的区别,面试官为什么总爱问这三位?

引言你有没有发现,每次JavaScript面试,面试官总爱问你call、bind和apply的区别?好像这三个方法成了通关密码,掌握了它们,就能顺利过关。其实不难理解,面试官问这些问题,不...

记住这8招,帮你掌握“追拍“摄影技法—摄影早自习第422日

杨海英同学提问:请问叶梓老师,我练习追拍时,总也不能把运动的人物拍清晰,速度一般掌握在1/40-1/60,请问您如何把追拍拍的清晰?这跟不同的运动形式有关系吗?请您给讲讲要点,谢谢您!摄影:Damia...

[Sony] 有点残酷的测试A7RII PK FS7

都是好机!手中利器!主要是最近天天研究fs5,想知道fs5与a7rii后期匹配问题,苦等朋友的fs5月底到货,于是先拿手里现有的fs7小测一下,十九八九也能看到fs5的影子,另外也了解一下fs5k标配...

AndroidStudio_Android使用OkHttp发起Http请求

这个okHttp的使用,其实网络上有很多的案例的,但是,如果以前没用过,copy别人的直接用的话,可以发现要么导包导不进来,要么,人家给的代码也不完整,这里自己整理一下.1.引入OkHttp的jar...

ESL-通过事件控制FreeSWITCH_es事务控制

通过事件提供的最底层控制机制,允许我们有效地利用工具箱,适时选择使用其中的单个工具。FreeSWITCH是一个核心交换与混合矩阵,它周围有几十个模块提供各种功能特性。我们完全控制了所有的即时信息,这些...

【调试】perf和火焰图_perf生成火焰图

简介perf是linux上的性能分析工具,perf可以对event进行统计得到event的发生次数,或者对event进行采样,得到每次event发生时的相关数据(cpu、进程id、运行栈等),利用这些...

文本检索控件也玩安卓?dtSearch Engine发布Android测试版

dtSearchEngineforLinux(原生64-bit/32-bitC++和JavaAPIs)和dtSearchEngineforWin&.NET(原生64-bi...

网站后台莫名增加N个管理员,记一次SQL注入攻击

网站没流量,但却经常被SQL注入光顾。最近,网站真的很奇怪,网站后台不光莫名多了很多“管理员”,所有的Wordpres插件还会被自动暂停,导致一些插件支持的页面,如WooCommerce无法正常访问、...

多元回归树分析Multivariate Regression Trees,MRT

多元回归树(MultivariateRegressionTrees,MRT)是单元回归树的拓展,是一种对一系列连续型变量递归划分成多个类群的聚类方法,是在决策树(decision-trees)基础...

JMETER性能测试_JMETER性能测试指标

jmeter为性能测试提供了一下特色:jmeter可以对测试静态资源(例如js、html等)以及动态资源(例如php、jsp、ajax等等)进行性能测试jmeter可以挖掘出系统最大能处...