目录

HarmonyOS-Next之旅DevEco-Studio使用指南一

【HarmonyOS Next之旅】DevEco Studio使用指南(一)


https://i-blog.csdnimg.cn/direct/09de8e5fa0c647738dd8b014a2db7d1a.png

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应用/服务到华为应用市场。

https://i-blog.csdnimg.cn/direct/148575a3465845ccb079dee294793a6a.png

1.2.1 -> 开发准备

开发工具的安装以及环境的配置参考往期文章:

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模型应用程序包结构如下图所示。

https://i-blog.csdnimg.cn/direct/52b5fca3e8dd4c06a659ad50f5cca76a.png

FA模型应用程序包结构如下图所示。

https://i-blog.csdnimg.cn/direct/1aedaea1e040401fa7d978725601f97a.png

2.2 -> 切换工程视图

DevEco Studio工程目录结构提供工程视图和Ohos视图。工程视图(Project)展示工程中实际的文件结构,Ohos视图会隐藏一些编码中不常用到的文件,并将常用到的文件进行重组展示,方便开发者查询或定位所需编辑的模块或文件。

工程创建或打开后,默认显示工程视图,如果要切换到Ohos视图,在左上角单击 Project

Ohos 进行切换

https://i-blog.csdnimg.cn/direct/57da06931a864cf1b1aafebae51cf441.png

3 -> 工程目录结构

3.1 -> ArkTS工程目录结构(Stage模型)

ArkTS Stage模型支持API Version 10及以上版本,其工程目录结构如下图所示:

https://i-blog.csdnimg.cn/direct/d508d9a547bb4e81a48ecc6ffcbb029e.png

  • AppScope > app.json5 :应用的全局配置信息。
  • entry: 应用/元服务模块,编译构建生成一个HAP。
    • src > main > ets :用于存放ArkTS源码。
    • src > main > ets > entryability :应用/元服务的入口。
    • src > main > ets > pages :应用/元服务包含的页面。
    • src > main > resources: 用于存放应用/元服务模块所用到的资源文件,如图形、多媒体、字符串、布局文件等。
资源目录资源文件说明
base>element包括字符串、整型数、颜色、样式等资源的json文件。每个资源均由json格式进行定义,例如: * boolean.json:布尔型 * color.json:颜色 * float.json:浮点型 * intarray.json:整型数组 * integer.json:整型 * pattern.json:样式 * plural.json:复数形式 * strarray.json:字符串数组 * string.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++进行开发,其工程目录结构如下图所示。

https://i-blog.csdnimg.cn/direct/f9e476200aa7460291c228f9ae3482fb.png

  • 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格式进行定义,例如: * boolean.json:布尔型 * color.json:颜色 * float.json:浮点型 * intarray.json:整型数组 * integer.json:整型 * pattern.json:样式 * plural.json:复数形式 * strarray.json:字符串数组 * string.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模型,其工程目录结构如下图所示:

https://i-blog.csdnimg.cn/direct/0780c3349ff44ce99e3e82185b2f3ac8.png

  • 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格式进行定义,例如: * boolean.json:布尔型 * color.json:颜色 * float.json:浮点型 * intarray.json:整型数组 * integer.json:整型 * pattern.json:样式 * plural.json:复数形式 * strarray.json:字符串数组 * string.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: 应用级编译构建任务脚本。

感谢各位大佬支持!!!

互三啦!!!