DevEco Studio支持使用多种语言进行应用/元服务的开发,包括ArkTS、JS和C/C++。在编写应用/元服务阶段,可以通过掌握代码编写的各种常用技巧,来提升编码效率。
新建工程(项目):
方法:
注意点:
参数解析:
Project name:工程的名称,可以自定义,由大小写字母、数字和下划线组成,必须由大小写字母开头,长度为1~200个字符。
Bundle name:标识应用的包名,用于标识应用的唯一性。
Save location:工程文件本地存储路径,由大小写字母、数字和下划线等组成,不能包含中文字符。
Compatible SDK:兼容的最低API Version。
Module name: 模块的名称。
Device type:该工程模板支持的设备类型。设备类型说明请参考deviceTypes标签。
C++ Standard:C++标准库。从DevEco Studio 6.0.1 Beta1开始,支持选择不同版本,取值包括:Toolchain Default、C++11、C++14。
注意点:
Bundle name(应用包名)要求:必须为以点号(.)分隔的字符串,且至少包含三段,每段中仅允许使用英文字母、数字、下划线(_),如“com.example.myapplication ”。
首段以英文字母开头,非首段以数字或英文字母开头,每一段以数字或者英文字母结尾,如“com.01example.myapplication”。
不允许多个点号(.)连续出现,如“com.example..myapplication ”。
长度为7~128个字符。
在完成创建HarmonyOS工程后,根据如下操作修改工程级build-profile.json5文件中相关字段:
API 26.0.0及之后版本:
API 26.0.0之前版本:
单击Sync Now进行同步:
在Sync Check弹窗中点击Yes,同意将module.json5/config.json文件中的phone切换为OpenHarmony支持的default类型,并删除在OpenHarmony不适用的其他设备类型,同步成功无其他报错则工程创建完成。
注意:
若选择Native C++模板创建OpenHarmony应用,且应用需要在RK开发板上运行,则需在对应Native模块的build-profile.json5文件buildOption/externalNativeOptions字段下,新增abiFilters字段并赋值为"armeabi-v7a"。
原有固定于界面上方的菜单栏,在新UI中收起到页面左上角工具栏中Main Menu主菜单图标内。点击图标即可展开菜单,继续选择需要执行的功能或操作。
主窗口两侧的工具窗口提供更丰富的功能选择。与经典UI相比,ArkUI Inspector、Services、Terminal、Problems、Version Control等功能图标在左侧工具窗口中呈现。点击工具窗口中Project图标,显示当前工程目录。
在新UI中,当前编辑的文件所在的工程路径将展示在页面左下方。
布局:
DevEco Studio将窗口分成五个区域:工具栏、工具窗口栏、工具窗口、编辑区和状态栏
工具栏:
窗口顶部,由主菜单、项目小部件、版本控制小部件、构建工具图标和运行小部件组成。(从左至右)
工具窗口栏:
窗口两侧,点击图标显示或者隐藏工具窗口
工具窗口:
悬停窗口两侧或者底部,补充代码编辑功能,常用:项目工具窗口:日志工具窗口、终端工具窗口和CodeGenie工具窗口。
具体如下表:
窗口名称 | 功能简介 |
项目工具窗口 | 查看项目目录结构 |
日志工具窗口 | 运行时输出日志信息 |
终端工具窗口 | 执行命令行任务 |
CodeGenie工具窗口 | 使用AI辅助工具 |
编辑区:
提供代码编辑功能
状态栏:
窗口底部、分为左右两侧,左侧通常作为导航栏,显示当前打开文件路径、切换文件等;右侧包含指示整个项目和IDE状态小部件:CodeGenie、语言服务、行:列好、行分隔符、文件编码、缩进和只读属性
包含:应用配置文件、ArkTS源码、资源文件和其他文件
应用配置文件:
全局配置文件app.json5、模块配置文件module.json5
ArkTS源码:
在ets目录下,entryability是应用入口,pages存放应用所包含的页面
资源文件:
在resources目录下,包含应用所需字符串、颜色、图标等资源。
资源可分为系统资源和应用资源。系统资源是系统提供的资源,开发者可以通过主题图标库、系统色彩全量表、字体获取系统图标、颜色、字体等资源信息。其中symbol图标还可通过SymbolGlyph对图标颜色等进一步设置。
其他文件:
主要有:工程级和模块级构建配置文件build-profile.json5、编译构建任务脚本hvigorfile.ts和依赖信息oh-package.json5
resources目录下包含base、dark和rawfile三部分
base目录:
包含element、media和profile三个子目录
dark目录:
只有当设备采用深色模式时,才会使用dark目录下的资源,管理方式和base目录一致
rawfile目录:
自由放置各类资源文件、比如:文本文件、字体文件和媒体资源。
和base的区别
文件名称 | 元素类型 | 备注 |
boolean.json | 布尔型 | |
color.json | 颜色 | |
float.json | 浮点型 | 范围:-2^128到2^128 |
intarray.json | 整型数组 | |
integer.json | 整型 | 范围:-2^31到2^31-1 |
plural.json | 复数形式 | |
strarray.json | 字符串数组 | |
string.json | 字符串 | 单个字符串最大长度为65535字节,超长字符串建议转换为文本文件存放在rawfile目录下 |
Sample
color.json文件的内容如下:
标准的十六进制颜色值由八位十六进制数字组成,前两位表示透明度,后六位表示颜色值。
float.json文件的内容如下:
string.json文件的内容如下:
plural.json文件的内容如下:
格式 | 文件后缀名 |
JPEG | .jpg |
PNG | .png |
GIF | .gif |
SVG | .svg |
WEBP | .webp |
BMP | .bmp |
格式 | 支持的文件类型 |
H.264 AVC | .3gp |
Baseline Profile (BP) | .mp4 |
限定词目录由一个或多个表征应用场景或设备特征的限定词组合而成,限定词包括移动国家码和移动网络码、语言、文字、国家或地区、横竖屏、设备类型、颜色模式和屏幕密度,限定词之间通过下划线(_)或者中划线(-)连接。开发者在创建限定词目录时,需要遵守如下限定词目录命名规则。
限定词的组合顺序:移动国家码_移动网络码-语言_文字_国家或地区-横竖屏-设备类型-颜色模式-屏幕密度。开发者可以根据应用的使用场景和设备特征,选择其中的一类或几类限定词组成目录名称。
限定词的连接方式:移动国家码和移动网络码之间采用下划线()连接,语言、文字、国家或地区之间也采用下划线()连接,除此之外的其他限定词之间均采用中划线(-)连接。例如:mcc460_mnc00-zh_Hant_CN、zh_CN-car-ldpi。
限定词的取值范围:每类限定词的取值必须符合限定词取值要求表中的条件。否则,将无法匹配目录中的资源文件。
限定词类型 | 含义与取值说明 |
移动国家码和移动网络码 | 移动国家码(MCC)和移动网络码(MNC)的值取自设备注册的网络。 MCC可与MNC合并使用,使用下划线(_)连接,也可以单独使用。例如:mcc460表示中国,mcc460_mnc00表示中国_中国移动。 详细取值范围,请查阅ITU-T E.212(国际电联相关标准)。 |
语言 | 表示设备使用的语言类型,由2~3个小写字母组成。例如:zh表示中文,en表示英语,mai表示迈蒂利语。 详细取值范围,请查阅ISO 639(ISO制定的语言编码标准)。 |
文字 | 表示设备使用的文字类型,由1个大写字母(首字母)和3个小写字母组成。例如:Hans表示简体中文,Hant表示繁体中文。 详细取值范围,请查阅ISO 15924(ISO制定的文字编码标准)。 |
国家或地区 | 表示用户所在的国家或地区,由2~3个大写字母或者3个数字组成。例如:CN表示中国,GB表示英国。 详细取值范围,请查阅ISO 3166-1(ISO制定的国家和地区编码标准)。 |
横竖屏 | 表示设备的屏幕方向,取值如下: - vertical:竖屏 - horizontal:横屏 |
设备类型 | 表示设备的类型,取值如下: - phone:手机 - car:车机 - tablet:平板 - tv:智慧屏 - wearable:智能穿戴 - 2in1:PC设备 |
颜色模式 | 表示设备的颜色模式,取值如下: - dark:深色模式 - light:浅色模式 |
屏幕密度 | 表示设备的屏幕密度(单位为dpi),取值如下: - sdpi:表示小规模的屏幕密度(Small-scale Dots Per Inch),适用于dpi取值为(0, 120]的设备。 - mdpi:表示中规模的屏幕密度(Medium-scale Dots Per Inch),适用于dpi取值为(120, 160]的设备。 - ldpi:表示大规模的屏幕密度(Large-scale Dots Per Inch),适用于dpi取值为(160, 240]的设备。 - xldpi:表示特大规模的屏幕密度(Extra Large-scale Dots Per Inch),适用于dpi取值为(240, 320]的设备。 - xxldpi:表示超大规模的屏幕密度(Extra Extra Large-scale Dots Per Inch),适用于dpi取值为(320, 480]的设备。 - xxxldpi:表示超特大规模的屏幕密度(Extra Extra Extra Large-scale Dots Per Inch),适用于dpi取值为(480, 640]的设备。 |
当应用引用的字符串资源需要支持国际化多语言翻译时,可使用attr属性标记字符串翻译范围和翻译状态。attr属性不参与资源编译,只标记字符串是否翻译。未配置attr属性时,默认需要翻译。
名称 | 类型 | 说明 |
translatable | boolean | 标记字符串是否需要翻译。 true:需要翻译。 false:不需要翻译。 |
priority | string | 标记字符串翻译状态。 code:未翻译。 translate:翻译未验证。 LT:翻译已验证。 customer:用户定制字符串。 |
打开File > Settings(macOS为DevEco Studio > Preferences/Settings)面板,在Editor > Color Scheme自定义各字段的高亮显示颜色。
在编辑器中,可以按住Ctrl键(macOS为Command键),鼠标单击代码中引用的类、方法、参数、变量等名称,自动跳转到定义处。
选中接口名称单击右键,在弹出的菜单中选择Go To > Implementation(s)(或使用快捷键Ctrl+Alt+B,macOS为Command+Option+B)实现跨语言跳转。
默认情况下,DevEco Studio已预置了代码格式化的规范,以个性化的设置各个文件的格式化规范,File > Settings > Editor > Code Style(macOS为DevEco Studio > Preferences/Settings > Editor > Code Style)下,选择需要定制的文件类型,如ArkTS,然后自定义格式化规范即可。
在使用代码格式化功能时,可以使用快捷键Ctrl + Alt + L(macOS为Option+Command +L) 快速对选定范围的代码进行格式化。
如果部分代码片段不需要进行自动的格式化处理,可以通过如下方式进行设置:
单击编辑器左侧边栏的折叠和展开按钮对代码块进行折叠和展开操作,还可以对选中的代码块单击鼠标右键选择折叠方式,包括折叠、递归折叠、全部折叠等操作。
使用快捷键Ctrl+/(macOS为Command+/)进行快速注释。对于已注释的代码块,再次使用快捷键Ctrl+/(macOS为Command+/)取消注释。
使用快捷键Alt + 7 / Ctrl + F12(macOS为Command+7)打开代码结构树,快速查看文件代码的结构树,包括全局变量和函数,类成员变量和方法等,并可以跳转到对应代码行。
在要查找的对象上,单击鼠标右键 > Find Usages或使用快捷键Alt +F7(macOS为Option + F7)。
在函数定义的代码块前,输入“/**”+回车键,快速生成注释信息。
通过对符号、类或文件的即时导航来查找代码。通过连续点击两次Shift快捷键,打开代码查找界面,在搜索框中输入需要查找内容,下方窗口实时展示搜索结果。
在编辑器中调用ArkTS/JS API或组件时,支持在编辑器中快速、精准调取出对应的参考文档。
可在编辑器中,鼠标悬停在需要查阅的接口或组件,弹窗将显示当前接口/组件在不同API版本下的参数等信息,单击弹窗右下角Show in API Reference;或选中接口或组件,右键点击Show in API Reference(或使用快捷键Alt+A,macOS为Option+A),可以快速查阅更详细的API文档。
使用编辑器提供的Optimize Imports,可以快速清除未使用的import,并根据设置的规则对import进行合并或排序。选择文件或目录,使用快捷键Ctrl+Alt+O(macOS为Control+Option+O),或单击菜单栏Code > Optimize Imports。
修改优化配置,进入File > Settings(macOS为DevEco Studio > Preferences/Settings) > Editor > Code Style,选择开发语言(当前以ArkTS为例),在Imports标签页中,可选择在优化时是否需合并来自同一模块的import,是否需要对同一条import语句导入的元素进行排序,或对多条import语句按模块排序。
编辑器支持快速跳转至当前接口、类、方法、属性的子类/父类。点击代码编辑区域左侧的Gutter Icons(装订线图标)可以跳转到对应的父/子接口或类。如有多个继承关系,在弹窗的文件列表中选择需要查看的接口/类即可。
功能默认开启,可以通过菜单栏进入File > Settings(macOS为DevEco Studio > Preferences/Settings) > Editor > General > Gutter Icons,通过勾选或取消勾选Implemented、Implementing、Overridden、Overriding四项可以开启或关闭该功能。
编辑器支持查看当前接口/类父类或子类的层次结构。选中或将光标放置于类/接口名称处,使用快捷键Ctrl+H(macOS为Control+H),或在菜单栏Navigate页签下选择Type Hierarchy,在弹出的Hierarchy窗口中查看接口/类的继承关系结构。
Hierarchy窗口按钮功能:
图标 | 功能 |
![]() | 显示所选类的父类和子类。 该功能不支持查看接口的继承关系。 |
![]() | 显示当前类/接口的父类。 |
![]() | 显示当前类/接口的子类。 |
![]() | 按字母顺序对继承关系结构树中的所有同级元素进行排序。 |
![]() | 更新所有的类/接口的继承关系结构。 |
![]() | 默认双击结构树中类/接口名称时,编辑窗口将跳转至所选类/接口所在的代码位置。勾选该选项后,单击结构树中类/接口名称,即可跳转访问。 |
![]() ![]() | 展开/折叠继承关系结构。 |
![]() | 锁定当前Hierarchy窗口显示于编辑窗口上。 |
![]() | 将类/接口的继承关系结构导出到文本文件中。 |
![]() | 关闭工具窗口。 |
选中或将光标放置于装饰器/变量属性定义处,点击右键选择Show State Variable Binding Relationship,在State Variables弹窗中查看ArkUI组件状态变量绑定关系。
当前支持查看以下状态变量绑定关系:
State Variables窗口按钮功能:
图标 | 功能 |
![]() | 更新所有的状态变量关系。 |
![]() | 移动到上一个节点。 |
![]() | 移动到下一个节点。 |
![]() ![]() | 展开/折叠状态变量关系。 |
在编辑时启用Inlay Hints嵌入提示功能,可以提供有关参数名称、类型等代码说明信息,提升代码可读性。
进入File > Settings(macOS为DevEco Studio > Preferences/Settings) > Editor > Inlay Hints,配置勾选希望展示的变量名称、属性、参数、返回值类型,点击OK后生效。
在编辑页面选中代码行或类、方法、参数、变量等名称,右键选择Copy / Paste Special > Copy Reference,将自动复制定义处的地址。复制成功的地址可以在双击Shift弹出的搜索框中进行搜索,帮助开发者快速找到该接口的定义位置。
提供代码的自动补全能力,编辑器工具会分析上下文,并根据输入的内容,提示可补全的类、方法、字段和关键字的名称等,支持模糊匹配。
自动补全功能默认按最短路径进行排序,如仅需按照最近使用过的类、方法、字段和关键字等名称提供补全内容排序,可以在File > Settings(macOS为DevEco Studio > Preferences/Settings) > Editor > General > Code Completion 中勾选“Sort suggestions by recently used”。
如果已勾选代码补全按最近使用排序但未生效,请检查Code Completion页面,确保“Sort suggestions alphabetically”已取消勾选。
DevEco Studio提供Override Methods,辅助开发者根据父类模板快速生成子类方法,提升开发效率。将光标放于子类定义位置,使用快捷键Ctrl+O(macOS为Control+O),或右键单击Generate...,选择Override Methods,指定需要覆写的对象(方法、变量等),点击OK将自动生成该对象的覆写代码。
编辑器支持为类快速生成一个对应的构造函数。
在类中使用快捷键Alt+Insert(macOS为Command+N),或单击鼠标右键选择Generate...,在弹窗中选择Constructor,选择一个或多个需要生成构造函数的参数,点击OK。若选择Select None,则生成不带参数的构造器。
编辑器支持为类成员变量或对象属性快速生成get和set方法。
将光标放置在当前类中,单击右键选择Generate...>Getter and Setter,或者使用快捷键Alt+Insert(macOS为Command+N),在菜单中选择Getter and Setter,完成方法快速生成。
编辑器支持将HSP和HAR模块中变量、方法、接口、类等需要对外暴露的信息,通过Generate...>Declarations功能,批量在Index.ets文件中进行声明,便于其他模块调用。
在HSP或HAR模块内的文件编辑界面,单击右键选择Generate...>Declarations,或者使用快捷键Alt+Insert(macOS为Command+N),在菜单中选择Declarations,按住快捷键Ctrl并选择需要声明的变量名、方法名、接口名、类名等,即可在模块的Index.ets文件中批量生成相应的声明信息。
DevEco Studio支持代码快速修复能力,辅助开发者快速修复ArkTS或C++代码问题。
查看告警信息:使用双击Shift快捷键打开文件查询框,输入problems打开问题工具面板;双击对应告警信息,可以查看告警的具体位置及原因。
快速修复:将光标放在错误告警的位置,可在弹出的悬浮窗中查看问题描述和对应修复方式;单击More actions可查看更多修复方法。或是在页面出现灯泡图标时,可点击图标并根据相应建议,实现代码快速修复。
Code Linter支持对模块内文件或文件夹中的代码进行最佳实践/编程规范方面的检查。
新建工程时,工程根目录下默认创建code-linter.json5配置文件,可对代码检查的范围及对应生效的检查规则进行配置。若使用历史工程进行开发,可在工程中右键选择Code Linter > Generate Config File创建code-linter.json5配置文件。
其中files和ignore配置项共同确定了代码检查范围,ruleSet和rules配置项共同确定了生效的规则范围。具体配置项功能如下:
files:配置待检查的文件名单,如未指定目录,将检查当前被选中的文件或文件夹中所有的.ets文件。
ignore:配置无需检查的文件目录,其指定的目录或文件需使用相对路径格式,相对于code-linter.json5所在工程根目录,例如:build/**/*。
ruleSet:配置检查使用的规则集,规则集支持一次导入多条规则。规则详情请参见Code Linter代码检查规则。目前支持的规则集包括:
rules:可以基于ruleSet配置的规则集,新增额外规则项,或修改ruleSet中规则默认配置,例如:将规则集中某条规则告警级别由warn改为error。
overrides:针对工程根目录下部分特定目录或文件,可配置定制化检查的规则。
extRuleSet:配置需要检查的自定义规则。
在已打开的代码编辑器窗口右键点击Code Linter,或在工程管理窗口中鼠标选中单个或多个工程文件/目录,右键选择Code Linter > Full Linter执行代码全量检查。
对Git工程中增量文件(包含新增/修改/重命名)进行检查,可在commit界面右下角点击齿轮图标,选择Incremental Linter执行增量检查。
扫描完成后,在底部工具面板查看检查结果。勾选Defects中不同告警等级,可分别查看对应告警级别的信息。点击Filter by scene下拉菜单,可以筛选不同规则的检查结果。双击某条告警结果,可以跳转到对应代码缺陷位置;选中告警结果时,可以在右侧Defect Description窗口查看告警对应的规则详细说明,其中包含正向和反向示例,并根据其中的建议修改代码;搜索规则时,可设定是否全词匹配和大小写敏感。
屏蔽告警信息:
导出检查结果:点击工具面板左侧导出按钮,即可导出检查结果到excel文件,包含告警所在行,告警明细,告警级别等信息。
从DevEco Studio 6.0.1 Beta1开始,支持通过命令行方式进行代码检查。在DevEco Studio安装包\deveco-studio\plugins\codelinter\run目录下打开cmd或者bash窗口,执行如下命令:
注意:
若未配置代码检查规则文件,直接执行Code Linter,将按照默认的编程规范规则对.ets文件进行检查。
Code Linter不对如下文件及目录进行检查:
预览器支持ArkTS/JS应用/元服务“实时预览”和“动态预览”。
实时预览:在开发界面UI代码过程中,如果添加或删除了UI组件,您只需Ctrl+S进行保存,然后预览器就会立即刷新预览结果。如果修改了组件的属性,则预览器会实时(亚秒级)刷新预览结果,达到极速预览的效果(当前版本极速预览仅支持ArkTS组件。支持部分数据绑定场景,如@State装饰的变量)。实时预览默认开启,如果不需要实时预览,请单击预览器右上角按钮,关闭实时预览功能。
动态预览:在预览器界面,可以在预览器中操作应用/元服务的界面交互动作,如单击、跳转、滑动等,与应用/元服务运行在真机设备上的界面交互体验一致。
以ArkTS为例,使用预览器的方法如下:
ArkUI预览支持页面预览、组件预览、多断点预览和卡片预览。

