当前位置: 首页 > news >正文

HarmonyOs DevEco Studio小技巧39-模拟器的使用

使用环境

模拟器在本地计算机上创建和运行,在运行和调试应用/元服务时可以保持良好的流畅性和稳定性,但是需要耗费一定的计算机资源,具体的运行环境要求为:

系统类型

运行环境要求

Windows(X86)

  • Windows 10 企业版、专业版或教育版及以上,且操作系统版本不低于10.0.18363。
  • 具有二级地址转换 (SLAT) 的 64 位处理器。
  • CPU支持AES指令集。
  • CPU 支持 VM 监视器模式扩展(Intel CPU 的 VT-c 技术)。
  • 系统内存16GB及以上。
  • 不支持在虚拟机系统中运行模拟器。
  • 系统OpenGL版本4.1及以上。
  • 屏幕分辨率1280*800像素以上。

macOS(ARM)

  • macOS系统为12.5及以上版本。
  • 系统内存8GB及以上。
  • 不支持在虚拟机系统中运行模拟器。
  • 系统OpenGL版本4.1及以上。
  • 屏幕分辨率1280*800像素以上。

创建模拟器 

操作步骤

  1. 点击菜单栏的Tools > Device Manager,点击右下角的Edit设置模拟器实例的存储路径Local Emulator Location,Mac默认存储在~/.Huawei/Emulator/deployed下,Windows默认存储在C:\Users\xxx\AppData\Local\Huawei\Emulator\deployed下。
  2. Local Emulator页签中,单击右下角的New Emulator按钮,创建一个模拟器。

    在模拟器配置界面,可以选择一个默认的设备模板,首次使用时会提示“Download the system image first”,请点击设备右侧的下载模拟器镜像,您也可以在该界面更新或删除不同设备的模拟器镜像。单击Edit可以设置镜像文件的存储路径。Mac默认存储在~/Library/Huawei/Sdk下,Windows默认存储在C:\Users\xxx\AppData\Local\Huawei\Sdk下。

  3. 单击Next,核实确定需要创建的模拟器的名称,内存和存储空间,然后单击Finish创建模拟器。

启动和关闭模拟器 

在设备管理器页面,单击即可启动模拟器。模拟器启动时会默认携带上一次运行时的用户数据,包括用户上传的文件,安装的应用等。如果是新创建的模拟器,则不会携带用户数据。如果想清除上一次运行时的用户数据,点击Actions >  > Wipe User Data。 

在模拟器运行期间,可以点击Actions >  > Show on Disk显示模拟器在本地生成的用户数据。点击Actions > > Generate logs可以生成模拟器自启动到此刻的所有日志信息。想要关闭运行时的模拟器,可以在设备管理器页面点击,或者点击模拟器工具栏上的关闭按钮。 

模拟器关闭后,点击Actions > > Delete可以删除模拟器,并清除模拟器的用户数据和配置信息。 

操控屏幕

当模拟器运行时,您可以使用鼠标来模拟手指和设备屏幕进行交互,同时可以结合键盘来实现高级的屏幕操作,对应关系如下:

常用操作

描述

滑动屏幕

将鼠标放置屏幕上方,按住鼠标左键,在屏幕上轻扫,然后释放。

拖动项目

将鼠标放置屏幕中的项目上方, 按住鼠标左键,移动项目,然后释放。

单击屏幕

将鼠标放置屏幕上方,按住鼠标左键,然后释放。

双击屏幕

将鼠标放置屏幕上方,快速双击鼠标左键,然后释放。

长按屏幕

指向屏幕上的一个项目,按下鼠标左键,保持一段时间,然后释放。

输入文字

鼠标点击输入域,随后您可以使用计算机键盘或屏幕上弹出的软键盘在模拟器中键入文字。

双指缩放

Windows系统按下Control键(macOS上的Command)会弹出一个捏合手势多点触控界面。单击鼠标左键模拟按住双指,并释放鼠标左键模拟松开双指。鼠标充当第一个手指,穿过锚点是第二个手指。拖动光标以移动第一个点。

