《第二章、DevEco Studio的使用》05 - 模拟器和真机调试
如果您想观看完整的系列教程,不妨移步到我的《HarmonyOSNext 应用开发教程》专栏中,进行仔细查阅 :前面,我们已经学习了预览器的使用,可以帮我们在开发鸿蒙应用的时候,实时的查看效果,并且针对不用设备进行预览。不过,如果想彻底体验鸿蒙应用的所有功能,仅靠预览器还远远不够。所以,DevEco Studio提供了模拟器(Emulator),为开发者提供了运行和调试 HarmonyOS 应用/服
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版本以及获取方式,然后介绍了模拟器的使用,如常用的交互操作与工具,最后了解了模拟器与真机的差异,以及真机调试方法。
以上就是给大家分享的模拟器的相关内容,这节课就介绍到这里,谢谢各位观看!!!
更多推荐






所有评论(0)