ArkTS应用/元服务支持页面预览。页面预览通过在工程的ets文件头部添加@Entry实现。
ArkTS应用/元服务支持组件预览。组件预览支持实时预览,不支持动态图和动态预览。组件预览通过在组件前添加注解@Preview实现,在单个源文件中,最多可以使用10个@Preview装饰自定义组件。
ArkTS应用/元服务支持多断点预览,可以同时展示8个典型档位断点的预览画面。在多断点预览模式下,不支持实时预览和极速预览;如果图片太大或图片太多,预览时可能无法显示。多断点预览通过在工程的ets文件头部添加@Entry实现。
每个断点预览画面上均可点击查看该断点档位下的组件树。
支持代码编辑器、UI界面和组件树三者之间的联动:
创建卡片并选中卡片文件后,点击右侧边栏Previewer按钮即可预览卡片。
由于真机设备型号众多,不同设备型号的屏幕分辨率可能各不相同。因此,在HarmonyOS应用/元服务开发过程中,为了适配多种设备型号,可能需要查看不同设备上的界面显示效果。
DevEco Studio的预览器提供了Profile Manager功能,支持开发者自定义预览设备Profile(包含分辨率和语言),从而可以通过定义不同的预览设备Profile,查看HarmonyOS应用/元服务在不同设备上的预览显示效果。当前支持自定义设备分辨率及系统语言。
定义设备后,可以在Previewer右上角,单击按钮,打开Profile管理器,切换预览设备。
操作步骤:
DevEco Studio支持HarmonyOS分布式应用/元服务开发,同一个应用/元服务可以运行在多个设备上。在HarmonyOS分布式应用/元服务的开发阶段,因不同设备的屏幕分辨率、形状、大小等不同,开发者需要在不同的设备上查看应用/元服务的UI布局和交互效果,此时便可以使用多端设备预览器功能,方便开发者在应用/元服务开发过程中,随时查看不同设备上的界面显示效果。
多端设备预览最多同时支持4个设备的预览。
操作:
DevEco Studio提供HarmonyOS应用/元服务的UI预览界面与源代码文件间的双向预览功能,支持ets文件与预览器界面的双向预览。
不支持服务卡片的双向预览功能。
开启双向预览功能后,支持代码编辑器、UI界面和组件树三者之间的联动:
注意:
使用Hamock在预览场景模拟,需要在工程或模块的oh-package.json5中添加该依赖,然后重新同步工程。
Hamock提供了@MockSetup用于修饰Mock方法,仅支持声明式范式的组件。当开发者预览该组件时,预览运行时将在组件初始化时执行被@MockSetup修饰的方法。因此,开发者可以在这个被修饰的方法内重定义组件的方法或重赋值组件的属性,其将在预览时生效。
@MockSetup修饰的方法仅在预览场景会自动触发,并先于组件的aboutToAppear执行。
在ArkTS页面代码中引入Hamock。
在目标组件中定义一个方法,并用@MockSetup修饰该方法。在这个方法中,使用MockKit模拟目标方法。
在ArkTS页面代码中引入Hamock。
在目标组件中定义一个方法,并用@MockSetup修饰该方法。在这个方法中,对于需要Mock的属性,可以重新赋值。
模块的Mock支持对系统模块、依赖模块及本地模块的Mock,通过新建ArkTS文件定义Mock实现代码,并在mock-config.json5配置文件中定义目标模块与Mock实现代码文件的映射关系。目标模块与Mock实现代码文件为一对一的关系,即对于同一目标模块,仅支持一份Mock实现代码,预览运行时,所有页面import目标模块都将指向这一份Mock实现代码。
在src/mock目录下新建一个ArkTS文件,在这个文件内定义目标模块的Mock实现。
在Mock配置文件src/mock/mock-config.json5中定义目标模块与Mock实现的替换关系。该替换关系会在预览场景下生效。
在原调用处中添加Hilog日志,方便在预览时,在Log中打印获取返回值,从而验证Mock是否生效。
在src/mock目录下新建一个ArkTS文件,在这个文件内定义目标模块的Mock实现。
其中CommonUtils.ets文件示例如下:
在Mock配置文件src/mock/mock-config.json5中定义目标模块与Mock实现的替换关系。该替换关系会在预览场景下生效。
在原调用处中添加Hilog日志,方便在预览时,在Log中打印获取返回值,从而验证Mock是否生效。
组件 | API |
基础组件 | AlphabetIndexer |
Blank | |
Button | |
Checkbox | |
CheckboxGroup | |
DataPanel | |
DatePicker | |
Divider | |
Gauge | |
Image | |
ImageAnimator | |
ImageSpan | |
LoadingProgress | |
Marquee | |
Menu | |
MenuItem | |
MenuItemGroup | |
Navigation | |
NavRouter | |
NavDestination | |
PatternLock | |
Progress | |
QRCode | |
Radio | |
Rating | |
ScrollBar | |
Search | |
Select | |
Slider | |
Span | |
Stepper | |
StepperItem | |
Text | |
TextArea | |
TextClock | |
TextInput | |
TextPicker | |
TextTimer | |
Toggle | |
容器组件 | Badge |
Column | |
ColumnSplit | |
Counter | |
Flex | |
FlowItem | |
GridCol | |
GridRow | |
List | |
ListItem | |
ListItemGroup | |
Navigator | |
Panel | |
Refresh | |
RelativeContainer | |
Row | |
RowSplit | |
Scroll | |
SideBarContainer | |
Stack | |
Swiper | |
Tabs | |
TabContent | |
WaterFlow | |
绘制组件 | Circle |
Ellipse | |
Line | |
Polyline | |
Path | |
Rect | |
Shape | |
画布组件 | Canvas |
CanvasGradient | |
CanvasPattern | |
CanvasRenderingContext2D | |
ImageBitmap | |
ImageData | |
Matrix2D | |
OffscreenCanvasRenderingContext2D | |
Path2D |
组件 | API |
基础组件 | button |
chart | |
divider | |
image | |
image-animator | |
input | |
label | |
marquee | |
menu | |
option | |
picker | |
picker-view | |
piece | |
progress | |
qrcode | |
rating | |
search | |
select | |
slider | |
span | |
switch | |
text | |
textarea | |
toolbar | |
toolbar-item | |
toggle | |
容器组件 | badge |
dialog | |
div | |
form | |
list | |
list-item | |
list-item-group | |
panel | |
popup | |
refresh | |
stack | |
stepper | |
stepper-item | |
swiper | |
tabs | |
tab-bar | |
tab-content | |
画布组件 | canvas |
CanvasRenderingContext2D | |
Image | |
CanvasGradient | |
ImageData | |
Path2D | |
ImageBitmap | |
OffscreenCanvas | |
OffscreenCanvasRenderingContext2D | |
栅格组件 | grid-container |
grid-row | |
grid-col | |
svg组件 | svg |
rect | |
circle | |
ellipse | |
path | |
line | |
polyline | |
polygon | |
text | |
tspan | |
textPath | |
animate | |
animateMotion | |
animateTransform |
模块 | API |
@ohos.animator (动画) | Animator |
AnimatorResult | |
AnimatorOptions | |
@ohos.mediaquery (媒体查询) | matchMediaSync |
MediaQueryResult | |
MediaQueryListener | |
@ohos.promptAction (弹窗) | showToast |
showDialog | |
showActionMenu | |
ShowToastOptions | |
Button | |
ShowDialogSuccessResponse | |
ShowDialogOptions | |
ActionMenuSuccessResponse | |
ActionMenuOptions | |
@ohos.router (页面路由) | pushUrl |
replaceUrl | |
back | |
clear | |
getLength | |
getState | |
enableAlertBeforeBackPage | |
disableAlertBeforeBackPage | |
getParams | |
RouterMode | |
RouterOptions | |
RouterState | |
EnableAlertOptions |
模块 | API |
@ohos.net.http (数据请求) | http.createHttp 如果Http请求需要配置代理才能访问,API 12及以上的预览器支持使用系统的http_proxy/https_proxy/no_proxy环境变量。 |
模块 | API |
@ohos.data.preferences (用户首选项) | data_preferences.getPreferences |
data_preferences.deletePreferences | |
data_preferences.removePreferencesFromCache | |
Preferences | |
ValueType |
支持在预览/预览调试Stage模型的HAP/HSP时,使用文件管理的相关API,并且需要先打开Enable file operation开关。
模块 | API |
@ohos.file.fs (文件管理) | fs.open |
fs.close | |
fs.fdatasync | |
fs.fsync | |
fs.read | |
fs.write | |
fs.mkdir | |
fs.mkdtemp | |
fs.rename | |
fs.rmdir | |
fs.unlink | |
fs.stat | |
fs.truncate |
模拟器在本地计算机上创建和运行,能够在运行和调试应用/元服务时保持良好的流畅性和稳定性,但会占用一定的计算机资源,请确保预留充足的系统CPU和内存资源,具体的运行环境要求如下。
类别 | 最低要求 | 推荐 |
操作系统 | Windows 10企业版、专业版或教育版及以上,且操作系统版本不低于10.0.18363 | 最新的64位Windows |
CPU |
|
由于性能不足,不推荐使用 Intel® Core™ N 系列和 U 系列处理器 |
RAM | 16GB | 32GB及以上 |
磁盘空间 | 16GB | 32GB及以上 |
屏幕 | 屏幕分辨率1280*800像素以上 | 屏幕分辨率1920*1080像素以上 |
GPU |
|
|
模拟器是运行在Mac或Windows电脑上的虚拟机应用,会使用电脑的硬件资源,包括CPU、内存和网络连接等。这些资源在容量和速度上可能与真机存在显著差异。因此,模拟器不适合用于测试应用/元服务的性能(如数据处理、图形渲染、网络速度)、资源占用(如内存、CPU、功耗),模拟器的性能测试结果仅能用于评估应用功能的相对差异。如需获取真实场景下的用户体验数据,建议在真机上进行测试。
模拟器不支持heif格式的图片。
视频播放:模拟器仅支持h264文件格式,并且是RGBA像素格式的视频文件。
模拟器不支持视频录制/转码/处理、屏幕录像。
当前部分Kit在模拟器上使用时,和真机存在差异。
模拟器和真机的其他重要差异 | 影响场景 |
SIM卡 | 不支持拨打电话、发送短信 |
USB | 不支持连接、数据传输 |
蓝牙 | 不支持蓝牙设备扫描、连接、数据传输 |
星闪 | 不支持星闪设备扫描、连接、数据传输、分布式能力 |
NFC | 不支持NFC卡片读写、刷卡 |
TEE(Trusted Execution Environment,可信执行环境) | 不支持安全GPS、设备证书等,部分安全相关Kit暂不支持,详情参考安全Kit简介 |
NPU | 部分AI相关Kit暂不支持,详情参考AI Kit简介 |
生物识别 | 不支持指纹、人脸认证等 |
摄像头/麦克风 | 依赖电脑设备,不支持多摄像头切换(广角/长焦)、闪光灯、降噪算法等 |
电源 | 模拟电源,不支持温控、快充等场景 |
DevEco Studio会预置模拟器,开发者无需创建即可快速使用。
Name:设置模拟器的名称。
Screen Profile:从DevEco Studio 6.0.0 Beta1版本开始,部分设备支持选择预置的机型配置或自定义屏幕配置,具体支持的设备请参考自定义屏幕配置。可点击下拉框选择预置的机型配置,也可点击Customize自定义配置,在自定义配置的情况下可以对屏幕尺寸、分辨率和DPI进行修改,取值范围参考界面提示。
如果是Car设备,还支持新增或删除屏幕,关于多屏能力的介绍请参考Car设备多屏能力。
Screen size:屏幕的对角线长度,单位为inch。
Resolution:分辨率,包括宽度和高度,单位为px。
DPI:像素密度,DPI 越高,UI组件占用的像素点越多,从而提供更精细的显示效果。
Boot options:模拟器启动方式。从DevEco Studio 6.1.0 Beta1版本开始支持。
Cold boot:冷启动,以开机启动的方式重新启动。
Quick boot:热启动,启动时加载上次关闭时保存的快照,启动后会恢复至上次关闭时的状态。
Memory:设置模拟器的内存。
Storage:设置模拟器的存储空间。
确认所有参数后,点击Finish创建模拟器。
创建后的模拟器会展示在设备列表中(最多10个),选择模拟器后,点击运行按钮,即可一键完成启动模拟器、编译构建、推包运行操作。
在设备管理器页面,单击启动模拟器。
在设备管理器页面,单击即可启动模拟器。模拟器启动时会默认携带之前运行时的用户数据,包括用户上传的文件,安装的应用等。
在模拟器运行期间,可以点击Actions > > Show on Disk显示模拟器在本地生成的用户数据。点击Actions > > Generate logs可以生成模拟器自启动到此刻的所有日志信息。想要关闭运行中的模拟器,可以在设备管理器页面点击,或者点击模拟器工具栏上的关闭按钮。
模拟器关闭后,点击Actions > > Delete可以删除模拟器,并清除模拟器的用户数据和配置信息。
常用操作 | 描述 |
滑动屏幕 | 将鼠标放置屏幕上方,按住鼠标左键,在屏幕上轻扫,然后释放。 |
拖动项目 | 将鼠标放置屏幕中的项目上方, 按住鼠标左键,移动项目,然后释放。 |
单击屏幕 | 将鼠标放置屏幕上方,按住鼠标左键,然后释放。 |
双击屏幕 | 将鼠标放置屏幕上方,快速双击鼠标左键,然后释放。 |
长按屏幕 | 指向屏幕上的一个项目,按下鼠标左键,保持一段时间,然后释放。 |
输入文字 | 鼠标点击输入域,随后您可以使用计算机键盘或屏幕上弹出的软键盘在模拟器中键入文字。 |
双指缩放 | Windows系统按下Ctrl键(macOS上为Command)会弹出一个捏合手势多点触控界面。单击鼠标左键模拟按住双指,并释放鼠标左键模拟松开双指。鼠标充当第一个手指,穿过锚点是第二个手指。拖动光标以移动第一个点。 |
垂直滑动 | 在屏幕上打开一个垂直菜单,使用鼠标滚轮滚动菜单项。单击菜单项可进行选择。 |
复制粘贴 | 在计算机上复制一段文本后,您可以在模拟器屏幕的文本输入框内进行粘贴。可支持复制的最大文本长度为30000英文字符,超过该长度会对文本进行截断。 从DevEco Studio 6.0.1 Beta1版本开始,支持在计算机和模拟器之间互相复制粘贴。 |
按键 | 功能描述 |
关闭 ![]() | 关闭模拟器。 |
最小化 ![]() | 最小化模拟器窗口。 |
更多 ![]() | 打开侧边扩展菜单。 |
电源 ![]() | 模拟电源,可模拟亮灭屏操作,从DevEco Studio 6.1.0 Beta1版本开始支持。 |
置顶 ![]() | 将模拟器置于所有打开窗口的顶层。 |
左旋转 ![]() | 将设备屏幕逆时针旋转90度。 |
右旋转 ![]() | 将设备屏幕顺时针旋转90度。 |
增大音量 ![]() | 调高设备音量,长按可持续调高设备音量。 |
减小音量 ![]() | 调低设备音量,长按可持续调低设备音量。 |
截屏 ![]() | 生成当前屏幕的截图,并将图片保存在本地计算机。 |
返回 ![]() | 返回上一屏幕或关闭对话框、选项菜单、通知面板或屏幕键盘。 |
主屏 ![]() | 返回Home界面。 |
最近 ![]() | 点按可打开最近使用过的应用的缩略图列表。要打开某个应用,请点按其缩略图。要从列表中删除缩略图,请向上滑动缩略图。 |
摇一摇 ![]() | 触发设备摇一摇操作,详情参考摇一摇。 |
多屏 ![]() | 打开多屏面板,可以动态增删屏幕,详情参考多屏。 |
电池 ![]() | 打开电池模拟面板,详情参考电池。 |
GPS ![]() | 打开GPS模拟面板,详情参考GPS定位。 |
虚拟传感器 ![]() | 打开虚拟传感器面板,详情参考虚拟传感器。 |
网络 ![]() | 打开网络面板,详情参考网络。 |
设置 ![]() | 打开设置面板。可设置模拟器主题、截屏保存路径、模拟器使用语言。 |
Bug报告 ![]() | 打开Bug报告面板。点击保存并发送按钮可以将Bug日志传递给我们。 |
关于 ![]() | 打开关于面板。可以查看模拟器相关信息及许可证。 |
展开 ![]() | 仅支持可折叠设备。切换设备形态至展开态。 |
悬停 ![]() | 仅支持可折叠设备。切换设备形态至悬停态,并显示折痕避让区。 |
折叠 ![]() | 仅支持可折叠设备。切换设备形态至折叠态。 |
三屏 ![]() | 仅支持三折叠设备。切换设备形态至左展开,右展开状态。对应FOLD_STATUS_EXPANDED_WITH_SECOND_EXPANDED状态。 |
双屏 ![]() | 仅支持三折叠设备。切换设备形态至左折叠,右展开状态。对应FOLD_STATUS_EXPANDED状态。 |
单屏 ![]() | 仅支持三折叠设备。切换设备形态至左折叠,右折叠状态。对应FOLD_STATUS_FOLDED状态。 |
左半折,右展开 ![]() | 仅支持三折叠设备。切换设备形态至左半折,右展开状态,并显示折痕避让区。对应FOLD_STATUS_EXPANDED_WITH_SECOND_HALF_FOLDED状态。 从DevEco Studio 6.1.0 Beta2版本开始支持。 |
左展开,右半折 ![]() | 仅支持三折叠设备。切换设备形态至左展开,右半折状态,并显示折痕避让区。对应FOLD_STATUS_HALF_FOLDED_WITH_SECOND_EXPANDED状态。 从DevEco Studio 6.1.0 Beta2版本开始支持。 |
左半折,右半折 ![]() | 仅支持三折叠设备。切换设备形态至左半折,右半折状态,并显示折痕避让区。对应FOLD_STATUS_HALF_FOLDED_WITH_SECOND_HALF_FOLDED状态。 从DevEco Studio 6.1.0 Beta2版本开始支持。 |
左折叠,右半折 ![]() | 仅支持三折叠设备。切换设备形态至左折叠,右半折状态,并显示折痕避让区。对应FOLD_STATUS_HALF_FOLDED状态。 从DevEco Studio 6.1.0 Beta2版本开始支持。 |
左半折,右折叠 ![]() | 仅支持三折叠设备。切换设备形态至左半折,右折叠状态。对应FOLD_STATUS_FOLDED_WITH_SECOND_HALF_FOLDED状态。 从DevEco Studio 6.1.0 Beta2版本开始支持。 |
左展开,右折叠 ![]() | 仅支持三折叠设备。切换设备形态至左展开,右折叠状态。对应FOLD_STATUS_FOLDED_WITH_SECOND_EXPANDED状态。 从DevEco Studio 6.1.0 Beta2版本开始支持。 |
横展 ![]() | 仅支持折叠2in1设备。切换设备形态至横展状态。 |
竖展 ![]() | 仅支持折叠2in1设备。切换设备形态至竖展状态。 |
悬停 ![]() | 仅支持折叠2in1设备。切换设备形态至悬停状态。 |
磁吸 ![]() | 仅支持折叠2in1设备。切换设备形态至磁吸状态。 |
可以使用鼠标拖动模拟器到屏幕的指定位置。首先将鼠标放在屏幕边缘,当鼠标变成

