首页 > 其他分享 >华为鸿蒙 AbilityStage 组件容器:Stage模型的舞台中心

华为鸿蒙 AbilityStage 组件容器:Stage模型的舞台中心

时间:2024-10-21 13:32:04浏览次数:1  
标签:容器 生命周期 鸿蒙 hilog 内存 组件 AbilityStage Stage

本文旨在深入探讨华为鸿蒙HarmonyOS Next系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。

华为鸿蒙系统的阶段模型为开发者提供了一个强大的舞台,而 AbilityStage 组件则是这个舞台的中心,负责管理整个阶段的生命周期、资源分配和进程管理。

一、AbilityStage 组件容器的定义和作用

AbilityStage 是华为鸿蒙系统中用于管理阶段组件的生命周期、资源分配和进程的组件容器。每个阶段都有一个 AbilityStage 实例,它负责管理该阶段的组件生命周期、资源分配和进程管理。
AbilityStage 组件容器的核心作用

  • 组件生命周期管理:AbilityStage 组件容器负责管理阶段内所有组件的生命周期,包括创建、启动、运行、停止和销毁等状态。
  • 资源分配:AbilityStage 组件容器负责分配阶段所需的资源,例如内存、文件系统等。
  • 进程管理:AbilityStage 组件容器负责管理阶段的进程,包括进程创建、进程销毁、进程状态管理等。
    AbilityStage 组件容器就像是舞台的中心,负责协调和管理舞台上的所有角色

二、AbilityStage 组件容器的创建和使用

DevEco Studio 默认工程中未自动生成 AbilityStage,开发者需要手动创建
创建 AbilityStage 组件容器的步骤

  1. 在工程的 Module 对应的 ets 目录下,右键选择“New > Directory”,新建一个目录并命名为 myabilitystage。
  2. 在 myabilitystage 目录,右键选择“New > ArkTS File”,新建一个文件并命名为 MyAbilityStage.ets。
  3. 打开 MyAbilityStage.ets 文件,导入 AbilityStage 的依赖包,自定义类继承 AbilityStage 并加上需要的生命周期回调,例如 onCreate、onAcceptWant 等。
  4. 在工程 Module 对应的 module.json5 配置文件中,通过配置 srcEntry 参数来指定模块对应的代码路径,以作为 HAP 加载的入口。
    以下是一些创建 AbilityStage 组件容器的代码示例
import { AbilityStage } from '@kit.AbilityKit';
export default class MyAbilityStage extends AbilityStage {
  onCreate(): void {
    // 应用的 HAP 在首次加载时,为该 Module 初始化操作
    hilog.info(0x0000, 'testTag', '%{public}s', 'AbilityStage onCreate');
  }
  onAcceptWant(want: Want): string {
    // 仅 specified 模式下触发
    return 'MyAbilityStage';
  }
}

开发者可以根据应用需求创建 AbilityStage 组件容器,并配置相应的生命周期回调,实现阶段的初始化、资源分配和进程管理等操作

三、AbilityStage 组件容器的生命周期回调

AbilityStage 组件容器提供了以下生命周期回调:

  • onCreate:AbilityStage 组件容器创建完成时触发。
  • onAcceptWant:UIAbility 指定实例模式(specified)启动时触发。
  • onConfigurationUpdated:系统全局配置发生变更时触发。
  • onMemoryLevel:系统调整内存时触发。
    以下是一些与 AbilityStage 组件容器生命周期回调相关的代码示例
import { AbilityStage, AbilityConstant, Want } from '@kit.AbilityKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
export default class MyAbilityStage extends AbilityStage {
  onCreate(): void {
    // 应用的 HAP 在首次加载时,为该 Module 初始化操作
    hilog.info(0x0000, 'testTag', '%{public}s', 'AbilityStage onCreate');
  }
  onAcceptWant(want: Want): string {
    // 仅 specified 模式下触发
    return 'MyAbilityStage';
  }
  onConfigurationUpdated(newConfig: Configuration): void {
    // 系统配置更新
    hilog.info(0x0000, 'testTag', 'onConfigurationUpdated, language: %s', newConfig.language);
  }
  onMemoryLevel(level: AbilityConstant.MemoryLevel): void {
    // 系统内存调整
    hilog.info(0x0000, 'testTag', 'onMemoryLevel level: %s', level);
  }
}

开发者可以根据应用需求监听和处理 AbilityStage 组件容器的生命周期回调,进行资源管理、数据同步等操作

四、AbilityStage 组件容器的内存管理

