目录

应用模型概述

应用模型简介

应用模型是系统为开发者提供的应用程序所需能力的抽象提炼,它提供了应用程序必备的组件和运行机制。应用模型为开发者提供了一套统一的开发模型,使应用开发更简单、高效。

目前主推且会长期演进的应用模型是从API 9开始支持的Stage模型。该模型提供了AbilityStage组件管理器和WindowStage窗口管理器,分别作为应用组件与窗口的“舞台”,故得名"Stage模型"。

Stage模型支持多个应用组件共享同一个ArkTS引擎实例,以及应用组件间的状态共享与对象调用,可以降低内存开销、提升开发效率,适用于复杂应用的开发。

  • 随着应用模型的演进发展,从API 7开始支持的FA模型已经不再主推。当前FA模型主要用于Lite Wearable设备,相关指导详见应用模型开发概述。
  • 除非另有说明,文档中提及的"应用模型"均指"Stage 模型"。

基本概念

下图展示了Stage模型中的基本概念。

图1 Stage模型概念图

构成要素

应用模型的构成要素主要包含应用组件、进程模型、线程模型、任务管理模型以及应用配置文件。

[h2]应用组件

应用组件是应用的基本组成单位和运行入口。

在用户启动、使用和退出应用的过程中,应用组件会在不同的状态间切换,这些状态称为应用组件的生命周期。

应用组件提供生命周期回调函数,开发者通过这些回调可以感知应用状态的变化。

在开发应用时,开发者首先需要编写应用组件及其生命周期回调函数,并在应用配置文件中配置相关信息。操作系统在运行时通过配置文件创建应用组件实例,并调度其生命周期回调函数,从而执行开发者的代码。

[h2]应用进程模型

应用进程模型定义应用进程的创建和销毁方式,以及进程间的通信方式。

[h2]应用线程模型

应用线程模型定义应用进程内线程的创建和销毁方式、主线程和UI线程的创建方式、线程间的通信方式。

[h2]应用任务管理模型(仅对系统应用开放)

应用任务管理模型定义任务(Mission)的创建和销毁方式,以及任务与组件间的关系。

任务是用户使用一个应用组件实例的记录。每次用户启动一个新的应用组件实例,都会生成一个新的任务。

例如,用户启动一个视频应用,在"最近任务"界面可以看到视频应用这个任务。当用户点击这个任务时,系统会把该任务切换到前台。如果这个视频应用中的视频编辑功能也是通过应用组件编写的,在用户启动视频编辑功能时,会创建视频编辑的应用组件实例,在"最近任务"界面中将会展示视频应用、视频编辑两个任务。

[h2]应用配置文件

应用配置文件中包含应用配置信息、应用组件信息、权限信息、开发者自定义信息等,这些信息在编译构建、分发和运行阶段分别提供给编译工具、应用市场和操作系统使用。

[h2]应用构成要素示例

下面我们以Demo.app这个应用为例,从应用的开发阶段和运行阶段分别展开介绍,帮助开发者更好地理解Stage模型的构成要素。

该Demo应用主要实现了如下功能:

图2 Stage模型构成要素

开发阶段 :需要通过Stage模型提供的应用组件(UIAbility组件和ExtensionAbility组件)开发应用功能,并在应用的配置文件(app.json5和module.json5)中注册应用的相关信息。

运行阶段:当应用安装到设备运行时,系统通过一套应用进程和线程的管理机制,确保功能的有序运行。