样式,按住鼠标左键并移动即可拖动模拟器。当模拟器被拖动到期望位置后,松开鼠标左键即可停止拖动。
如需改变模拟器大小,将鼠标放到屏幕四角的任意一处,当鼠标变成

,按住鼠标左键并移动即可缩放模拟器。当模拟器被缩放到期望大小后,松开鼠标左键即可完成缩放。
可以将本地的HAP包安装到模拟器上,只需要将本地的HAP包拖动到屏幕上即可进行安装,支持一次性拖拽安装多个HAP包。模拟器也支持安装包含HSP文件的应用,只需要将HSP和HAP一起拖动到屏幕上即可进行安装。
也可以在命令行窗口进入DevEco Studio安装目录的sdk\default\openharmony\toolchains目录下,使用hdc app install命令安装包。安装完成后,可在应用列表里查看已安装的应用。
可以将本地文件上传到模拟器中,只需要将文件拖动至模拟器屏幕上即可。模拟器支持批量上传文件,上传的文件存放在虚拟设备的/storage/media/100/local/files/Docs/Download/目录下。可以在模拟器上打开文件管理 > 我的手机 > 下载查看上传的文件。
此外,也可以在命令行窗口进入DevEco Studio安装目录的sdk\default\openharmony\toolchains目录下,使用hdc file send命令上传文件。
从DevEco Studio 6.1.0 Beta2版本开始,使用API 21及以上的镜像时,上传的图片类文件将保存在图库中。
模拟器支持电池、GPS、虚拟传感器等扩展能力,具体使用方式参考以下介绍。点击模拟器菜单栏的

