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

相关文章
鸿蒙开发:了解分割线
在实际的开发中,如果自带的分割线能够满足我们的需求,以自身的分割线属性为主,如果不满足,我们可以使用组件进行绘制。
61 16
鸿蒙开发:了解分割线
鸿蒙开发,远场通信服务rcp拦截器问题
关于rcp的拦截器问题,最重要的就是会话复用的时候,如果Request对象中有需要的参数,就直接用Request中的,而不是使用session中的。
鸿蒙开发,远场通信服务rcp拦截器问题
鸿蒙开发:什么是ArkTs?
本小结主要简单介绍了ArkTs语言的相关知识,都是一些概念性质的内容,大家作为一个了解即可
102 61
一文彻底拿下HarmonyOS NEXT开发实战调试技巧
这是一篇关于HarmonyOS NEXT开发调试技巧的文章,作者是一名经验丰富的程序员Feri。内容涵盖三种调试方法:预览+日志方式(适合简单调试,需注意数据类型转换)、断点调试(详细介绍了设置步骤与功能键使用)以及hilog实战使用(日志打印限制为4096字节,推荐封装维护)。通过这些技巧,帮助开发者更高效地解决问题,提升编程能力。
56 14
一文彻底拿下HarmonyOS NEXT开发实战调试技巧
HarmonyOS Next~鸿蒙应用框架开发实战:Ability Kit与Accessibility Kit深度解析
本书深入解析HarmonyOS应用框架开发,聚焦Ability Kit与Accessibility Kit两大核心组件。Ability Kit通过FA/PA双引擎架构实现跨设备协同,支持分布式能力开发;Accessibility Kit提供无障碍服务构建方案,优化用户体验。内容涵盖设计理念、实践案例、调试优化及未来演进方向,助力开发者打造高效、包容的分布式应用,体现HarmonyOS生态价值。
53 27
HarmonyOS Next~鸿蒙AI功能开发:Core Speech Kit与Core Vision Kit的技术解析与实践
本文深入解析鸿蒙操作系统(HarmonyOS)中的Core Speech Kit与Core Vision Kit,探讨其在AI功能开发中的核心能力与实践方法。Core Speech Kit聚焦语音交互,提供语音识别、合成等功能,支持多场景应用;Core Vision Kit专注视觉处理,涵盖人脸检测、OCR等技术。文章还分析了两者的协同应用及生态发展趋势,展望未来AI技术与鸿蒙系统结合带来的智能交互新阶段。
51 31
鸿蒙开发:刷新库V2装饰器适配
如果你是新写的项目,建议直接上手V2装饰器,即便是已经存在的项目,对于新的模块,也是尽量以V2为主。
鸿蒙开发:刷新库V2装饰器适配
|
7天前
|
鸿蒙开发:远场通信服务rcp会话问题
总体来说,问题倒不是很大,解决起来也不是很麻烦,所以啊,老铁们,在实际的开发中,对于一些官方文档,还是建议多看,这样可以提前避免后续的不必要麻烦。
鸿蒙开发:远场通信服务rcp会话问题
鸿蒙开发:ArkTs数据类型
最后一点是,ArkTS不支持any和unknown类型,需要显式指定具体类型,否则会报异常,具体原因是,这是ArkTS的特性之一,那就是使用静态类型;如果程序采用静态类型,即所有类型在编译时都是已知的,那么开发者就能够容易理解代码中使用了哪些数据结构。同时,由于所有类型在程序实际运行前都是已知的,编译器可以提前验证代码的正确性,从而可以减少运行时的类型检查,有助于提升性能。
鸿蒙开发:ArkTs数据类型
|
5天前
|
鸿蒙开发:填充剩余空间
关于占满剩余的空间,如果权重能够解决,还是以权重为主,因为Blank的使用必须父组件的宽高有值,否则就会不生效,当然了,在实际的开发中,还是具体问题具体分析,使用恰当的方式解决为主。
鸿蒙开发:填充剩余空间