垂直滑动

在屏幕上打开一个垂直菜单,使用鼠标滚轮滚动菜单项。单击菜单项可进行选择。

复制粘贴

在计算机上复制一段文本后,您可以在模拟器屏幕的文本输入框内进行粘贴。可支持复制的最大文本长度为30000英文字符,超过该长度会对文本进行截断。

使用工具栏 

工具栏上集成了模拟器的各种调试工具和控制选项,其中的扩展菜单栏包含了更加丰富的扩展功能。注意,部分工具栏按键需要在模拟器开机亮屏后才能使用。以下对工具栏的各个按键功能作简要说明:

按键

功能描述

关闭

关闭模拟器

最小化

最小化模拟器窗口

更多

打开侧边扩展菜单

置顶

将模拟器置于所有打开窗口的顶层

左旋转

将设备屏幕逆时针旋转90度

右旋转

将设备屏幕顺时针旋转90度

增大音量

调高设备音量,长按可持续调高设备音量

减小音量

调低设备音量,长按可持续调低设备音量

截屏

生成当前屏幕的截图,并将图片保存在本地计算机

返回

返回上一屏幕或关闭对话框、选项菜单、通知面板或屏幕键盘

主屏

返回Home界面

最近

点按可打开最近使用过的应用的缩略图列表。要打开某个应用,请点按其缩略图。要从列表中删除缩略图,请向上滑动缩略图

摇一摇

触发设备摇一摇操作,详情参考摇一摇

电池

打开电池模拟面板,详情参考电池

GPS

打开GPS模拟面板,详情参考GPS定位

虚拟传感器

打开虚拟传感器面板,详情参考虚拟传感器

网络代理

打开网络代理面板,详情参考网络代理

设置

打开设置面板。可设置模拟器主题、截屏保存路径、模拟器使用语言

Bug报告

打开Bug报告面板。可以保存Bug日志到本地。点击发送可前往官网在线提单

关于

打开关于面板。可以查看模拟器相关信息及许可证

展开

仅支持可折叠设备。切换设备形态至展开态

悬停

仅支持可折叠设备。切换设备形态至悬停态,并显示折痕避让区

折叠

仅支持可折叠设备。切换设备形态至折叠态

移动和缩放模拟器 

安装应用程序包和上传文件 *

 

更多的扩展能力 

电池

您可以在模拟器上模拟不同电池状态。在扩展菜单栏上点击打开电池模拟界面。在该界面,您可以手动输入或拖动滑块来改变电量百分比,也可以点击切换电池的充电/放电状态。电池具有以下三种充电状态:

  • ENABLE:开启充电按钮,此时正在充电且电量没充满
  • NONE:关闭充电按钮,此时停止充电
  • FULL:开启充电按钮,且电量为100%。电量已充满

在应用中,您可以通过@ohos.batteryInfo模块查询模拟器的剩余电量以及充电状态。

GPS定位

模拟器可以模拟设备所处的位置。您可以打开扩展菜单,并点击

进行位置信息的设置。模拟器提供以下三种方式的GPS位置模拟:

  • 手动设置:在该界面,您可以手动输入此时所处位置的经度,纬度,海拔以及方位角。您也可以通过点击城市下拉框,快速定位到所选城市。
  • 导入:在导入界面您可以注入一段时间内的连续位置信息。点击导入本地的GPX文件,点击即可开始模拟GPX文件中的轨迹。此外,您还可以选择不同回放速率来改变移动的速度。
  • 场景模拟:如果没有本地的GPX文件,您可以在场景模拟界面使用我们预置的GPX文件。我们在模拟器内部预置了户外跑步、户外骑行、驾驶导航三种场景的GPX文件,点击即可开始轨迹模拟。

在应用中,您可以通过@ohos.geoLocationManager模块获取模拟器的位置信息。

虚拟传感器

模拟器提供了虚拟传感器来模拟硬件传感器的能力。在扩展菜单上点击