,打开扩展菜单栏。
可以在模拟器上模拟不同电池状态。在扩展菜单栏上点击

打开电池模拟界面。在该界面,您可以手动输入或拖动滑块来改变电量百分比,也可以点击

切换电池的充电/放电状态。电池具有以下三种充电状态:
在应用中,您可以通过模块查询模拟器的剩余电量以及充电状态。
模拟器可以模拟设备所处的位置。您可以打开扩展菜单,并点击

进行位置信息的设置。模拟器提供以下方式的GPS位置模拟:
导入:在导入界面您可以注入一段时间内的连续位置信息。点击

导入本地的GPX文件,点击

即可开始模拟GPX文件中的轨迹。此外,您还可以选择不同回放速率来改变移动的速度。
场景模拟:如果没有本地的GPX文件,您可以在场景模拟界面使用我们预置的GPX文件。我们在模拟器内部预置了户外跑步、户外骑行、驾驶导航三种场景的GPX文件,点击

即可开始轨迹模拟。
在应用中,您可以通过模块获取模拟器的位置信息。
模拟器提供了虚拟传感器来模拟硬件传感器的能力。在扩展菜单上点击打开虚拟传感器界面。在该界面,您可以调节不同的传感器来测试您的应用,使用@ohos.sensor模块监听传感器值的变化。模拟器提供以下虚拟传感器:
计步传感器:用于测量步数,对应的SensorId为PEDOMETER。
环境光传感器:用于测量光照强度,对应的SensorId为AMBIENT_LIGHT。
心率传感器:用于测量心率,对应的SensorId为HEART_RATE。从DevEco Studio 6.1.0 Beta1版本开始,Wearable设备支持心率传感器。
您可以拖动滑动条或者直接在文本框输入来改变不同传感器的值。
模拟器的网络功能支持配置代理服务器和DNS地址,打开扩展菜单栏,并点击

