M芯片Mac实现安卓模拟器多开

news2025/2/25 3:03:29

写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成,愿将昔日所获与大家交流一二,希望对学习路上的你有所助益。同时,博主也想通过此次尝试打造一个完善的技术图书馆,任何与文章技术点有关的异常、错误、注意事项均会在末尾列出,欢迎大家通过各种方式提供素材。

  • 对于文章中出现的任何错误请大家批评指出,一定及时修改。
  • 有任何想要讨论和学习的问题可联系我:zhuyc@vip.163.com。
  • 发布文章的风格因专栏而异,均自成体系,不足之处请大家指正。

M芯片Mac实现安卓模拟器多开

本文关键字:M芯片、Mac、Android、模拟器、多开

文章目录

  • M芯片Mac实现安卓模拟器多开
    • 一、可用模拟器
      • 1. android-emulator-m1-preview
      • 2. Android Studio - emulator
    • 二、模拟器多开
      • 1. 初始化安装
      • 2. 创建新项目
      • 3. 模拟器启动
    • 三、单应用构建【可选】
      • 1. 查看SDK路径
      • 2. 查看模拟器路径
      • 3. 进行应用封装
      • 4. 启动测试

一、可用模拟器

在使用M1芯片的Mac本之前,可以在苹果系统上运行的安卓模拟器有夜神、MuMu、BlueStacks,对于Intel的x86而言,基本上Windows上能使用的主流安卓模拟器,Mac上都能够运行。但是对于Arm架构的M芯片系列,以上提到的几款模拟器都不支持。目前只找到了两款可用,并且也都支持多开。

1. android-emulator-m1-preview

这是一个Github上可以直接使用的免费模拟器,其实也就是Google放出来的一个可以直接使用的预览版。方便之处在于打开即用,缺点在于不能选择特定的系统版本,对于某些参数也不能进行修改。

  • 仓库地址:https://github.com/google/android-emulator-m1-preview

目前已经不再更新了,因为更多的模拟器已经直接整合到了Android Studio的SDK Manager当中,不过如果你不是开发者,或者只是临时使用一次的话,可以选用这种方式。

  • 安装包下载

点击右侧Release区域的tags进入到版本选择界面,再点击Downloads按钮:

选择dmg格式安装包并下载。

  • 模拟器启动

拖拽完成后可能需要进行一个解锁操作:

sudo xattr -r -d com.apple.quarantine /Applications/Android\ Emulator.app

第一次启动时按住Ctrl,然后右键打开即可,以后可以正常双击打开:

启动时会碰到一个关于ADB配置的提示,如果不需要调试,直接忽略即可【需要调试则直接使用Android Studio】。

2. Android Studio - emulator

Android Studio是开发者熟知的安卓开发工具,自带模拟器以及SDK管理,是十分方便的。本来小编的首选也是它,不过总是感觉有些笨重,毕竟自己并不是要开发,而只是想用模拟器而已,而且这个模拟器可以说是没有什么外壳封装,不过找了一圈,目前的解决方案也就是这个最好了。

  • 软件下载:https://developer.android.com/studio


在弹出的界面中接受协议,并且选择Mac with Apple chip

二、模拟器多开

如果要多开有两种方式,可以直接复制android-emulator-m1-preview安装并解锁后的软件,建议先打开一次,复制后改名即可同时启动。另一种方式就是使用Android Studio来创建多个模拟器,步骤如下:

1. 初始化安装

软件的安装比较简单,直接拖拽后启动,但是在第一次启动时需要进行一个设置流程。首先选择不导入【Do not import settings】:

继续下一步,然后选择标准化安装:

然后选择一个颜色风格,继续下一步,会默认下载一个版本的SDK及对应的模拟器,选择接受,如图:

接下来等待下载完成,如果过程中出现网络问题可以点击重试【应该需要开魔法】。

2. 创建新项目

点击New Projects按钮来创建一个新项目,目的是进入到SDK Manager的界面,所以随便选一个就好:

一直下一步,创建完成后会看到以下界面:

如果默认的模拟器不能满足需要,可以点击Create device

选择ABI为arm64-v8a的版本,如果没有下载,则先进行下载。

最后一步可以修改分配的内存等,并且可以在创建完成后随时修改【RAM及VM的修改需要通过配置文件】。但是如果需要存储较多的文件或安装较大应用,需要提前分配好SD card空间大小。

点击Finish完成创建,此时列表中已经出现了模拟器,点击绿色按钮启动即可。

