目录
1 -> 工具简介
1.1 -> 概述
1.2 -> HarmonyOS应用/服务开发流程
1.2.1 -> 开发准备
1.2.2 -> 开发应用/服务
1.2.3 -> 运行、调试和测试应用/服务
1.2.4 -> 发布应用/服务
2 -> 工程介绍
2.1 -> APP包结构
2.2 -> 切换工程视图
3 -> 工程目录结构
3.1 -> ArkTS工程目录结构(Stage模型)
3.2 -> C++工程目录结构(Stage模型)
3.3 -> JS工程目录结构(FA模型)
1 -> 工具简介
1.1 -> 概述
HUAWEI DevEco Studio(以下简称DevEco Studio)是基于IntelliJ IDEA Community开源版本打造,面向全场景多设备,提供一站式的分布式应用开发平台,支持分布式多端开发、分布式多端调测、多端模拟仿真,全方位的质量与安全保障。
作为一款开发工具,除了具有基本的代码开发、编译构建及调测等功能外,DevEco Studio还具有如下特点:
- 高效智能代码编辑:支持eTS、JavaScript、C/C++等语言的代码高亮、代码智能补齐、代码错误检查、代码自动跳转、代码格式化、代码查找等功能,提升代码编写效率。
- 低代码可视化开发:丰富的UI界面编辑能力,支持自由拖拽组件和可视化数据绑定,可快速预览效果,所见即所得;同时支持卡片的零代码开发,降低开发门槛和提升界面开发效率。
- 多端双向实时预览:支持UI界面代码的双向预览、实时预览、动态预览、组件预览以及多端设备预览,便于快速查看代码运行效果。
- 多端设备模拟仿真:提供HarmonyOS本地模拟器、远程模拟器、超级终端模拟器,支持手机、智慧屏、智能穿戴等多端设备的模拟仿真,便捷获取调试环境。
1.2 -> HarmonyOS应用/服务开发流程
使用DevEco Studio,只需要按照如下几步,即可轻松开发并上架一个HarmonyOS应用/服务到华为应用市场。
1.2.1 -> 开发准备
开发工具的安装以及环境的配置参考往期文章:
【HarmonyOS之旅】DevEco Studio的安装与环境配置
1.2.2 -> 开发应用/服务
DevEco Studio集成了手机、智慧屏、智能穿戴等设备的典型场景模板,可以通过工程向导轻松的创建一个新的工程。
接下来还需要定义应用/服务的UI、开发业务功能等编码工作,可以根据HarmonyOS应用开发概述来查看具体的开发过程,通过查看API接口文档查阅需要调用的API接口。
在开发代码的过程中,可以使用预览器查看应用/服务效果,支持实时预览、动态预览、双向预览等功能,使编码的过程更高效。
1.2.3 -> 运行、调试和测试应用/服务
应用/服务开发完成后,可以使用真机进行调试(需要申请调测证书进行签名)或者使用模拟器进行调试,支持单步调试、跨设备调试、跨语言调试、变量可视化等调试手段,使得应用/服务调试更加高效。
HarmonyOS应用/服务开发完成后,在发布到应用/服务市场前,还需要对应用进行测试,主要包括漏洞、隐私、兼容性、稳定性、性能等进行测试,确保HarmonyOS应用/服务纯净、安全,给用户带来更好的使用体验。
1.2.4 -> 发布应用/服务
HarmonyOS应用/服务开发、测试完成后,需要将应用/服务发布至应用市场,以便应用市场对应用/服务进行分发,普通消费者可以通过应用市场或服务中心获取到对应的HarmonyOS应用/服务。需要注意的是,发布到华为应用市场或服务中心的HarmonyOS应用/服务,必须使用应用市场颁发的发布证书进行签名。
2 -> 工程介绍
2.1 -> APP包结构
在进行应用/元服务开发前,开发者应该掌握应用/元服务的逻辑结构。
应用/元服务发布形态为APP Pack(Application Package),它是由一个或多个HAP(Harmony Ability Package)包以及描述APP Pack属性的pack.info文件组成。
一个HAP在工程目录中对应一个Module,它是由代码、资源、三方库及应用/元服务配置文件组成,HAP可以分为Entry和Feature两种类型。
-
Entry:应用的主模块,作为应用的入口,提供了应用的基础功能。
-
Feature:应用的动态特性模块,作为应用能力的扩展,可以根据用户的需求和设备类型进行选择性安装。
基于Stage模型和FA模型开发的应用,应用程序包结构并不相同。
Stage模型应用程序包结构如下图所示。
FA模型应用程序包结构如下图所示。
2.2 -> 切换工程视图
DevEco Studio工程目录结构提供工程视图和Ohos视图。工程视图(Project)展示工程中实际的文件结构,Ohos视图会隐藏一些编码中不常用到的文件,并将常用到的文件进行重组展示,方便开发者查询或定位所需编辑的模块或文件。
工程创建或打开后,默认显示工程视图,如果要切换到Ohos视图,在左上角单击Project > Ohos进行切换。
3 -> 工程目录结构
3.1 -> ArkTS工程目录结构(Stage模型)
ArkTS Stage模型支持API Version 10及以上版本,其工程目录结构如下图所示:
- AppScope > app.json5:应用的全局配置信息。
- entry:应用/元服务模块,编译构建生成一个HAP。
- src > main > ets:用于存放ArkTS源码。
- src > main > ets > entryability:应用/元服务的入口。
- src > main > ets > pages:应用/元服务包含的页面。
- src > main > resources:用于存放应用/元服务模块所用到的资源文件,如图形、多媒体、字符串、布局文件等。
资源目录 | 资源文件说明 |
base>element | 包括字符串、整型数、颜色、样式等资源的json文件。每个资源均由json格式进行定义,例如:
|
base>media | 多媒体文件,如图形、视频、音频等文件,支持的文件格式包括:.png、.gif、.mp3、.mp4等。 |
rawfile | 用于存储任意格式的原始资源文件。rawfile不会根据设备的状态去匹配不同的资源,需要指定文件路径和文件名进行引用。 |
-
- src > main > module.json5:Stage模型模块配置文件,主要包含HAP的配置信息、应用在具体设备上的配置信息以及应用的全局配置信息。
- build-profile.json5:当前的模块信息、编译信息配置项,包括buildOption、targets配置等。
- hvigorfile.ts:模块级编译构建任务脚本。
- oh-package.json5:描述三方包的包名、版本、入口文件(类型声明文件)和依赖项等信息。
- oh_modules:用于存放三方库依赖信息,包含应用/元服务所依赖的第三方库文件。
- build-profile.json5:应用级配置信息,包括签名、产品配置等。
- hvigorfile.ts:应用级编译构建任务脚本。
- oh-package.json5:描述全局配置,如:依赖覆盖(overrides)、依赖关系重写(overrideDependencyMap)和参数化配置(parameterFile)等。
3.2 -> C++工程目录结构(Stage模型)
C++ Stage模型支持API Version 10以上版本,支持使用ArkTS+C++进行开发,其工程目录结构如下图所示。
- entry:应用模块,编译构建生成一个HAP。
- src > main > cpp > types:用于存放C++的API接口描述文件
- src > main > cpp > types > libentry > index.d.ts:描述C++ API接口行为,如接口名、入参、返回参数等。
- src > main > cpp > types > libentry> oh-package.json5:配置.so三方包声明文件的入口及包名。
- src > main > cpp > CMakeLists.txt:CMake配置文件,提供CMake构建脚本。
- src > main > cpp > napi_init.cpp:定义C++ API接口的文件。
- src > main > ets:用于存放ArkTS源码。
- src > main > resources:用于存放应用所用到的资源文件,如图形、多媒体、字符串、布局文件等。
资源目录 | 资源文件说明 |
base>element | 包括字符串、整型数、颜色、样式等资源的json文件。每个资源均由json格式进行定义,例如:
|
base>media | 多媒体文件,如图形、视频、音频等文件,支持的文件格式包括:.png、.gif、.mp3、.mp4等。 |
rawfile | 用于存储任意格式的原始资源文件。rawfile不会根据设备的状态去匹配不同的资源,需要指定文件路径和文件名进行引用。 |
-
- src > main > module.json5:Stage模块配置文件,主要包含HAP的配置信息、应用在具体设备上的配置信息以及应用的全局配置信息。
- build-profile.json5:当前的模块信息、编译信息配置项,包括buildOption、targets配置等。
- hvigorfile.ts:模块级编译构建任务脚本。
- build-profile.json5:应用级配置信息,包括签名、产品配置等。
- hvigorfile.ts:应用级编译构建任务脚本。
3.3 -> JS工程目录结构(FA模型)
JS工程只支持FA模型,其工程目录结构如下图所示:
- entry:应用/元服务模块,编译构建生成一个HAP。
- src > main > js:用于存放js源码。
- src > main > js > MainAbility:应用/元服务的入口。
- src > main > js > MainAbility > i18n:用于配置不同语言场景资源内容,比如应用文本词条、图片路径等资源。
- src > main > js > MainAbility > pages:MainAbility包含的页面。
- src > main > js > MainAbility > app.js:承载Ability生命周期。
- src > main > resources:用于存放应用/元服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。
资源目录 | 资源文件说明 |
base>element | 包括字符串、整型数、颜色、样式等资源的json文件。每个资源均由json格式进行定义,例如:
|
base>media | 多媒体文件,如图形、视频、音频等文件,支持的文件格式包括:.png、.gif、.mp3、.mp4等。 |
rawfile | 用于存储任意格式的原始资源文件。rawfile不会根据设备的状态去匹配不同的资源,需要指定文件路径和文件名进行引用。 |
-
- src > main > config.json:模块配置文件,主要包含HAP的配置信息、应用在具体设备上的配置信息以及应用的全局配置信息。
- build-profile.json5:当前的模块信息、编译信息配置项,包括buildOption、targets配置等。
- hvigorfile.ts:模块级编译构建任务脚本。
- oh-package.json5:配置三方包声明文件的入口及包名。
- build-profile.json5:应用级配置信息,包括签名、产品配置等。
- hvigorfile.ts:应用级编译构建任务脚本。
感谢各位大佬支持!!!
互三啦!!!