打开网络界面。
模拟器可以将网络请求代理到代理服务器,利用代理服务器去请求目标服务器。从而满足以下开发场景:
模拟器提供以下三种代理模式:
配置代理后,可以点击Check Connection对当前的代理配置进行校验,并点击Apply按钮进行保存。
新增DNS设置功能,开发者可以手动设置DNS服务器用于域名解析,设置后点击Apply提交。
模拟器可以模拟用户对设备的摇一摇操作。点击工具栏上的

,您可以模拟时长为1s的摇一摇操作。您的应用可以通过模块监听加速度传感器变化,当加速度传感器的变化量达到设定阈值时,触发摇一摇对应的业务逻辑。
模拟器当前仅支持Audio Kit(音频服务)提供的音频输入能力,您可以使用本地计算机上的麦克风设备向模拟器中传输音频数据。使用步骤如下:
模拟器上的应用在调用相关API时,推荐使用如下格式的音频流信息格式,以保证清晰流畅的音质。
音频流信息 | 推荐值 |
samplingRate(采样率) | 48000Hz |
channels(通道数) | 2 |
sampleFormat(采样格式) | 带符号的16位整数 |
encodingType(编码格式) | PCM编码 |
模拟器支持调用本地计算机摄像头。
模拟器调用摄像头的开发步骤如下:
穿戴模拟器可以模拟表冠功能。
鼠标单击表冠:根据当前所在页面,单击后跳转到表盘或桌面。
鼠标双击表冠:进入多任务管理界面。
在屏幕上使用鼠标滚轮:模拟表冠旋转。
模拟器支持设置主题、语言和截屏保存路径。打开扩展菜单栏,并点击打开设置面板。、
主题:支持Light和Dark两种主题。
语言:
界面语言:设置模拟器工具栏的语言。从DevEco Studio 6.1.0 Beta2版本开始,设置界面语言后,对所有模拟器都生效。
OS语言:从DevEco Studio 6.1.0 Beta2版本开始,支持设置模拟器镜像中的语言。此处的OS语言设置和模拟器的设置 > 系统中的语言设置效果相同。
首次启动模拟器时,会根据当前计算机的系统语言,对模拟器的界面语言和OS语言进行初始化。如果计算机的系统语言不在模拟器的支持范围内,则模拟器语言默认使用英文。
如需重置OS语言,可通过Wipe User Data进行清除重置。界面语言不支持重置,只能再次修改。
截屏保存路径:设置模拟器工具栏的截屏功能对应的图片保存路径。
模拟器支持使用多屏能力,基于同一个镜像创建不同分辨率、DPI的多屏幕模拟器,满足开发者快速测试不同分辨率、DPI场景下的UI布局等需求。
使用约束
模拟器旋转功能和多屏功能互斥,不能同时使用。
多屏状态下扩展屏不支持使用画中画功能、不支持鼠标滚轮操作。
Phone类型的模拟器支持多屏能力。
Tablet类型的模拟器支持多屏能力。
Car类型的模拟器支持多屏能力。
启动模拟器,点击工具栏的多屏按钮