AbilityStage 组件容器可以监听系统内存的变化,并进行相应的内存管理操作,例如释放不必要的资源、关闭不需要的进程等。
以下是一些与 AbilityStage 组件容器内存管理相关的代码示例

import { AbilityStage, AbilityConstant } from '@kit.AbilityKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
export default class MyAbilityStage extends AbilityStage {
  onMemoryLevel(level: AbilityConstant.MemoryLevel): void {
    // 根据系统可用内存的变化情况,释放不必要的内存
    hilog.info(0x0000, 'testTag', 'onMemoryLevel level: %s', level);
  }
}

咱们可以根据应用需求监听和处理 AbilityStage 组件容器的内存变化事件,进行内存管理操作,优化应用的性能和资源占用
本篇博客介绍了华为鸿蒙 AbilityStage 组件容器的定义、作用、创建和使用、生命周期回调和内存管理。后续文章将深入讲解 AbilityStage 组件容器的其他功能和使用技巧
请注意,由于鸿蒙系统版本更新较快,部分功能可能存在变动,请以最新版本官方文档为准

标签:容器,生命周期,鸿蒙,hilog,内存,组件,AbilityStage,Stage
From: https://www.cnblogs.com/samex/p/18489313

相关文章

  • 内置免费图标!SymbolGlyphs|鸿蒙动效开发笔记 04|Extras
    这篇笔记将介绍HarmonyOSNEXT应用开发里非常好用的官方内置图标库和原生图标组件。妙用这套组合拳可以解决几乎一切UI设计资源上的问题,并且将开发的App与原生鸿蒙风格完美契合!补充资料:官方图标库网站:HarmonyOSSymbol主题图标库(不全)https://developer.huawei.co......
  • 鸿蒙开发 四十九 数组
    1、数组的创建方式数组:接口范型的形式提供,接口的源码是:interfaceArray<T>,实际开发中数组用得非常多,创建数组的方式有:1、语法格式:let数组名:Array<数组类型>=[],实例:letarr1:Array<IObject>=[],这里申明IObject的数组,2,new关键字创建数组,语法格式:let数组名字:Arra......
  • HarmonyOS Stage 模型:进程、线程与配置文件之浅析
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。HarmonyOS的Stage模型为开发者提供......
  • 鸿蒙ArkWeb 组件多媒体探究:从视频到音频
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。引言ArkWeb是华为鸿蒙系统提供的一......
  • 华为鸿蒙 Web 组件:高效调试策略
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。引言调试是软件开发过程中不可或缺的......
  • 【HarmonyOS】鸿蒙应用蓝牙功能实现 (一)
    【HarmonyOS】鸿蒙应用蓝牙功能实现前言蓝牙技术是一种无线通信技术,可以在短距离内传输数据。它是由爱立信公司于1994年提出的,使用2.4GHz的ISM频段,可以在10米左右的距离内进行通信。可以用于连接手机、耳机、音箱、键盘、鼠标、打印机等各种设备。特点是低功耗、低成本、简单易用......
  • Stage模型应用程序包结构
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(MaoistLearning)➤博客园地址:为敢技术(https://www.cnblogs.com/strengthen/ )➤GitHub地址:https://github.com/strengthen➤原文地址:https://www.cnblogs.com/strengthen/p/......
  • 鸿蒙ArkTS中的资源管理详解
    在鸿蒙应用开发中,资源管理是一个非常重要的话题。ArkTS作为鸿蒙原生开发语言,提供了强大的资源管理功能。本文将深入探讨ArkTS中的资源管理,特别是$r语法的使用注意事项,以及其他实用的资源管理技巧。1.$r语法简介在ArkTS中,$r是一个用于引用资源的特殊语法。它允许开发者......
  • 鸿蒙沉侵式导航状态栏
    沉浸式状态栏导航一、概念沉浸式状态栏是一种让应用与系统UI融合的设计手法,通常指状态栏透明或与应用背景色一致,使得应用界面看起来更加统一和流畅。二、实现沉浸式状态栏的原因提升视觉体验:减少视觉割裂感,增强沉浸感。优化界面空间:隐藏状态栏或透明化状态栏,扩大应用内......
  • 鸿蒙签名发布
    申请发布证书,该证书不同于本地运行的调试证书,需要从华为平台申请。先在DevEcoStudioNEXTReleaseIDE中,构建-生成私钥和证书请求文件,创建私有秘钥和csr文件,记住别名和密码。然后访问下面的网址学习:https://infocenter.dra.agchosting.link/interactive/iteach.html#8426a9c8_......