打开虚拟传感器界面。在该界面,您可以调节不同的传感器来测试您的应用,使用@ohos.sensor模块监听传感器值的变化。模拟器提供以下虚拟传感器:

  • 计步传感器:用于测量步数,对应的SensorId为PEDOMETER
  • 环境温度传感器:用于测量环境温度,对应的SensorId为AMBIENT_TEMPERATURE
  • 湿度传感器:用于测量湿度,对应的SensorId为HUMIDITY
  • 环境光传感器:用于测量光照强度,对应的SensorId为AMBIENT_LIGHT

您可以拖动滑动条或者直接在文本框输入来改变不同传感器的值。

摇一摇

模拟器可以模拟用户对设备的摇一摇操作。点击工具栏上的

,您可以模拟时长为1s的摇一摇操作。您的应用可以通过@ohos.sensor模块监听加速度传感器变化,当加速度传感器的变化量达到设定阈值时,触发摇一摇对应的业务逻辑。

音频输入

模拟器当前仅支持Audio Kit(音频服务)提供的音频输入能力,您可以使用本地计算机上的麦克风设备向模拟器中传输音频数据。使用步骤如下:

  1. 首先,请确保本地计算机已连接上麦克风设备。(如果电脑没有用,可尝试带耳机)
  2. 应用调用Audio Kit提供的API接口(如AudioCapturer、OHAudio)开始接收音频数据。
  3. 使用本地麦克风进行语音输入。

模拟器上的应用在调用相关API时,推荐使用如下格式的音频流信息格式,以保证清晰流畅的音质。

音频流信息

推荐值

samplingRate(采样率)

48000Hz

channels(通道数)

2

sampleFormat(采样格式)

带符号的16位整数

encodingType(编码格式)

PCM编码

网络代理

模拟器可以将网络请求代理到代理服务器,利用代理服务器去请求目标服务器。从而满足以下开发场景:

  • 开发者处于内网环境,希望通过设置代理的方式访问外网;
  • 开发者已经在DevEco Studio上配置了网络代理,不希望在模拟器上重复配置代理;
  • 开发者需要将网络请求代理到三方抓包工具,方便查看请求信息。

您可以打开扩展菜单,并点击

进行代理的配置。模拟器提供以下三种代理模式:

  • 使用DevEco Studio代理:读取并应用DevEco Studio上DevEco Studio > Preferences > Appearance&Behavior>System Settings>HTTP Proxy(Windows上为DevEco Studio > File >Setting> Appearance&Behavior>System Settings>HTTP Proxy)下的网络代理配置(模拟器不支持HTTP Proxy下的no proxy for功能),无需在模拟器上重复配置。同时模拟器会去监听DevEco Studio侧代理配置的更改,从而进行代理配置的同步。当DevEco Studio选择的是自动代理模式或者是SOCKS代理方式时,模拟器不支持,会切换到无代理模式。
  • 无代理:不使用代理,即发送网络请求时会直接去请求目标服务器。
  • 手工配置代理:配置代理服务器的信息,将网络请求代理到代理服务器上。

以上的代理配置需要点击

按钮生效,同时可以通过点击

按钮对当前的代理配置进行校验。在发起https请求时,需要安装网站的数字证书,请参考使用模拟器发起https请求时如何安装数字证书。

相关文章:

HarmonyOs DevEco Studio小技巧39-模拟器的使用

使用环境 模拟器在本地计算机上创建和运行,在运行和调试应用/元服务时可以保持良好的流畅性和稳定性,但是需要耗费一定的计算机资源,具体的运行环境要求为: 系统类型 运行环境要求 Windows(X86) Windows 10 企业版、专业版或教…...

【C语言】浮点数的原理、整型如何转换成浮点数

众所周知C语言中浮点数占四个字节,无论在32位或者64位机器上。不免会发出疑问四个字节是怎么计算出小数的呢?其实物理存放还是按照整型存放的。 IEEE 754 单精度浮点数格式 浮点数在计算机中是使用 IEEE 754 标准进行表示的。在 IEEE 754 标准中&#…...