,打开多屏界面。
点击添加,可以选择Mate系列、Pura系列、Nova系列等产品型号,点击应用即可添加对应的屏幕。
默认情况下,所有的屏幕是整体拖动和缩放的,如需单独拖动和缩放单个屏幕,请勾选界面上的每个副屏在独立窗口中显示,并点击应用按钮。
如需在多个屏幕上同时启动应用,请按界面提示,将module.json5中的launchType字段配置为multiton。
如需自定义屏幕分辨率、DPI或尺寸,可以在多屏界面上直接修改屏幕参数,取值范围参考界面提示,修改后点击应用。
点击扩展屏,再点击模拟器工具栏返回按键,即可返回上一级目录。按键主屏和最近暂不支持在扩展屏上使用。
从扩展屏底部上滑,可直接清除应用。
点击多屏界面上的删除按钮,再点击应用,即可删除一块屏幕。
Car模拟器支持多屏能力,通过添加副屏,可模拟驾驶舱主屏幕和副驾驶屏幕的场景。
在创建Car模拟器时,支持新增或删除屏幕,新增屏幕后,启动模拟器会自动展示副屏。
Car模拟器的每个屏幕对应一个独立用户,主屏与副屏的操作相互独立。例如安装、调试、卸载应用,主屏和副屏都需要独立操作。
新增屏幕后,如果使用时不需要展示副屏,可点击模拟器工具栏多屏按钮,将对应屏幕去勾选并点击应用。
Car模拟器支持两种布局方式,书页式层叠布局和平铺式布局,可通过工具栏多屏按钮进行切换,切换后点击应用。
在本地真机中运行HarmonyOS应用/元服务,可以采用USB连接方式或者无线连接方式。另外:Wearable设备仅支持无线连接方式(Lite Wearable设备不支持)。
使用USB方式,将真机设备与PC端进行连接。
检测无设备
设备连接后,如果DevEco Studio无法识别到设备,显示“No Devices”,可使用设备连接助手来排查问题。点击设备下拉框,并点击Troubleshoot Device Connections打开该功能,分为三个步骤,每个步骤排查完后点击Next排查下一个。
通过USB连接设备:根据界面提示,使用USB连接设备后,点击Rescan Devices按钮,扫描已连接的设备,确保扫描结果中包含待调试的设备。
启用USB调试:根据界面提示,确保设备系统版本正确,并且启用开发者选项和USB调试。
重启HDC服务:如果DevEco Studio仍然无法识别设备,点击Restart hdc Service按钮重启HDC服务,重启后HDC会重新识别设备。
将真机设备和PC连接到同一WLAN网络。
在设置 > 系统 > 开发者选项中,打开无线调试或通过WLAN调试(Wearable设备)开关,并获取设备端的IP地址和端口号。
连接设备,有两种方式。
6.1.1及以上版本:单击菜单栏Tools > IP Connection,或者在设备下拉列表单击IP Connection,按照IP: port格式输入设备的IP地址和端口号,单击Connect连接设备,连接成功后会显示在列表中,默认开启屏幕常亮。
开启屏幕常亮后,DevEco Studio会持续向设备发送亮屏指令,使设备屏幕常亮。即使手动将设备锁屏,屏幕也会自动亮起,这是DevEco Studio为保持屏幕常亮而发送亮屏指令的正常行为。
如需退出屏幕常亮,有以下方式:
退出后,DevEco Studio将停止发送亮屏指令,设备可正常进入休眠。
在菜单栏中,单击Run>Run'模块名称'或,或使用默认快捷键Shift+F10(macOS为Control+R)运行应用/元服务。
DevEco Studio启动HAP的编译构建和安装。安装成功后,设备会自动运行安装的HarmonyOS应用/元服务。
针对开发调试场景,DevEco Studio为开发者提供了自动签名方案,帮助开发者高效进行调试。此外,也可以选择手动签名方式生成调试签名。
自动签名仅用于调试场景,方便开发者进行应用调试。部分调试场景下必须使用手动签名:
自动签名新增关联注册应用的方式,签名操作界面新增“Associate with registered application”选项。
从DevEco Studio 6.1.1 Beta1版本开始,关联注册应用的自动签名支持在所有国家/地区使用。
使用自动签名前,请确保本地系统时间与北京时间(UTC/GMT+08:00)保持一致。如果不一致,将导致签名失败。