1. 前言
如果您想观看完整的系列教程,不妨移步到我的《HarmonyOS Next 应用开发教程》专栏中,进行仔细查阅 : https://blog.csdn.net/qq_35163541/category_12723932.html
前面,我们已经学习了预览器的使用,可以帮我们在开发鸿蒙应用的时候,实时的查看效果,并且针对不用设备进行预览。
不过,如果想彻底体验鸿蒙应用的所有功能,仅靠预览器还远远不够。所以,DevEco Studio提供了模拟器(Emulator),为开发者提供了运行和调试 HarmonyOS 应用/服务的便捷途径。
模拟器还原了真实设备的基本功能,如屏幕旋转、音量调节、模拟的硬件传感器和指定设备的位置等。这使得您无需拥有不同类型的物理设备,就可以在各种虚拟环境中轻松测试您的应用程序。
在某些情况下,在模拟器上进行应用测试,相比于在实际物理设备上的测试,有着更快速、更高效的体验。例如,模拟器提供了摇一摇的操作模拟,让您能够轻松触发摇一摇功能。
总的来说,无论是快速原型验证还是功能测试,模拟器都是满足您测试需求的最佳选择。几乎能满足大部分需求,不过对于一些特定功能,模拟器也不能表现得十分完美,例如,获取相机
、指纹
、人脸识别
等依赖硬件的功能。这些都会与真机存在差异性,这个将在后面介绍。
2. 模拟器介绍
下面我们来了解一下如何利用 HarmonyOS 模拟器调试应用。首先给大家介绍一下模拟器的版本以及模拟器的获取方式。
当前模拟器支持手机
、折叠屏
、平板
、二合一
四种设备,支持的pc平台,包括 Mac arm
、Mac X86
、Windows X86
三种,支持的 API 版本包含 api11 和 api12。在缺少真机的情况下,您可以使用模拟器进行HarmonyOS 应用的开发与调试。
3. 模拟器获取
如何在DevEco Studio
内完成模拟器镜像的下载与安装?
首先打开 IDE,点击 Tools
下的 Device Manager
,进入到设备管理页面。
如果您是第一次使用,打开的界面会提示您需要登录华为账号,界面如下:
点击
sign in
登录,若提示该帐号没有权限,弹出截图如下:
这是由于当前下载模拟器镜像需先申请参加模拟器Beta活动。若提示该帐号没有权限,请先点击“Submit the application form”完成权限申请。
Submit the application form 跳转地址 :
https://developer.huawei.com/consumer/cn/activity/201714466699051861/signup申请界面截图 :
若是账号已获取权限(已获取界面如下),在设备管理页面的底部栏中有一个设置模拟器的存储路径,单击edit
按钮。接下来单击右下角的 New Emulator
按钮创建模拟器。
在虚拟设备配置界面,您可以选择不同设备的模拟器镜像进行下载、更新与删除。在这里,我们以phone设备为例,点击下载,并在下载完成后点击右下角的next
。
接下来配置模拟器信息,可根据电脑的内存情况配置模拟器的运行内存和存储大小。配置完成后,点击Finish
,完成模拟器的创建,模拟器就可以运行起来了。
模拟器创建完毕后的界面如下,并可以通过三角形按钮进行启动模拟器。
4. 模拟器的常规使用
将模拟器下载安装完成后,来了解一下模拟器使用的方式与特性。
模拟器提供了一系列基础交互,如下表 :
常用操作 | 描述 |
滑动屏幕 | 将鼠标放置屏幕上方,按住鼠标左键,在屏幕上轻扫,然后释放。 |
拖动项目 | 将鼠标放置屏幕中的项目上方, 按住鼠标左键,移动项目,然后释放。 |
单击屏幕 | 将鼠标放置屏幕上方,按住鼠标左键,然后释放。 |
双击屏幕 | 将鼠标放置屏幕上方,快速双击鼠标左键,然后释放。 |
长按屏幕 | 指向屏幕上的一个项目,按下鼠标左键,保持一段时间,然后释放。 |
输入文字 | 鼠标点击输入域,随后使用计算机键盘或屏幕上弹出的软键盘在模拟器中键入文字。 |
双指缩放 | Windows系统按下Control键(macOS上的Command)会弹出一个捏合手势多点触控界面。单击鼠标左键模拟按住双指,并释放鼠标左键模拟松开双指。鼠标充当第一个手指,穿过锚点是第二个手指。拖动光标以移动第一个点。 |
垂直滑动 | 在屏幕上打开一个垂直菜单,使用鼠标滚轮滚动菜单项。单击菜单项可进行选择。 |
安装应用 | 将本地的 HAPpy 安装包拖动到屏幕上即可进行安装。 |
上传文件 | 将文件拖动至模拟器屏幕上即可。 |
在这里。特别介绍一下双指缩放,首先需要在 Windows
系统中按下Ctrl
键或在Mac
系统中按下 Comment
键,待弹出双指操作界面后,操控鼠标进行放大、缩小或移动光标等操作。
模拟器操作演示 :
5. 模拟器工具栏
接下来给大家介绍一下模拟器的工具栏,工具栏从上到下分别提供了各个功能。点击工具栏上方的更多按键,即可进入到模拟器的扩展菜单。扩展菜单中提供了更多关于硬件模拟的能力,包含电池、gps、传感器和网络代理等。
以下对工具栏的各个按键功能作简要说明:
按键 | 功能描述 |
关闭 | 关闭模拟器 |
最小化 | 最小化模拟器窗口 |
更多 | 打开侧边扩展菜单 |
置顶 | 将模拟器置于所有打开窗口的顶层 |
左旋转 | 将设备屏幕逆时针旋转90度 |
右旋转 | 将设备屏幕顺时针旋转90度 |
增大音量 | 调高设备音量,长按可持续调高设备音量 |
减小音量 | 调低设备音量,长按可持续调低设备音量 |
截屏 | 生成当前屏幕的截图,并将图片保存在本地计算机 |
返回 | 返回上一屏幕或关闭对话框、选项菜单、通知面板或屏幕键盘 |
主屏 | 返回Home界面 |
最近 | 点按可打开最近使用过的应用的缩略图列表。要打开某个应用,请点按其缩略图。要从列表中删除缩略图,请向上滑动缩略图 |
摇一摇 | 触发设备摇一摇操作,详情参考摇一摇 |
电池 | 打开电池模拟面板,详情参考电池 |
GPS | 打开GPS模拟面板,详情参考GPS定位 |
虚拟传感器 | 打开虚拟传感器面板,详情参考虚拟传感器 |
网络代理 | 打开网络代理面板,详情参考网络代理 |
设置 | 打开设置面板。可设置模拟器主题、截屏保存路径、模拟器使用语言 |
Bug报告 | 打开Bug报告面板。可以保存Bug日志到本地。点击发送可前往官网在线提单 |
关于 | 打开关于面板。可以查看模拟器相关信息及许可证 |
展开 | 仅支持可折叠设备。切换设备形态至展开态 |
悬停 | 仅支持可折叠设备。切换设备形态至悬停态,并显示折痕避让区 |
折叠 | 仅支持可折叠设备。切换设备形态至折叠态 |
6. 模拟器与真机的差异
最后我们来了解一下模拟器与真机的差异,因为蓝牙、NFC、相机等功能依赖硬件的能力。所以在模拟器上需要对这些能力进行虚拟,导致模拟器与甄姬有一些差异性。接下来我将给大家介绍几点模拟器与甄姬的差异。首先,模拟器不需要做应用签名就可以运行。
在 UI 开发方面,应用模拟器需要把手机的绘图指令转到 PC 上执行,所以会受到 PC 的限制。当前我们已支持 ArkUI 组件、Web、窗口管理、OpenGL ES 2.0/3.0指令,后续将会增加对Vulkan的支持。
表中列举了不同场景下模拟器详细的支持功能以及即将支持的功能,参考资料进行了解。
模拟器与真机的差异表:
场景 | 能力 | X86版本 | ARM版本 |
应用签名 | 模拟器不需要签名 | - | - |
UI开发 | ArkUI组件 | √ | √ |
Web | √ | √ | |
窗口管理 | √ | √ | |
OpenGL ES 2.0/3.0指令 | √ | √ | |
OpenGL ES 3.0扩展指令及3.0以上指令 | × | × | |
Vulkan | × | × | |
3D组件 | × | × | |
etc2/astc压缩纹理 | × | × | |
媒体 | 图片 | √ | √ |
播放音频 | √ | √ | |
播放视频(H264格式、软解码) | √ | √ | |
√ | √ | ||
录像 | × | × | |
拍照/扫码 | × | × | |
屏幕录制 | × | × | |
网络与连接 | WiFi(仅用于判断WiFi状态) | √ | √ |
本地网络(仅支持IPv4) | √ | √ | |
IPv6 | × | × | |
访问互联网 | √ | √ | |
设置代理 | √ | √ | |
蜂窝网络 | × | × | |
通知 | 系统通知 | √ | √ |
华为推送 | × | × | |
数据管理 | 用户首选项 | √ | √ |
键值型数据管理 | √ | √ | |
关系型数据管理 | √ | √ | |
分布式数据对象 | × | × | |
帐号管理 | 华为帐号 | × | √ |
DFX | HiLog | √ | √ |
FaultLog | √ | √ | |
HiTrace | × | × | |
定位 | 获取位置信息 | √ | √ |
地理逆编码 | × | √ | |
地图 | × | × | |
硬件模拟 | 屏幕旋转 | √ | √ |
GPS | √ | √ | |
电池 | √ | √ | |
传感器(步数、湿度、心率、光照强度、环境温度) | √ | √ | |
摇一摇 | √ | √ | |
麦克风 | √ | √ | |
相机 | × | × | |
安全 | 访问控制 | √ | √ |
安全控件 | √ | √ | |
通用密钥库 | √ | √ | |
加解密算法库 | √ | √ | |
证书管理 | √ | √ | |
asset store | √ | √ | |
指纹 | × | × | |
人脸识别 | × | × | |
生物检测 | × | × | |
应用测试 | 单元测试框架 | √ | √ |
UI测试框架 | √ | √ | |
预置应用 | 小艺输入法 | × | √ |
文件管理 | √ | √ | |
设置 | √ | √ | |
图库 | √ | √ | |
其他 | 多端设备模拟 | × | × |
自由流转 | × | × | |
分享 | × | × | |
AI | × | × |
7. 真机调试
在Phone和Tablet中运行HarmonyOS应用/服务的操作方法一致,可以采用USB连接方式或者无线调试的连接方式。两种连接方式是互斥的,只能使用一种,无法同时使用两种方式。
7.1. 前提条件
- 在Phone或Tablet上查看设置 > 系统中开发者模式是否存在,如果不存在,可在设置 > 关于手机/关于平板中,连续七次单击“版本号”,直到提示“开启开发者模式”,点击确认开启后输入PIN码(如果已设置),设备将自动重启,请等待设备完成重启。
- 在设备运行应用/服务需要根据为应用/服务进行签名章节,提前对应用/服务进行签名。
7.2. 使用USB连接方式
1、使用USB方式,将Phone或Tablet与PC端进行连接。
2、在设置 > 系统 > 开发者模式中,打开“USB调试”开关(确保设备已连接USB)。
3、在Phone或Tablet中会弹出“允许USB调试”的弹框,单击允许。
4、在菜单栏中,单击Run>Run'模块名称'或,或使用默认快捷键Shift+F10(macOS为Control+R)运行应用/服务。
5、DevEco Studio启动HAP的编译构建和安装。安装成功后,设备会自动运行安装的HarmonyOS应用/服务。以下是我 IDE 中识别好的真机:
7.3. 使用无线调试连接方式
1、将Phone/Tablet和PC连接到同一WLAN网络。
2、在开发者模式中,打开“无线调试”开关,并获取Phone/Tablet端的IP地址和端口号。
3、在PC中执行如下命令连接设备。
hdc tconn 设备IP地址:端口号
4、在菜单栏中,单击Run>Run'模块名称'或,或使用默认快捷键Shift+F10(MacOS为Control+R)运行应用/服务。
- DevEco Studio启动HAP的编译构建和安装。安装成功后,Phone/Tablet会自动运行安装的HarmonyOS应用/服务。
7.4. 常见问题
7.4.1. USB调试无法识别设备
DevEco Studio无法识别到已连接的设备,显示“No device”。
- 常见原因一
设备未开启“开发者模式”。
解决措施
在设备上打开“开发者模式”开关,打开“USB调试”开关或“无线调试”开关。
- 常见原因二
使用的USB连接线为充电线而非数据线,请更换为满足USB2.0标准的数据线;建议使用直连
方式,不要使用拓展坞。
- 常见原因三
当前的USB数据口可能损坏,请更换另一个USB数据口后重新尝试;检查端口驱动是否正
常。
- 常见原因四
hdc工具的进程或设备存在异常。
解决措施
1、执行如下命令,结束hdc的进程,然后尝试重新连接。 ./hdc kill
2、若按照步骤1操作后还是不能连接,请重启设备,然后尝试重新连接。
- 常见原因五
场景一:关闭“USB调试”开关,并且断开USB连接,重新打开“USB调试”开关。无法识别到设备。
场景二:打开“无线调试”开关后,进行无线调试连接,然后关闭“无线调试”开关后,又打开“USB调试”开关,进行USB调试。无法识别到设备。
解决措施
重启设备,连接USB,打开“USB调试”开关。
8. 课程总结
本节课首先给大家介绍了模拟器支持的设备类型、平台与api版本以及获取方式,然后介绍了模拟器的使用,如常用的交互操作与工具,最后了解了模拟器与真机的差异,以及真机调试方法。
以上就是给大家分享的模拟器的相关内容,这节课就介绍到这里,谢谢各位观看!!!