TesseractOCR-GUI:基于WPF/C#构建TesseractOCR简单易用的用户界面

前言 前篇文章使用Tesseract进行图片文字识别介绍了如何安装TesseractOCR与TesseractOCR的命令行使用。但在日常使用过程中,命令行使用还是不太方便的,因此今天介绍一下如何使用WPF/C#构建TesseractOCR简单易用的用户界面。 普通用户使用 参照上一篇教…...

Elasticsearch高性能实践

前言 本方案主要从运维层面分析es是实际生产使用过程中的参数优化,深入理解es各个名词及含义,深入分析es的使用过程中应注意的点,详细解释参数设置的原因以及目的,主要包括系统层面,参数层面。除此之外,优…...

软件测试--录制与回放脚本

准备工作 安装phpstudy 配置两个内容 放demo44文件夹 在浏览器输入http://localhost/demo44/index.html,出现如图所示的网站 输入用户名和密码 步骤一:打开Virtual User Generator,点击新建,点击new 步骤二:点击如下…...

nodejs 06.npm的使用以及package.json详解

一.npm(npm | Home)的介绍 npm(Node Package Manager)是一个node.js的包管理工具,允许用户下载安装更新分享node.js包 二.npm相关命令以及作用 1.npm init -y 这条命令主要是当项目中没有package.json这个文件的时候生成package.json这个文件 2.npm i / npm install (包名) 这条…...

如何使用WinCC DataMonitor基于Web发布浏览Excel报表文档

本文介绍使用 WinCC DataMonitor 的 "Excel Workbooks" 功能,通过 Excel 表格显示 WinCC 项目的过程值、归档变量值和报警归档消息。并可以通过 Web 发布浏览访问数据 1.WinCC DataMonitor是什么 ? DataMonitor 是 SIMATIC WinCC 工厂智能中…...

颜色的基本处理

数码相机能够获取彩色图像,但相机的色彩处理是一个非常复杂的过程,是非常重要的。 此过程生产制造商在细节方面都是不公布的,但是基本的概念是相同的。当相机捕捉一个真实场景时,是怎么还原成人眼所看到的图像呢? 1.R…...

跟李笑来学美式俚语(Most Common American Idioms): Part 66

Most Common American Idioms: Part 66 前言 本文是学习李笑来的Most Common American Idioms这本书的学习笔记,自用。 Github仓库链接:https://github.com/xiaolai/most-common-american-idioms 使用方法: 直接下载下来(或者clone到本地…...

爬虫技术简介

1、爬虫简介 爬虫(Web crawler)是一种用于自动获取网页内容的程序。它可以通过模拟浏览器访问网页,并从中提取所需的信息,如文本、图片、链接等。爬虫在互联网上进行广泛应用,用于搜索引擎的网页抓取、数据挖掘、信息收集、内容监测等领域。 2、爬虫分类 爬虫的分类有以…...

如何打开Windows10的设备管理器

如何打开Windows10的设备管理器? 01 02...

scala列表

