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

相关文章
|
7天前
|
监控 UED 开发者
鸿蒙next版开发:订阅应用事件(ArkTS)
在HarmonyOS 5.0中,ArkTS引入了强大的应用事件订阅机制,允许开发者订阅和处理系统或应用级别的事件,这对于监控应用行为、优化用户体验和进行性能分析至关重要。本文详细介绍了如何在ArkTS中订阅应用事件,并提供了示例代码,包括导入模块、创建观察者、设置事件参数等步骤。通过这些方法,开发者可以更智能地管理和响应应用事件。
40 11
|
6天前
|
UED
鸿蒙next版开发:相机开发-适配不同折叠状态的摄像头变更(ArkTS)
在HarmonyOS 5.0中,ArkTS提供了强大的相机开发能力,特别是针对折叠屏设备的摄像头适配。本文详细介绍了如何在ArkTS中检测和适配不同折叠状态下的摄像头变更,确保相机应用在不同设备状态下的稳定性和用户体验。通过代码示例展示了具体的实现步骤。
29 8
|
6天前
|
API 内存技术
鸿蒙next版开发:相机开发-拍照(ArkTS)
在HarmonyOS 5.0中,ArkTS提供了一套完整的API来管理相机功能,特别是拍照功能。本文详细介绍如何在ArkTS中实现拍照功能,包括导入接口、创建会话、配置会话、触发拍照及监听拍照输出流状态,并提供代码示例进行详细解读。通过本文,你将掌握如何在HarmonyOS 5.0中使用ArkTS实现高效的拍照功能。
25 7
|
6天前
|
监控 开发者
鸿蒙next版开发:使用HiDebug获取调试信息(ArkTS)
在HarmonyOS 5.0中,HiDebug是一个强大的应用调试工具,可帮助开发者获取系统的CPU使用率、内存信息等关键性能数据。本文详细介绍了如何在ArkTS中使用HiDebug,并提供了示例代码,帮助开发者进行性能分析和问题诊断。
24 7
|
1天前
|
Android开发
鸿蒙开发:自定义一个简单的标题栏
本身就是一个很简单的标题栏组件,没有什么过多的技术含量,有一点需要注意,当使用沉浸式的时候,注意标题栏的位置,需要避让状态栏。
鸿蒙开发:自定义一个简单的标题栏
|
1天前
|
API
鸿蒙开发:切换至基于rcp的网络请求
本文的内容主要是把之前基于http封装的库,修改为当前的Remote Communication Kit(远场通信服务),无非就是通信的方式变了,其他都大差不差。
鸿蒙开发:切换至基于rcp的网络请求
|
6天前
|
前端开发 API
鸿蒙next版开发:相机开发-预览(ArkTS)
在HarmonyOS 5.0中,使用ArkTS进行相机预览是核心功能之一。本文详细介绍了如何使用ArkTS实现相机预览,包括导入相机接口、创建Surface、获取相机输出能力、创建会话并开始预览,以及监听预览输出状态等步骤,并提供了代码示例。通过本文,读者可以掌握在HarmonyOS 5.0中使用ArkTS进行相机预览的基本方法。
23 6
|
6天前
|
编解码 开发工具 计算机视觉
鸿蒙5.0版开发:命令行工具(mediatool工具)
在HarmonyOS 5.0的开发中,命令行工具mediatool基于FFmpeg库,提供了丰富的媒体处理功能,如视频和音频的转码、封装格式转换、提取媒体信息等。本文详细介绍mediatool的功能和使用方法,并提供代码示例。
24 6
|
6天前
|
监控 Shell API
鸿蒙next版开发:使用HiChecker检测问题(ArkTS)
在HarmonyOS 5.0中,HiChecker是一个强大的工具,帮助开发者检测应用中的潜在问题,如耗时调用和资源泄露。本文详细介绍了如何在ArkTS中使用HiChecker,包括添加检测规则、触发检测和日志输出等步骤,并提供了示例代码。通过合理使用HiChecker,开发者可以提高应用的稳定性和性能。
21 6
|
6天前
|
前端开发 开发者
鸿蒙next版开发:相机开发-元数据(ArkTS)
在HarmonyOS 5.0中,ArkTS新增了对相机元数据的访问能力,帮助开发者获取图像的详细信息。本文介绍了如何在ArkTS中获取和使用相机元数据,包括导入接口、创建元数据输出流、开启和停止元数据输出、监听元数据对象可用事件等步骤,并提供了详细的代码示例。
23 5