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

举报
人才程序员 发表于 2024/09/14 19:32:11 2024/09/14
【摘要】 @TOC 前言 一、基本概念下图展示了Stage模型中的基本概念。下面我为大家一一讲解上方的内容在 Stage 模型中,有两种重要的组件:UIAbility 和 ExtensionAbility。这些组件是用于构建应用程序的重要构建块,每个都有自己的特点和功能。 1.1 UIAbility 组件UIAbility 组件:1.什么是它? UIAbility 是一种应用组件,它主要用于创建和展示...

@TOC


前言


一、基本概念

下图展示了Stage模型中的基本概念。
在这里插入图片描述

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

在 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位置如下图所示:
在这里插入图片描述
下图即是应用包名:
在这里插入图片描述

2.3 应用图标和标签配置

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

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

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

下图即是icon设置:
在这里插入图片描述
下图即是应用标签:
在这里插入图片描述

2.4 入口图标和标签配置

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

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

此文件在下图所示:
在这里插入图片描述

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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。