鸿蒙OS(HarmonyOS)是面向全场景的分布式操作系统,它通过创新的应用模型,为开发者提供了强大的应用开发框架。
在HarmonyOS的发展过程中,FA模型(Feature Ability)和Stage模型是两种重要的应用模型。
今天来跟大家聊一聊,鸿蒙开发中的FA模型和Stage模型。这个问题是鸿蒙应用开发面试中的一个高频考点。
FA模型:早期的探索
FA模型是HarmonyOS早期版本开始支持的应用模型。它通过PageAbility、ServiceAbility和DataAbility三种组件,为开发者提供了构建应用的基础。FA模型的特点是每个组件运行在自己的进程中,拥有独立的JS VM引擎实例,这使得组件之间相互隔离,但也带来了一定的内存占用。
随着HarmonyOS的演进,特别是1+8+N的战略被提出,多设备和多窗口形态成为主流,此时FA模型在处理复杂应用时存在一定的局限性, FA模型逐渐不再被主推。

Stage模型:未来的主流
为了更好地适应复杂应用的开发需求,HarmonyOS 3.1 Developer Preview版本引入了Stage模型。Stage模型通过AbilityStage、WindowStage等类,将应用组件和Window窗口作为“舞台”进行管理,从而提供了更加灵活和高效的开发方式。
Stage模型的设计出发点是为了复杂应用而设计,它通过以下几个方面实现了对复杂应用的优化:
共享ArkTS引擎实例:在Stage模型中,多个应用组件共享同一个ArkTS引擎实例,这使得组件之间可以方便地共享对象和状态,同时减少了内存占用。
面向对象的开发方式:Stage模型采用面向对象的开发方式,提高了代码的可读性、易维护性和可扩展性。
支持多设备和多窗口形态:应用组件管理和窗口管理在架构层面解耦,使得应用组件可以在不同设备上使用同一套生命周期,便于系统扩展窗口形态。
平衡应用能力和系统管控成本:Stage模型重新定义了应用能力的边界,提供了特定场景的应用组件,规范化了后台进程管理,防止了恶意应用行为。
综合对比
维度 | FA | Stage |
ArkTS引擎实例 | 独立 | 共享 |
多设备和多窗口 | 不支持 | 支持 |
复杂应用 | 维护复杂 | 维护简单 |
综合性能 | 低 | 高 |
学习建议
如果你是初学者,我建议你直接跳过FA模型,毕竟人的精力有限,紧跟官方主推的Stage模型学习,未来可以参考的资料会越来越多,我们使用Stage模型开发出来的应用,可以很好的支持多设备和多窗口形态,并且性能也会表现得更好一些。
关于菁英老猎人
菁英老猎人拥有12+年的软件开发经验,一直专注于大前端领域,对原生APP开发、混合APP开发和鸿蒙APP开发都有较深入的研究,曾使用cordova、uni-app、React-Native、Flutter做过大量的项目,现在开始研究鸿蒙应用开发,擅长对APP开发的相关知识深入浅出。关注我,带你快速、扎实的学习鸿蒙应用开发。