【鸿蒙软件开发】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模型开发概述应用/组件级配置,如果还有不懂的可以去看官方文档,或者再看一遍文章

相关文章
|
8天前
「Mac畅玩鸿蒙与硬件41」UI互动应用篇18 - 多滑块联动控制器
本篇将带你实现一个多滑块联动的控制器应用。用户可以通过拖动多个滑块,动态控制不同参数(如红绿蓝三色值),并实时显示最终结果。我们将以动态颜色调节为例,展示如何结合状态管理和交互逻辑,打造一个高级的滑块控制器应用。
139 78
「Mac畅玩鸿蒙与硬件41」UI互动应用篇18 - 多滑块联动控制器
|
9天前
|
UED
「Mac畅玩鸿蒙与硬件40」UI互动应用篇17 - 照片墙布局
本篇将带你实现一个简单的照片墙布局应用,通过展示多张图片组成照片墙效果,用户可以点击图片查看其状态变化。
114 67
「Mac畅玩鸿蒙与硬件40」UI互动应用篇17 - 照片墙布局
|
14天前
|
存储 UED
「Mac畅玩鸿蒙与硬件37」UI互动应用篇14 - 随机颜色变化器
本篇将带你实现一个随机颜色变化器应用。用户点击“随机颜色”按钮后,界面背景会随机变化为淡色系颜色,同时显示当前的颜色代码,页面还会展示一只猫咪图片作为装饰,提升趣味性。
68 36
「Mac畅玩鸿蒙与硬件37」UI互动应用篇14 - 随机颜色变化器
|
11天前
「Mac畅玩鸿蒙与硬件38」UI互动应用篇15 - 猜数字增强版
本篇将带你实现一个升级版的数字猜谜游戏。相比基础版,新增了计分和历史记录功能,用户可以在每次猜测后查看自己的得分和猜测历史。此功能展示了状态管理的进阶用法以及如何保存和显示历史数据。
66 31
「Mac畅玩鸿蒙与硬件38」UI互动应用篇15 - 猜数字增强版
|
6天前
「Mac畅玩鸿蒙与硬件43」UI互动应用篇20 - 闪烁按钮效果
本篇将带你实现一个带有闪烁动画的按钮交互效果。通过动态改变按钮颜色,用户可以在视觉上感受到按钮的闪烁效果,提升界面互动体验。
49 19
「Mac畅玩鸿蒙与硬件43」UI互动应用篇20 - 闪烁按钮效果
|
7天前
「Mac畅玩鸿蒙与硬件42」UI互动应用篇19 - 数字键盘应用
本篇将带你实现一个数字键盘应用,支持用户通过点击数字键输入数字并实时更新显示内容。我们将展示如何使用按钮组件和状态管理来实现一个简洁且实用的数字键盘。
47 17
「Mac畅玩鸿蒙与硬件42」UI互动应用篇19 - 数字键盘应用
|
14天前
|
UED 开发者
「Mac畅玩鸿蒙与硬件36」UI互动应用篇13 - 数字滚动抽奖器
本篇将带你实现一个简单的数字滚动抽奖器。用户点击按钮后,屏幕上的数字会以滚动动画的形式随机变动,最终显示一个抽奖数字。这个项目展示了如何结合定时器、状态管理和动画实现一个有趣的互动应用。
66 23
「Mac畅玩鸿蒙与硬件36」UI互动应用篇13 - 数字滚动抽奖器
|
10天前
|
前端开发 UED
「Mac畅玩鸿蒙与硬件39」UI互动应用篇16 - 倒计时环形进度条
本篇将带你实现一个倒计时环形进度条应用。用户可以设置倒计时的时间,启动倒计时后,应用会动态显示一个随着时间递减的环形进度条,同时伴有数字倒计时显示。这是结合动画效果和时间管理的实用示例。
94 10
「Mac畅玩鸿蒙与硬件39」UI互动应用篇16 - 倒计时环形进度条
|
15天前
「Mac畅玩鸿蒙与硬件35」UI互动应用篇12 - 简易日历
本篇将带你实现一个简易日历应用,显示当前月份的日期,并支持选择特定日期的功能。用户可以通过点击日期高亮选中,还可以切换上下月份,体验动态界面的交互效果。
42 12
「Mac畅玩鸿蒙与硬件35」UI互动应用篇12 - 简易日历
|
8天前
|
监控 开发工具 Android开发
ARMS 用户体验监控正式发布原生鸿蒙应用 SDK
阿里云 ARMS 用户体验监控(RUM)推出了针对原生鸿蒙应用的 SDK。SDK 使用 ArkTS 语言开发,支持页面采集、资源加载采集、异常采集及自定义采集等功能,能够全面监控鸿蒙应用的表现。集成简单,只需几步即可将 SDK 接入项目中,为鸿蒙应用的开发者提供了强有力的支持。