【鸿蒙软件开发】Stage模型开发概述应用/组件级配置

简介: 【鸿蒙软件开发】Stage模型开发概述应用/组件级配置

前言


一、基本概念


下图展示了Stage模型中的基本概念。

769a26256fb54089a8b9e19f7ff047f6.png

下面我为大家一一讲解上方的内容

在 Stage 模型中,有两种重要的组件:UIAbility 和 ExtensionAbility。这些组件是用于构建应用程序的重要构建块,每个都有自己的特点和功能。


1.1 UIAbility 组件

UIAbility 组件:

1.什么是它? UIAbility 是一种应用组件,它主要用于创建和展示用户界面。这意味着你可以使用 UIAbility 来构建应用程序的用户界面,处理用户与应用的交互。例如,一个图片库应用可以使用 UIAbility 来显示图片瀑布流,允许用户选择图片并查看详细信息。用户还可以通过返回键切换回到瀑布流页面。

2.生命周期: UIAbility 有一个生命周期,它包括创建、销毁、前台和后台等状态。这些状态用于管理 UIAbility 的运行。

3.显示事件: 与用户界面相关的状态变化,例如界面显示或隐藏,通过 WindowStage 的事件系统提供给开发者。


1.2 ExtensionAbility 组件

ExtensionAbility 组件:

4.什么是它? ExtensionAbility 是一种应用组件,专门用于处理特定场景或任务。它可以扩展应用程序的功能,但通常不涉及用户界面。这可以用于添加某些特定的功能或能力,以满足应用程序的需求。

5.WindowStage: 每个 UIAbility 实例都与一个 WindowStage 实例绑定。WindowStage 是应用程序内部的窗口管理器,负责管理窗口的创建和显示。这意味着 UIAbility 通过 WindowStage 持有一个窗口,该窗口用于绘制用户界面。


1.3 Context

Context:

6.什么是它? 在 Stage 模型中,Context 和它的派生类提供了在运行时可以调用的各种功能。不同的 UIAbility 组件和 ExtensionAbility 组件都有它们自己的 Context 类,这些类继承自基类 Context,但根据组件的不同,提供不同的能力。这些能力可以用于处理特定任务或与应用程序的其他部分交互。


1.4 AbilityStage

7.什么是它? 每个 HAP(可能是应用程序包或模块)在运行时都有一个 AbilityStage 类实例。当HAP 中的代码首次加载到应用程序进程中时,系统会创建一个 AbilityStage 实例。每个在该 HAP 中定义的 UIAbility 类都会与这个 AbilityStage 实例关联起来。这意味着开发者可以使用 AbilityStage 获取关于 HAP 中 UIAbility 实例的运行时信息,以便在运行时管理它们。


总之,UIAbility 用于创建用户界面和处理用户交互,而 ExtensionAbility 用于处理特定场景的任务。WindowStage 管理窗口,Context 提供各种能力,而 AbilityStage 允许开发者在运行时管理 UIAbility 组件。这些组件和概念一起构建了 Stage 模型,以支持应用程序的开发和执行。


1.5 Stage模型开发流程

开发流程

基于Stage模型开发应用时,在应用模型部分,涉及如下开发过程。


应用组件开发

本章节介绍了如何使用Stage模型的UIAbility组件和ExtensionAbility组件开发应用。

  • 应用/组件级配置
  • UIAbility组件
  • ExtensionAbility组件
  • AbilityStage组件容器
  • 应用上下文Context


了解进程模型

本章节介绍了Stage模型的进程模型以及几种常用的进程间通信方式。

  • 公共事件


了解线程模型

本章节介绍了Stage模型的线程模型以及几种常用的线程间通信方式。

  • Emitter
  • Worker


应用配置文件

本章节介绍Stage模型中应用配置文件的开发要求。

Stage模型应用配置文件


二、Stage模型应用/组件级配置


2.1 为什么需要这个操作

在开发应用时,需要配置应用的一些标签,例如应用的包名、图标等标识特征的属性。本文描述了在开发应用需要配置的一些关键标签。图标和标签通常一起配置,可以分为应用图标、应用标签和入口图标、入口标签,分别对应app.json5配置文件和module.json5配置文件文件中的icon和label标签。应用图标和标签是在设置应用中使用,例如设置应用中的应用列表。入口图标是应用安装完成后在设备桌面上显示出来的,如图一所示。入口图标是以UIAbility为粒度,支持同一个应用存在多个入口图标和标签,点击后进入对应的UIAbility界面。


2.2 应用包名配置

应用需要在工程的AppScope目录下的app.json5配置文件中配置bundleName标签,该标签用于标识应用的唯一性。推荐采用反域名形式命名(如com.example.demo,建议第一级为域名后缀com,第二级为厂商/个人名,第三级为应用名,也可以多级)。


AppScope位置如下图所示:

dd5866e8324a450eab9e4702b20a140b.png

下图即是应用包名:

cbb4566ce9cb465783b3ec38649623bd.png

2.3 应用图标和标签配置

Stage模型的应用需要配置应用图标和应用标签。应用图标和标签是在设置应用中使用,例如设置应用中的应用列表,会显示出对应的图标和标签。

应用图标需要在工程的AppScope目录下的app.json5配置文件中配置icon标签。应用图标需配置为图片的资源索引,配置完成后,该图片即为应用的图标。


应用标签需要在工程的AppScope模块下的app.json5配置文件中配置label标签。标识应用对用户显示的名称,需要配置为字符串资源的索引。


下图即是icon设置:

c7049f7d26ba4d978e35f65cbb176d97.png

下图即是应用标签:

9a9e0c0118a744edb2572f0235d76cf4.png

2.4 入口图标和标签配置

Stage模型支持对组件配置入口图标和入口标签。入口图标和入口标签会显示在桌面上。

入口图标需要在module.json5配置文件中配置,在abilities标签下面有icon标签。例如希望在桌面上显示该UIAbility的图标,则需要在skills标签下面的entities中添加"entity.system.home"、actions中添加"action.system.home"。同一个应用有多个UIAbility配置上述字段时,桌面上会显示出多个图标,分别对应各自的UIAbility。


此文件在下图所示:

d52e55b9f21545b88966bccf6b7d9219.png

2.5 应用版本声明配置

应用版本声明需要在工程的AppScope目录下的app.json5配置文件中配置versionCode标签和versionName标签。versionCode用于标识应用的版本号,该标签值为32位非负整数。此数字仅用于确定某个版本是否比另一个版本更新,数值越大表示版本越高。versionName标签标识版本号的文字描述。


2.6 Module支持的设备类型配置

Module支持的设备类型需要在module.json5配置文件中配置deviceTypes标签,如果deviceTypes标签中添加了某种设备,则表明当前的Module支持在该设备上运行。


2.7 Module权限配置

Module访问系统或其他应用受保护部分所需的权限信息需要在module.json5配置文件中配置requestPermission标签。该标签用于声明需要申请权限的名称、申请权限的原因以及权限使用的场景。


总结


以上就是今天要讲的内容,本文介绍了Stage模型开发概述应用/组件级配置,如果还有不懂的可以去看官方文档,或者再看一遍文章

相关文章
|
1月前
|
IDE 开发工具 Windows
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之RowSplit容器组件
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之RowSplit容器组件
51 0
|
2月前
|
IDE API 开发工具
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Counter容器组件
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Counter容器组件
42 1
|
2月前
|
IDE 开发工具 Windows
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之ColumnSplit容器组件
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之ColumnSplit容器组件
39 0
|
2月前
|
IDE API 开发工具
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Column容器组件
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Column容器组件
51 0
|
2月前
|
IDE API 开发工具
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Badge组件
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Badge组件
43 0
|
2月前
|
IDE API 开发工具
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之QRCode组件
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之QRCode组件
54 2
|
2月前
|
IDE 开发工具 数据安全/隐私保护
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之PatternLock组件
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之PatternLock组件
50 0
|
2月前
|
IDE API 开发工具
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Navigation组件
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Navigation组件
134 0
|
2月前
|
IDE 开发工具 Windows
 鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之NavDestination组件
 鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之NavDestination组件
50 3
|
2月前
|
IDE 开发工具 Windows
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之MenuItemGroup组件
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之MenuItemGroup组件
29 1