3. 模拟器启动

以后每次启动Android Studio后,直接点击之前创建的项目就可以来到现在的界面了:

如果想创建多个模拟器,只要按照上面的步骤,不断的新建就可以了。

三、单应用构建【可选】

对于android-emulator-m1-preview的多开方式十分简单,但是只能是单一版本,本身已经是App的形式存在了。单应用构建主要是优化Android Studio的多开方式,每次不需要从Android Studio启动,可以用**自动操作【Automator】**封装成一个应用。

1. 查看SDK路径

打开偏好设置

依次点击Appearance & Behavior - System Settings - Android SDK,查看SDK的存放路径。

2. 查看模拟器路径

默认情况下,所有的模拟器都会存储在sdk路径下的emulator文件夹:

我们需要用到其中的一个可执行文件【emulator】来启动模拟器。首先查看已经创建的所有模拟器:

需要用到的名称也可以在Android Studio的Device Manager找到。

3. 进行应用封装

打开自动操作

找到运行Shell脚本,双击打开:

添加以下内容,结尾替换为自己的模拟器名称,然后点击右上角的运行进行测试:

cd /Users/xxx/Library/Android/sdk/emulator
./emulator -avd Pixel_2_API_32


测试通过后,使用CMD + S保存快捷键,自定义名称,并保存至应用程序文件夹:

4. 启动测试

直接运行封装的应用即可打开模拟器:

退出时正常从菜单关闭即可:

如果出现无法退出的情况,可以在活动监视器中搜索qemu,然后强制退出:

扫描下方二维码,加入CSDN官方粉丝微信群,可以与我直接交流,还有更多福利哦~
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/743477.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux kernel内存初始化介绍

early_fixmap_init: dtb进行映射,通过设备树文件和membloc模块让内核了解更为广阔的内存世界。Uboot将dtb拷贝到内存中,且通过传递相关参数将dtb的物理地址告知内核。但是内核必须将dtb的相关物理地址映射到虚拟地址上,通过虚拟地…

基于springboot的城乡医疗卫生服务系统

摘 要 网络的广泛应用给生活带来了十分的便利。所以把城乡医疗卫生服务与现在网络相结合,利用java语言建设城乡医疗卫生服务系统,实现城乡医疗卫生服务系统的信息化。则对于进一步提高医院的发展,丰富城乡医疗卫生服务经验能起到不少的促进作…

ModaHub魔搭社区:向量数据库Zilliz Cloud集群、Collection 及 Entity教程

目录 集群 Collection 字段 Schema 索引 Entity Zilliz Cloud 集群由全托管 Milvus 实例及相关计算资源构成。您可以在 Zilliz Cloud 集群中创建 Collection,然后在 Collection 中插入 Entity。Zilliz Cloud 集群中的 Collection 类似于关系型数据库中的表。Collection …

使用React的函数式组件实现一个具有过渡变化、刻度切换、点击高亮的柱状图DIY组件

本想使用业界大佬们开源的各种图表库(如:ECharts、G2可视化引擎、BizCharts ...),但是有的需求不仅要求有过渡变化,还要点击某个图高亮同时发送HTTP请求数据等功能,着实不知道怎么把canvas或svg绘制的图表弄…

ElasticSearch入门教程

文章目录 一、Elasticsearch 概述1.1、ElasticSearch是什么?1.2、ElasticSearch的安装 二、ElasticSearch的使用2.1、索引操作2.2、文档操作2.3、映射操作2.4、高级查询操作 一、Elasticsearch 概述 1.1、ElasticSearch是什么? 官网解释如图所示&#…

Rdkit|操作分子对象

github:地址 文章目录 RDKit|操作分子对象引入所需库获取分子中的原子获取原子的坐标信息访问单个原子的信息访问所有原子分子中的键操作获取键的信息 获取分子中所有的环 RDKit|操作分子对象 引入所需库 from rdkit import Chem from rdkit.Chem import Draw获取…

Mysql基本语法+Navicat使用

进入数据库:mysql -uroot -p 修改数据库密码:ALTER USER rootlocalhost IDENTIFIED BY 这里输入密码; (如:ALTER USER rootlocalhost IDENTIFIED BY 111111;) 创建数据库:create database 数据库名; 查…

刷题记录01

题目一. 这道题要先解释一下什么是非递增,非递增就是a[i] >a[i1],递增则是相反. 非递减就是a[i]>a[i1],递减就是相反 大方向思路是: 遍历数组判断相邻元素的顺序关系统计排序子序列数量 具体思路: 本题依次比较整个数组a[i1]>a[i] ,则进入非递增序列判…

