HarmonyOS Developer DevEco Studio使用指南-应用/服务开发
编辑器使用技巧
DevEco Studio支持使用多种语言进行HarmonyOS应用/服务的开发,包括ArkTS、JS、Java和C/C++。在编写应用/服务阶段,可以通过掌握代码编写的各种常用技巧,来提升编码效率。
代码高亮
支持对代码关键字、运算符、字符串、类、标识符、注释等进行高亮显示,您可以打开File > Settings(macOS为DevEco Studio > Preferences)面板,在Editor > Color Scheme自定义各字段的高亮显示颜色。默认情况下,您可以在Language Defaults中设置源代码中的各种高亮显示方案,该设置将对所有语言生效;如果您需要针对具体语言的源码高亮显示方案进行定制,可以在左侧边栏选择对应的语言,然后取消“Inherit values from”选项后设置对应的颜色即可。
代码自动补齐
提供代码的智能补齐能力,编辑器工具会分析上下文并理解项目内容,并根据输入的内容,提示可补齐的类、方法、字段和关键字的名称等。
代码错误检查
如果输入的语法不符合编码规范,或者出现语义语法错误,编辑器会实时的进行代码分析,并在代码中突出显示错误或警告,将鼠标放置在错误代码处,会提示详细的错误信息。
代码自动跳转
在编辑器中,可以按住Ctrl键,鼠标单击代码中的类、方法、参数、变量等名称,自动跳转到定义处。
跨语言跳转
DevEco Studio支持在JS/ArkTS函数上跨语言跳转其对应的C/C++函数,从而提升混合语言开发时的开发效率。您可以在编辑器中右击,在弹出的菜单中选择Go To > Implementation(s)实现跨语言跳转。
代码格式化
代码格式化功能可以帮助您快速的调整和规范代码格式,提升代码的美观度和可读性。默认情况下,DevEco Studio已预置了代码格式化的规范,您也可以个性化的设置各个文件的格式化规范,设置方式如下:在File > Settings > Editor > Code Style(macOS为DevEco Studio > Preferences > Editor > Code Style)下,选择需要定制的文件类型,如ArkTS,然后自定义格式化规范即可。
在使用代码格式化功能时,您可以使用快捷键Ctrl + Alt + L(macOS为Option+Command +L) 可以快速对选定范围的代码进行格式化。
如果在进行格式化时,对于部分代码片段不需要进行自动的格式化处理,可以通过如下方式进行设置:
- 在File>Settings>Editor>Code Style(macOS为DevEco Studio > Preferences > Editor > Code Style),单击“Formatter”,勾选“Turn formatter on/off with markers in code comments”。
- 在不需要进行格式化操作的代码块前增加“//@formatter:off”,在不格式化代码块的最后增加“//@formatter:on”,即表示对该范围的代码块不需要进行格式化操作。
代码折叠
支持对代码块的快速折叠和展开,既可以单击编辑器左侧边栏的折叠和展开按钮对代码块进行折叠和展开操作,还可以对选中的代码块单机鼠标右键选择折叠方式,包括折叠、递归折叠、全部折叠等操作。
代码快速注释
支持对选择的代码块进行快速注释,使用快捷键Ctrl+/(macOS为Command+/)进行快速注释。对于已注释的代码块,再次使用快捷键Ctrl+/(macOS为Command+/)取消注释。
代码结构树
使用快捷键Alt + 7 / Ctrl + F12(macOS为Command+7)打开代码结构树,快速查看文件代码的结构树,包括全局变量和函数,类成员变量和方法等,并可以跳转到对应代码行。
代码引用查找
提供Find Usages代码引用查找功能,帮助开发者快速查看某个对象(变量、函数或者类等)被引用的地方,用于后续的代码重构,可以极大的提升开发者的开发效率。
使用方法:在要查找的对象上,单击鼠标右键 > Find Usages或使用快捷键Alt +F7(macOS为Command + F7)。
代码查找
通过对符号、类或文件的即时导航来查找代码。检查调用或类型层次结构,轻松地搜索工程里的所有内容。通过连续按压两次Shift快捷键,打开代码查找界面,双击查找的结果可以快速打开所在文件的位置。
快速查阅API接口及组件参考文档
在编辑器中调用ArkTS API接口或ArkTS/JS组件时,支持在编辑器中快速、精准调取出对应的参考文档。
可在编辑器中,选中需要查阅的接口或组件,单击鼠标右键 > Show in API Reference,便可以快速查阅。
说明
DevEco Studio集成了离线版API参考类文档,最新版本请参考官网HarmonyOS API参考和OpenHarmony API参考。
添加JS Component和Page
在支持JS语言的工程中,支持添加新的JS Component(仅支持API Version 4~7)和Page,在支持ArkTS语言的工程中,支持添加Page。
- JS Component:在JS工程中,可以存在多个JS Component(例如js目录下的default文件夹就是一个JS Component),一个JS FA对应一个JS Component,可以独立编译、运行和调试。
说明
Lite Wearable和Smart Vision设备对应的JS工程,只存在一个JS FA,因此,Lite Wearable和Smart Vision设备的JS工程不允许创建新的JS Component。
- Page:Page是表示FA的一个前台页面,其中JS工程添加Page后,在pages文件夹下生成新的page文件夹,包含JS、HML和CSS文件,是Component的最基本单元,构成了JS FA的每一个界面。ArkTS语言的工程添加Page后,会在pages文件夹下生成一个新的ets文件。
添加JS Component
在JS工程目录中,选中js文件夹,单击鼠标右键,选择New > JS Component,输入JS component name(由大小写字母、数字和下划线组成),单击Finish完成添加。
添加Page
在JS工程目录中或ArkTS工程目录中添加Page的操作相同,以下以JS工程为例进行说明,选择需要添加Page的Component下的pages文件夹,单击鼠标右键,选择New >Page,输入Page name(由大小写字母、数字和下划线组成),单击Finish完成添加。
说明
如果是Har模块,则可以在Har模块下的任意目录下进行添加。仅API 8~9的har模块支持添加Page。
跨设备代码编辑
HarmonyOS应用/服务支持在Phone、TV、Wearable等设备上运行,开发者为适配同一个应用/服务可以运行在多种设备上,需要针对各类设备进行开发和适配。为此,DevEco Studio面向跨设备的JS应用/服务开发,提供了跨设备的代码编辑能力,可以帮助开发者高效完成代码的开发,减少代码的复杂度。开发者在编辑代码时,可以自动联想出各设备支持的能力合集,如HML组件合集、CSS样式合集、JS API接口合集等,开发者可以根据对应的设备类型,快速完成代码的编写和补齐。
同时,DevEco Studio还提供了兼容性检测功能,可以检测出被调用的组件、样式或者API接口是否能够在多设备中都能兼容,如果存在无法兼容的情况,会提示该代码不具备多设备兼容性,提醒开发者进行确认。如果存在不兼容所有设备的组件、样式或者API接口,经过确认后,已在代码中实现相应的逻辑处理,也可以忽略该提示信息。
说明
跨设备代码编辑功能在DevEco Studio V2.0.12.201及后续版本支持,Java语言暂不支持。
如何使用跨设备代码编辑功能
使用跨设备代码编辑,首先需要创建一个跨设备工程,方法有如下两种:
- 创建一个新工程:选择任意支持跨设备的JS Ability模板,本示例以创建一个“Empty Ability”工程为例。在配置工程信息界面,Device Type勾选多个设备。
- 打开一个已有工程:打开工程目录模块名(如entry) > src > main下的config.json文件,在module闭包的“deviceType”中,根据实际支持的设备情况,增加支持的设备类型,如tv、wearable、phone等,然后重新同步工程。
跨设备代码校验
DevEco Studio支持对hml、css和js源代码进行检查,根据config.json中设置的支持的设备类型列表,检查源代码中引用的组件、样式或API接口是否与设备类型相匹配,开发者可以根据实际支持的设备类型进行确认。
- 单击File > Settings或快捷键Ctrl+Alt+S(macOS系统为Configure > Preferences,快捷键Command+,),输入“inspect”,确保CSS,HML和JS TypeScript ExtendTypeScript选项已勾选。
- 单击菜单栏Code > Inspect Code设置检查的范围,如整个工程、某个模块或者具体文件,单击OK按钮执行兼容性检查。
- 检查完成后,会在Inspection Results中,输出检查结果。例如图中的检查结果显示,该模块支持的设备类型包括TV、Wearable和Phone,但是“picker”只支持TV和Phone。同样的,在代码编辑器中,如果存在不兼容的字段,编辑器也会提示,可以将鼠标放在提示的字段上查看具体的提示信息。
定义HarmonyOS IDL接口
HarmonyOS IDL简介
HarmonyOS Interface Definition Language(简称HarmonyOS IDL)是HarmonyOS的接口描述语言。HarmonyOS IDL与其他接口语言类似,通过HarmonyOS IDL定义客户端与服务端均认可的编程接口,可以实现在二者间的跨进程通信(IPC,Inter-Process Communication)。跨进程通信意味着可以在一个进程访问另一个进程的数据,或调用另一个进程的方法。
通常把应用接口提供方(供调用)称为服务端,调用方称为客户端。客户端通过绑定服务端的Ability来与之进行交互,类似于绑定服务。关于HarmonyOS IDL接口语言的详细描述请参考HarmonyOS IDL接口使用规范。
说明
- 只能使用Java或C++语言构建.idl文件,因此仅Java、Java+JS、Java+ArkTS、C/C++工程支持IDL。
- 仅API 4-7的Gradle工程支持IDL。
创建.idl文件
- 在已经创建/打开的HarmonyOS工程中,选择module目录或其子目录,单击鼠标右键,选择New>Idl File。
- 创建IDL File。可以直接输入IDL接口名称,也可以通过包名格式定义idl接口名称。两种方式的差异仅在于.idl文件的文件目录结构。
- 按名称创建,创建IDL File时,输入接口名称,直接单击OK。
DevEco Studio在相应“module”的src>main路径下生成idl文件夹,并按照对应模块的包名生成同样的目录结构及IDL文件。
- 按包名创建,自定义.idl文件存储路径和接口名称。创建“IDL File”时,按照包名创建IDL文件。包名利用“.”作为分隔符,如输入“com.huawei.test.MyIdlInterface”。
DevEco Studio在相应“module”的src>main路径下生成idl文件夹,并按照输入的包名生成相应目录结构及IDL文件。可以在此路径继续新增IDL文件。
- 开发者可以使用Java或C++编程语言构建.idl文件,关于HarmonyOS IDL接口的实现请参考IDL开发指南。
- 单击工程右边栏的Gradle,在Tasks > ohos:debug或ohos:release中选择compileDebugIdl或compileReleaseIdl,对模块下的IDL文件进行编译。
- 编译完成后,在build > generated > source > idl> {Package Name}目录下,生成对应的接口类、桩类和代理类,如下图所示: