【鸿蒙学习笔记】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 小时前
02词云生成器
笔记·python
笨鸟先飞的橘猫1 小时前
slg游戏面试复盘
学习·面试
hanlin032 小时前
刷题笔记:力扣第287题-寻找重复数
笔记·算法·leetcode
心态还需努力呀2 小时前
把 Zettlr 搬上鸿蒙 PC:一次 Electron 应用移植实战
华为·electron·harmonyos
OH_TPC2 小时前
HarmonyOS APP开发---“心动卡“社交匹配App,需要用到这个库
华为·harmonyos·鸿蒙
你想知道什么?2 小时前
神经网络-学习笔记
笔记·神经网络·学习
●VON2 小时前
Flutter 鸿蒙插件适配实战:用 is_lock_screen 2.0.0 判断真实锁屏状态
flutter·华为·harmonyos
Sunny_G2 小时前
鸿蒙 Markdown 编辑器表格所见即所得:七个版本的渲染重构(CodeMirror Decoration 实战)
ai编程·harmonyos
疯狂打码的少年3 小时前
【计算机网络】IP地址与子网划分(IP地址分类与特殊地址)
网络·笔记·tcp/ip·计算机网络
CappuccinoRose3 小时前
专项事件体系
前端·学习·网络状态·表单事件·剪贴板事件·拖放事件·页面可见性