在vue中点击弹框给弹框中的表格绑值

场景描述&#xff1a;如下图所示&#xff0c;我们需要点击 ‘账单生成’ 按钮&#xff0c;然后里边要展示一个下图这样的表格。 最主要的是如何展示表格中的内容&#xff0c;一起看看吧&#xff01; <template><!-- 水费 欠费--><el-dialog title"水费欠费…

静态图片转3D动态GIF/视频

Leiapix是一项令人印象深刻的技术&#xff0c;它可以让静态的图片动起来&#xff0c;为观众提供沉浸式和交互式的图像体验。这项创新的技术使用了Leia Inc.的自适应光栅屏幕技术&#xff0c;通过利用人眼的视差和立体视觉效应&#xff0c;将图像中的元素以动态的方式呈现出来&a…

《第一次线下面试总结》

《第一次线下面试总结》 面试时间&#xff1a;2023/7/11 上午10点 面试总时长20分钟。 实习薪资&#xff1a;2.3k…后期看表现&#xff0c;可根据实际情况那啥 。估计是看锤子… 一、HR面 自我介绍你哪里的、目前住哪里等基本信息。你偏向前端还是后端&#xff1f;说说你的项目…

电路分析基础学习(上)第7章

李瀚荪版电分第二版 目录 二阶电路的定义 电路中的等幅振荡与阻尼振荡 RLC电路的零输入响应 ----------------------------------------------------------------------------------------------------------------------------- 二阶电路的定义 二阶电路是指由电容、电感…

[QT编程系列-3]:C++图形用户界面编程,QT框架快速入门培训 - 2- QT程序的运行框架:HelloWorld、常见控件、对象树原理

目录 2. QT程序的运行框架 2.1 Hello World程序框架 2.2 QT Designer初识 2.3 用QT Designer设计用户登录界 2. QT程序的运行框架 2.1 Hello World程序框架 上述示例代码中&#xff0c;首先根据应用程序的需求使用 QCoreApplication 或 QApplication 定义 app 对象。如果你…

[综述] Generative AI meets 3D: A Survey on Text-to-3D in AIGC Era

论文&#xff5c; 改文章是23年5月27日挂在arxiv上&#xff0c;本文重点关注4.1节Text Guided 3D Avatar Generation、4.4节Text Guided 3D Shape Transformation和第5章Discussion Text Guided 3D Avatar Generation DreamAvatar DreamAvatar: Text-and-Shape Guided 3D Hu…

k8s中网络通讯简单介绍

1 前言 Kubernetes的网络模型假定了所有的pod都在一个可以直接连通的扁平的网络空间中&#xff0c;这在GCE&#xff08;Google Compute Engine&#xff09;里面是现成的网络模型&#xff0c;Kubernetes假设这定这个网络已经存在。但是在私有云里搭建Kubernetes集群&#xff0c;…

CHI read trans flow

Read transactions with DMT and without snoops 对于不产生snoop的read trans&#xff0c;建议使用DMT功能&#xff0c;如下图所示&#xff1a; 注意点&#xff1a; a. SNF并不需要给HNF回响应&#xff0c;因为RN发送的compack可以释放HNF处记录的请求; Read transaction wi…

《Redis 核心技术与实战》课程学习笔记(七)

切片集群&#xff1a;数据增多了&#xff0c;是该加内存还是加实例&#xff1f; 切片集群&#xff0c;也叫分片集群&#xff0c;就是指启动多个 Redis 实例组成一个集群&#xff0c;然后按照一定的规则&#xff0c;把收到的数据划分成多份&#xff0c;每一份用一个实例来保存。…

使用Dcoker Registry搭建私有镜像仓库

Dcoker Registry 和Harbor有什么相似和区别&#xff1f;各自有什么优劣&#xff0c;请详细介绍 Docker Registry和Harbor都是容器镜像仓库管理系统&#xff0c;用于存储、管理和分发Docker镜像。它们有一些相似之处&#xff0c;但也存在一些区别。下面是对它们的相似之处和区别…

idea导入springboot项目,下载的pom.xml文件是html格式。

一、可以看到我的pom.xml的parent标签 <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0…

使用cuda报错的一次记录(CUDA error: out of memory)

原因&#xff1a; 由于batch_size设置过大导致的&#xff01;&#xff01;&#xff01;