鸿蒙应用架构:Ability与Page的理解

鸿蒙应用的基本单元是Ability(能力):它是应用的功能模块,可以理解为“一个可以独立运行的单元”。理解Ability体系,是鸿蒙开发与安卓/iOS开发最大的思维差异。

什么是Ability

  • Ability = 应用的功能单元(类组件);
  • UIAbility:带界面的Ability(相当于一个“页面入口”);
  • ExtensionAbility:无界面的能力(后台任务、卡片等);
  • 一个应用可以有一个或多个Ability。

UIAbility与Page

UIAbility承载页面(Page):一个UIAbility可以有多个Page(页面);Page用@Entry修饰(入口页面);Ability生命周期(onCreate/onForeground/onBackground/onDestroy)与页面导航(router)配合。

Ability的启动

应用启动:拉起入口Ability;Ability间跳转:want(意图)拉起其他Ability(同应用或跨应用);单例/多例模式:Ability的启动模式配置。

与安卓Activity的区别

类似但更灵活:Ability可以跨设备迁移(分布式);能力可被其他应用复用(服务化);声明式UI与Ability的“能力化”设计,是鸿蒙的核心特色。

开发要点

模块化设计:按功能划分Ability;页面导航:router/pushUrl管理页面栈;生命周期管理:正确释放资源;配置:module.json5中声明Ability。

Ability是鸿蒙应用的“积木单元”:UIAbility管界面、ExtensionAbility管能力。理解Ability与Page的分工,鸿蒙应用的架构就清晰了。

发表评论