【鸿蒙学习笔记】Stage模型

官方文档:Stage模型开发概述

目录标题

Stage模型好处

只需要知道由于Stage模型的设计能够方便地共享对象和状态,并且能够减少内存占用就行了。

Stage模型概念图

Context

  1. 上下文

AbilityStage

  1. AbilityStage与Module一一对应,即一个Module拥有一个AbilityStage。
  2. AbilityStage是一个Module级别的组件容器,应用的HAP在首次加载时会创建一个AbilityStage实例,可以对该Module进行初始化等操作
  3. AbilityStage拥有onCreate()生命周期回调和onAcceptWant()、onConfigurationUpdated()、onMemoryLevel()事件回调

UIAbility组件和ExtensionAbility组件

  1. UIAbility组件是一种包含UI的应用组件,主要用于和用户交互
  2. ExtensionAbility组件是一种面向特定场景的应用组件。开发者并不直接从ExtensionAbility组件派生,而是需要使用ExtensionAbility组件的派生类。

WindowStage

每个UIAbility实例都会与一个WindowStage类实例绑定,该类起到了应用进程内窗口管理器的作用。它包含一个主窗口。该主窗口为ArkUI提供了绘制区域

Stage模型-组件模型

Stage模型-进程模型

Stage模型-ArkTS线程模型和任务模型

  1. 应用进程启动时,系统会在主线程上创建一个ArkTS的虚拟机实例,并加载执行应用的入口代码。

  2. 主线程负责处理应用组件的生命周期回调、输入事件的分发以及ArkUI的布局等操作。

    开发者应避免在主线程上执行单次耗时过长的操作,以防止引发卡顿现象。

  3. ArkTS通过提供Worker API支持并发编程。

    Worker线程拥有独立的虚拟机上下文,与主线程是两个不同的虚拟机上下文。

    Worker线程与主线程之间通过postMessage API进行通信,采用基于消息传递的并发模型,而非

    基于锁的并发模型。

关于任务模型,我们先来了解一下什么是任务?

在HarmonyOS上,每次用户启动一个新的UIAbility组件实例,都会生成一个新的任务(Mission)。任务中记录了组件和快照的信息,并在系统中持久化。即使组件实例销毁,任务仍然存在。每个应用可以有多个任务在任务中心呈现,不同应用的任务不会以栈的形式堆叠在一起。

Stage模型-后台运行机制

Stage模型-应用配置文件

app.json5

module.json5

相关推荐
正经教主1 天前
【Trae+AI】和Trae学习搭建App_02:后端API开发
学习·app·1024程序员节
岑梓铭1 天前
《考研408数据结构》第六章(5.1+5.2+5.3树、二叉树、线索二叉树)复习笔记
数据结构·笔记·考研·408·1024程序员节
源代码•宸1 天前
Qt6 学习——一个Qt桌面应用程序
开发语言·c++·经验分享·qt·学习·软件构建·windeployqt
摇滚侠1 天前
全面掌握 PostgreSQL 关系型数据库,PostgreSQL 介绍,笔记02
数据库·笔记·postgresql
摇滚侠1 天前
Spring Boot3零基础教程,生命周期监听,自定义监听器,笔记59
java·开发语言·spring boot·笔记
讽刺人生Yan1 天前
RFSOC学习记录(一)RF data converter总览
学习·fpga开发·rfsoc
张人玉1 天前
WPF 控件速查 PDF 笔记(可直接落地版)
笔记·microsoft·wpf
Pluchon1 天前
硅基计划2.0 学习总结 玖 图书管理系统 2.0复盘版(文字末尾源码可复制)
java·学习·项目·源码可复制
摇滚侠1 天前
Spring Boot3零基础教程,事件驱动开发,设计登录成功后增加积分记录信息功能,笔记61
java·spring boot·笔记·后端
cooldream20091 天前
项目实战复盘:基于仓颉语言的鸿蒙智能导航助手(HarmonyNav)
华为·harmonyos·仓颉