mac m1系统安装安卓手机模拟器

news2025/1/12 22:54:10

背景:本人是一名开发人员,本地小程序上的需要地图导航到手机上,所以找到一个mac(m1)安装安卓模拟器的方案,这里记录分享一下。

废话不多说直接上步骤,很详细跟着步骤走就能完成!!!

相关资源(边下载边看下面内容):

1.华为应用市场安装包(链接: https://pan.baidu.com/s/18XcPZwRgLJ7DCrI0gvYGUg 提取码: 1sd9)

2.安卓镜像(链接: https://pan.baidu.com/s/10oXiTv0P9LE1SGidGQJp5A 提取码: qi1u)

步骤一、安装Homebrew
如果你的Mac还没安装Homebrew, 先安装 Homebrew, Homebrew是Mac上非常优秀的软件包管理工具。 推荐国内的一键安装脚本,该脚本会自动设置国内源,复制安装命令粘贴到终端,回车开始执行,根据提示完成安装。

/bin/zsh -c “$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)”
步骤二、安装ADB
虚拟机正常运行需要ADB,将下面命令复制到终端后回车,按照提示安装。如果安装失败,多试2次。

brew install android-platform-tools
看下是否安装成功

adb devices
查看安装的位置

brew info android-sdk
步骤三、安装安卓镜像(Android-Emulator)
使用上面提供的资源“2.安卓镜像”直接安装。

将Android-Emulator文件移动到Applications目录,在启动台打开Android-Emulator应用程序(首次加载可能有点慢)。

首次启动会提示无法验证开发者,无视弹窗,转到系统设置-安全性与隐私,解锁认证,点击 取消 关闭弹窗,在偏好设置中选择仍要打开,首次启动完成。

ps: 首次安装之后会有一个很奇怪的提示框,先不着急,下个步骤设置一下就可以关闭掉。

步骤四、配置ADB
打开虚拟机的设置窗口-Settings;

取消勾选Use detected ADB location,点击后面的文件夹图标找到ADB文件; 路径 /opt/homebrew/Caskroom/android-platform-tools/33.0.1/platform-tools/adb

在系统根目录不显示/opt目录, 使用快捷键 ⌘⇧.(Command + Shift + .)来快速(在 Finder 中)显示隐藏文件;

顺着目录找到adb文件,点击open即可,重启虚拟机不显示弹窗表示配置完成。

·点击右下角三个点

image-20230409190047130

·点击左侧菜单设置,找到 use detected ADB location 并关闭,点击文件夹图标来选择位置

· 位置/opt/homebrew/Caskroom/android-platform-tools/33.0.2/platform-tools/adb ,顺着这个路径找

ps:如果看不到 opt 文件夹可以按下command + Shift + . 来显示隐藏文件夹

image-20230409190107923

·最后找到这个adb 并选择,点击Open即可

image-20230409190131729

·设置完之后可以关闭,后续要对配置文件进行设置。

image-20230409190202173

步骤五、修改虚拟机 基本设置

image-20230409190339611

·在应用程序中找到模拟器图标,右键选择“显示包内容” ,顺着这个路径找 /Contents/MacOS/api30-gphone-arm64-v8a/config.in

·修改红框中的内容

image-20230409190511179

img

·修改配置之后,需要把当前文件夹下的userdata-qemu.img文件删除掉

步骤六、新增一个图标
·在“应用程序”中找到模拟器,右键选择“显示简介”

img

·将自己喜欢的png图片拖动到左上角,等待出现绿色的加号,松开即可。

img

步骤七、设置语言
·以上步骤做完之后,就可以重启了,然后设置一下中文语言

img

img

img

img

ps:我这里因为已经添加过中文了,这里选择“添加语言”翻到最后面找到中文即可。添加完成之后可以点击右侧的2道横线,向上移动到第一位。

步骤八、添加华为应用市场

·直接将安装包拖动过来就可以了,然后去下载你喜欢的APP就可以喽。

img

·看到这里终于完成了,辛苦辛苦。

ps:手机会提示没有网络,其实是有网络的,不用管它,应用市场可以随意下载APP;还有就是自带的谷歌浏览器不能用,应该是开发者还没有开发好。

总结

安装的过程还是比较简单的,有啥问题可以评论区留言,以上就是今天的全部内容,记得三联

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

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

相关文章

【MySQL】delete和truncate的用法和区别

一、delete和truncate的用法 有如下数据表t_student 关键字delete和truncate都用来清除表中数据,语法结构为: delete from t_student;truncate table t_student; 两条SQL操作后的结果一样:删除了表中数据,但是会保留表的结构&a…

OpenAI Embedding:快速实现聊天机器人(一)

theme: orange 本文正在参加「金石计划」 上文 OpenAI Embedding:基于人工智能的搜索新篇章 有讲到Embedding的基础概念以及OpenAI Embedding 的能力和应用场景,这篇文章讲讲如何手把手构建聊天机器人。 聊天机器人介绍 聊天机器人作为一项重要的企业级服…

Qt 数据库SQL

Qt 数据库SQL用户接口层SQL接口层驱动层创建连接数据库查询两个数据库示例用户接口层、SQL接口层和驱动层是数据库系统中的三个重要组成部分,它们分别负责不同的功能。 用户接口层 用户接口层 用户接口层是用户与数据库系统交互的界面。它提供了一些简单易用的工具…

HDSF 简介

目录 一、HDFS 的设计特点是 二、什么零拷贝 2.1 传统情况: 2.2 零拷贝技术: 三、什么是DMA 四、HDFS 的关键元素 五、HDFS 运行原理 六、HDFS 数据合并原理 七、HDFS 写的原理 八、HDFS 读的原理 九、分块存储 十、 安全模式 十一、 MapRedu…

如何使用微服务架构?使用过程需要注意什么?

一、使用微服务架构的规范 1.1 服务拆分 微服务的服务拆分是根据业务领域和业务功能来划分的,目的是将复杂的单体应用程序分解为小型、自治的服务,每个服务都专注于处理一个特定的业务领域或功能。 以下是微服务拆分的一些常见策略: 领域…

JavaEE——volatile、wait、notify三个关键字的解释

文章目录一、volatile和内存可见性1.解释内存可见性问题2. volatile 的使用与相关问题二、wait 和 notify1.wait 方法2.notify() 方法3. 关于 notifyAll() 方法4. wait 和 sleep 之间的简单比较一、volatile和内存可见性 前面的文章,我们已经提及到了内存可见性问题…

硬件设计--stm32自动下载电路设计

1 参考博客: 1、Stm32 一键下载电路详解 2、启动模式,BOOT0和BOOT1详解 3、STM32自动ISP电路设计 4、STM32 USB接口 一键下载电路详解与过程分析 2 下载软件分享: 参考博客:FlyMcu - 用于STM32芯片ISP串口程序一键下载的免费软…

【速记】Postgresql中几个ResourceOwner的含义

几个ResourceOwner的含义 总结下几个resowner的含义: 事务结构内的resowner:TransactionState→curTransactionOwner 含义:跟随事务结构体创建,会申请内存,跟随事务结构释放。每层事务都有自己的curTransactionOwner…

Vivado 下按键实验

Vivado下按键实验 实验原理 PL通过按键的开关状态控制led的亮灭,按键按下的时候灯亮,按键未按下的时候灯灭。 这里的描述有些问题,PL_LED1为高的时候,LED两端的电压都为高,灯应该是不亮的,所以按照下面实…

口令暴力破解--Ftp协议暴力破解与Ssh协议暴力破解

Ftp协议暴力破解 FTP服务检测 FTP服务 FTP是一种文件传输协议, FTP服务默认端口为21。利用FTP服务器可以在本地主机和远程主机间进行文件传输。当FTP没有配置好安全控制,如对登录的源地址及密码尝试次数做限制,那么就会存在暴力破解可能。…

uniapp - 实现车牌号键盘与格子间隔显示组件,汽车牌照录入支持自定义样式、新能源等(附带组件完整源码,开箱即用,稍微改改就能用)

效果图 uniapp 全平台兼容,车牌号键盘输入、分格显示功能示例源码,注释很多! 可以直接复制一下,然后自己改改样式或功能就能使了。 示例源码 复制,运行。 &

基于神经网络的协同过滤-NCF

目录 1、摘要 2、引言 2.1协同过滤 2.2矩阵分解 3.准备工作 3.1学习隐性数据 3.2矩阵分解 ​3.3神经协同过滤 3.4广义矩阵分解 3.5多层感知器 3.6GMF和MLP的融合-NeuMF(神经矩阵分解) 4.总结 1、摘要 尽管最近的一些工作已经把深度学习运用到了推荐中&#xff0…

【mysql性能调优 • 一】mysql企业级安装部署(保姆级别教程)

前言 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系…

k8s 认证基础

0x00 前言 要想研究一个东西是不是存在安全问题,那么就要知道这个东西是什么,怎么用的,如何认证,认证方式等问题,了解这些才能更好的去解释学习安全问题。 0x01 访问控制 首先是k8s用户k8s用户分为service account以…

涨点技巧:Yolov5/Yolov7引入CVPR2023 Demystify Transformers Convolutions ,提升小目标检测精度

Demystify Transformers & Convolutions in Modern Image Deep Networks 论文:https://arxiv.org/pdf/2211.05781.pdf 视觉转换器最近的成功激发了一系列具有新颖特征转换范例的视觉主干,这些范例报告了稳定的性能增益。尽管新颖的特征转换设计通常被认为是收益的来源,…

0302Prim算法-最小生成树-图-数据结构和算法(Java)

文章目录1 Prim算法1.1 概述1.1.1 算法描述1.1.2 数据结构1.1.3 横切边集合维护1.2 延时实现1.2.1 实现代码1.2.2 性能分析1.3 即时实现1.3.1 分析1.3.2 实现代码1.3.3 性能分析结语1 Prim算法 1.1 概述 1.1.1 算法描述 算法描述: 初始化最小生成树,只…

Java classLoader

一. 什么是类加载器 类加载器 classLoader 类加载器:负责将.class文件(存储在硬盘上的物理文件)加载到内存中,是类加载器把类的字节码文件加载到内存当中的。二. 类加载的过程 每个编写的”.java”拓展名类文件都存储着需要执行的程序逻辑,…

vue项目Agora声网实现一对一视频聊天Demo示例(Agora声网实战及agora-rtc-vue使用,新增在线预览地址)

最终效果 在线预览地址 一、声网简介---->请查看官网 二、声网注册---->请自行百度(创建音视频连接需要在Agora注册属于您的appid) 三、具体实现视频聊天步骤 1、 实现音视频通话基本逻辑 1、创建对象 调用 createClient 方法创建 AgoraRTCCli…

ELK 日志系统收集K8s中日志

容器特性给日志采集带来的困难 • K8s弹性伸缩性:导致不能预先确定采集的目标 • 容器隔离性:容器的文件系统与宿主机是隔离,导致日志采集器读取日志文件受阻。 日志按体现方式分类 应用程序日志记录体现方式分为两类: • 标准…

最大似然估计法和Zero Forcing算法的思考

文章目录一、Zero Forcing 算法思想二、MMSE三、MIMO检测中 Zero Forcing 算法比 Maximum Likelihood 差的思考本篇文章是学习了B站UP主 乐吧的数学 之后的笔记总结,老师讲的非常好,大家有兴趣的可以关注一波!一、Zero Forcing 算法思想 那…