【鸿蒙学习笔记】Stage模型

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

目录标题

  • Stage模型好处
  • Stage模型概念图
    • Context
    • AbilityStage
    • UIAbility组件和ExtensionAbility组件
    • WindowStage
  • Stage模型-组件模型
  • Stage模型-进程模型
  • Stage模型-ArkTS线程模型和任务模型
    • 关于任务模型,我们先来了解一下什么是任务?
  • Stage模型-后台运行机制
  • Stage模型-应用配置文件
    • app.json5
    • module.json5

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/790514.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

旷野之间8 - LLMOps 与 MLOps操作化 AI 模型

介绍 随着人工智能越来越多地应用于商业应用,简化人工智能系统(尤其是机器学习模型)的开发和持续管理的新实践也不断涌现。MLOps 已成为一种基于 DevOps 原则实施机器学习的流行方法。 现在,随着 GPT-3 等大型语言模型 (LLM) 的…

火热夏季:浦语*书生InternLM大模型实战闯关-入门岛之Linux基础知识

一、ssh链接与端口映射并运行hello_wold.py 1.创建开发机 InternStudio创建开发机 2.进入开发机 3.Ssh链接开发机 powerShell终端ssh链接开发机。 4.创建一个hello_world.py文件web demo 5.运行web demo 6.端口映射 7.本地浏览器打开web 二、 VSCODE 远程连接开发机并创建一个…

LeetCode67(二进制求和[位运算,大数运算])

二进制求和 题目要求: 给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。 这道题其实有几种解法.我们先来介绍简单的方法. 我们可以将两个字符串的二进制转成十进制,获取对应值相加之后,我们可以不断对2取余,获取尾数拼接即可.也就是像我们平常求一…

笔试算法刷题

猿辅导2021校园招聘笔试(算法一) 牛客网 - 找工作神器|笔试题库|面试经验|实习招聘内推,求职就业一站解决_牛客网 (nowcoder.com) 第一眼看到这个题想到的是蓝桥杯飞机降落,贪心题。但是这样算的是最大不相交区间数量&#xff0…

docker笔记2

docker笔记2 一、阿里云镜像配置二、docker基本原理1.docker是如何启动一个容器的2.docker的底层原理 三、镜像命令总结 一、阿里云镜像配置 配置镜像的目的 由于Docker Hub等公共镜像仓库的服务器可能位于国外,直接从中拉取镜像时可能会遇到网络延迟或不稳定的问…

MySQL Undo Log

总结自bojiangzhou undo log称为撤销日志或回滚日志。在一个事务中进行增删改操作时,都会记录对应的 undo log。在对数据库进行修改前,会先记录对应的 undo log,然后在事务失败或回滚的时候,就可以用这些 undo log 来将数据回滚到…

(2024,测试时训练(TTT),线性注意力,RNN,嵌套循环)学习(在测试时学习):具有表达性隐藏状态的 RNN

Learning to (Learn at Test Time): RNNs with Expressive Hidden States 公和众与号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群) 目录 0. 摘要 1. 简介 2. 方法 2.1 使用 TTT 更新隐藏状态 2.2 …

常用的JVM启动参数

JVM的启动参数有很多,但是我们平常能用上的并不是特别多,这里介绍几个我们常用的: 1. 堆设置: 。 -Xms:设置堆的初始大小。 。.-Xmx:设置堆的最大大小。 2. 栈设置: 。 -XsS:设置每个…

​​​防御第一次作业

1、拓扑图及实验要求: 2、配置: 配置终端及服务器IP地址: Pc2: Client1: Pc4: Client2: PC1: Server1: Server2: 防火墙基础配置: [fw1]int g …

光学、SAR卫星影像助力洞庭湖决堤抢险(附带数据下载)

​​ 点击下方全系列课程学习 点击学习—>ArcGIS全系列实战视频教程——9个单一课程组合系列直播回放 点击学习——>遥感影像综合处理4大遥感软件ArcGISENVIErdaseCognition 7月5日下午,湖南岳阳市华容县团洲乡团北村团洲垸洞庭湖一线堤防发生决口&#xff0…

怎样在 PostgreSQL 中优化对 UUID 数据类型的索引和查询?

文章目录 一、UUID 数据类型概述二、UUID 索引和查询的性能问题三、优化方案(一)选择合适的索引类型(二)压缩 UUID(三)拆分 UUID(四)使用覆盖索引(五)优化查询…

Meta发布Llama 2驱动的AI代码生成器:Code Llama,开源来袭!

Meta 刚刚了号称是编程领域 “最先进的大语言模型”—— Code Llama ,可根据 代码和自然语言提示 生成代码和有关代码的自然语言,支持多种主流编程语言, 包括 Python、C、Java、PHP、Typescript (Javascript)、C# 和 Bash 。 Code Llama 完全…

“Pandas数据处理与分析:实用技巧与应用“

目录 # 开篇 1. pandas的series的了解 1.1 pd.Series 创建 1.2 pd.series 的索引使用 1.3 pd.series 之字典/索引 1.4 pandas 转换数据类型 1.5 pandas 通过索引或者通过位置来取值 1.6 pandas 指定行取值 1.7 pands之Series 切片和索引 1.8 pands之Series 的索引和值…

vue2/3代码格式化问题,看着太难受了

1.原本的代码: 格式化后的代码: 太难受了! 2.原本的代码 格式化后的代码 格式化跟有病似的,看着非常难受! 有没有什么插件解决!?

C++ //练习 14.44 编写一个简单的桌面计算器使其能处理二元运算。

C Primer(第5版) 练习 14.44 练习 14.44 编写一个简单的桌面计算器使其能处理二元运算。 环境:Linux Ubuntu(云服务器) 工具:vim 代码块 /**********************************************************…

Cesium中实现全球体积云效果的一种方案

原生 Cesium 提供了一种积云的效果,云的物理特征和渲染性能都还不错,这种方案适合表达小范围相对离散的云朵,但是用来实现全球范围下相对连续、柔和渐变的云层比较困难。本文在体渲染的基础上,参考了开源社区中 shadertoy 和 thre…

java数组之线性查找、二分法查找

一、线性查找 思想:如果想在一个数组中查找是否有某个元素,最容易想到的办法就是遍历数组,将数组中元素与想要查找的元素逐个对比,如果相等表示找到了,如果不等,则表示没找到。这就是线性查找的思想。 案例…

如何在微信小程序中对接微信支付

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] &#x1f4f1…

流模型flow

流模型 Flow 超详解,基于 Flow 的生成式模型,从思路到基础到公式推导到模型理解与应用(Flow-based Generative Model)_generative flows-CSDN博客

软考《信息系统运行管理员》-3.1信息系统设施运维的管理体系

3.1信息系统设施运维的管理体系 1 信息系统设施运维的对象 基础环境 主要包括信息系统运行环境(机房、设备间、配线室、基站、云计算中心 等)中的空调系统、供配电系统、通信应急设备系统、防护设备系统(如消防系统、安全系统) 等,能维持系统安全正常运转&#xf…