1 不可变 List 说明 (1)List 默认为不可变集合 (2)创建一个 List(数据有顺序,可重复) (3)遍历 List (4)List 增加数据 (5&#…...

c++检查某一文件是否存在

C17及以上版本,检查文件是否存在可以使用filesystem库 如果使用的是C11或C14,标准库并没有直接提供这样的功能。 可以使用平台特定的API,例如在Windows上使用 _access 函数,或在POSIX兼容系统(如Linux和macOS&#x…...

Scala的隐式类,隐式参数和值,隐式对象

1.Scala的隐式类定义语法:implicit class 类名(参数){ } 隐式类中参数只能定义一个,参数中的源类型与目标类型一一对应,只能从一种类型转换成另一种类型,不可以一对多或多对。 //隐式类:implicit class隐式转换函…...

LabVIEW实现HTTP通信

目录 1、HTTP通信原理 2、硬件环境部署 3、云端环境部署 4、HTTP通信函数 5、程序架构 6、前面板设计 7、程序框图设计 本专栏以LabVIEW为开发平台,讲解物联网通信组网原理与开发方法,覆盖RS232、TCP、MQTT、蓝牙、Wi-Fi、NB-IoT等协议。 结合实际案例,展示如何利用LabVIEW和…...

【EXCEL】 获取多列中 不为空的那一个数据

从多个表格筛选出来的上班时间是下表这样的 我要把他们放在同一列,这样方便后续处理,合并列输入下面这个公式即可 日期不加 TEXT() 函数 转日期格式;将得到是一串数字 TEXT(TEXTJOIN(", ",TRUE,B2:F2),&qu…...

VBA API 概述 | 宏编程

注:本文为 “VBA API 概述 | 宏编程 | 执行速度慢” 相关文章合辑。 VBA API 详解 Office 二次开发于 2020-12-17 22:27:10 发布 Office 版本变动 在 Office 2010 之前,微软仅提供 32-bit 版本的 Office。而自 Office 2010 起,出现了 32-b…...

pythonOpenCV篇:0基础带你python入门之常用函数

① 二值化函数 功能:将图像转换为二值图像(黑白图像),将像素值分为两种类别:前景(白)和背景(黑)。函数:cv2.threshold()参数: src:输…...

第十七届山东省职业院校技能大赛 中职组“网络安全”赛项资源任务书样题③

第十七届山东省职业院校技能大赛 中职组“网络安全”赛项资源任务书样题③ 模块A 基础设施设置与安全加固(200分)A-1 登录安全加固(Windows, Linux)A-2 Nginx安全策略(Linux)A-3日志监控(Windows)A-4中间件…...

【每日一题 基础题】验证回文串

LCR 018. 验证回文串 验证回文串 给定一个字符串 s ,验证 s 是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 本题中,将空字符串定义为有效的回文串 。 验证回文串 LCR 018. 验证回文串方法一:**筛选 判断…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...

【Linux】Linux 系统默认的目录及作用说明

博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...

【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制

使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

快速排序算法改进:随机快排-荷兰国旗划分详解

随机快速排序-荷兰国旗划分算法详解 一、基础知识回顾1.1 快速排序简介1.2 荷兰国旗问题 二、随机快排 - 荷兰国旗划分原理2.1 随机化枢轴选择2.2 荷兰国旗划分过程2.3 结合随机快排与荷兰国旗划分 三、代码实现3.1 Python实现3.2 Java实现3.3 C实现 四、性能分析4.1 时间复杂度…...

React核心概念:State是什么?如何用useState管理组件自己的数据?

系列回顾: 在上一篇《React入门第一步》中,我们已经成功创建并运行了第一个React项目。我们学会了用Vite初始化项目,并修改了App.jsx组件,让页面显示出我们想要的文字。但是,那个页面是“死”的,它只是静态…...

【51单片机】4. 模块化编程与LCD1602Debug

1. 什么是模块化编程 传统编程会将所有函数放在main.c中,如果使用的模块多,一个文件内会有很多代码,不利于组织和管理 模块化编程则是将各个模块的代码放在不同的.c文件里,在.h文件里提供外部可调用函数声明,其他.c文…...

C++11 constexpr和字面类型:从入门到精通

文章目录 引言一、constexpr的基本概念与使用1.1 constexpr的定义与作用1.2 constexpr变量1.3 constexpr函数1.4 constexpr在类构造函数中的应用1.5 constexpr的优势 二、字面类型的基本概念与使用2.1 字面类型的定义与作用2.2 字面类型的应用场景2.2.1 常量定义2.2.2 模板参数…...

【题解-洛谷】P10480 可达性统计

题目:P10480 可达性统计 题目描述 给定一张 N N N 个点 M M M 条边的有向无环图,分别统计从每个点出发能够到达的点的数量。 输入格式 第一行两个整数 N , M N,M N,M,接下来 M M M 行每行两个整数 x , y x,y x,y,表示从 …...