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

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

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

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

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

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

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

  • 在工程的 Module 对应的 ets 目录下,右键选择“New > Directory”,新建一个目录并命名为 myabilitystage。
  • 在 myabilitystage 目录,右键选择“New > ArkTS File”,新建一个文件并命名为 MyAbilityStage.ets。
  • 打开 MyAbilityStage.ets 文件,导入 AbilityStage 的依赖包,自定义类继承 AbilityStage 并加上需要的生命周期回调,例如 onCreate、onAcceptWant 等。
  • 在工程 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 组件容器的其他功能和使用技巧
    请注意,由于鸿蒙系统版本更新较快,部分功能可能存在变动,请以最新版本官方文档为准


SameX
1 声望2 粉丝