Ability翻译成中文就是“能力”的意思。在HarmonyOS中,Ability是应用所具备能力的抽象,也是应用程序的重要组成部分。
一个应用可以具备多种能力,也就是说可以包含多个Ability。HarmonyOS支持应用以Ability为单位进行部署。
如图2-1所示,左侧图片是一个浏览器应用,右侧图片是一个聊天应用。浏览器应用可以通过一个Ability结合多页面的形式让用户进行的搜索和浏览内容。而聊天应用增加了一个“外卖功能”的场景,可以将聊天应用中“外卖功能”的内容独立为一个Ability。当用户打开聊天应用的“外卖功能”,查看外卖订单详情时,如果有新的聊天消息,即可通过最近任务列表切换回聊天窗口继续进行聊天对话。
图2-1 单Ability应用和多Ability应用
HarmonyOS应用模型的构成要素如下。
· 应用组件:应用组件是应用的基本组成单位,是应用的运行入口。用户启动、使用和退出应用的过程中,应用组件会在不同的状态间切换,这些状态称为应用组件的生命周期。应用组件提供生命周期的回调函数,开发者通过应用组件的生命周期回调感知应用的状态变化。应用开发者在编写应用时,首先需要编写应用组件,同时还需要编写应用组件的生命周期回调函数,并在应用配置文件中配置相关信息。这样,操作系统在运行期间可以通过配置文件创建应用组件的实例,并调度它的生命周期回调函数,从而执行开发者的代码。
· 应用进程模型:应用进程模型定义应用进程的创建和销毁方式,以及进程间的通信方式。
· 应用线程模型:应用线程模型定义应用进程内线程的创建和销毁方式、主线程和UI线程的创建方式、线程间的通信方式。
· 应用任务管理模型:应用任务管理模型定义任务(Mission)的创建和销毁方式,以及任务与组件间的关系。HarmonyOS应用任务管理由系统应用负责,第三方应用无须关注。
· 应用配置文件:应用配置文件中包含应用配置信息、应用组件信息、权限信息、开发者自定义信息等,这些信息在编译构建、分发和运行阶段分别提供给编译工具、应用市场和操作系统使用。
截至目前,在HarmonyOS中,Ability框架模型结构具有以下两种形态。
· FA模型:API 8及更早版本的应用程序只能使用FA模型进行开发。
· Stage模型:从API 9开始,Ability框架引入并支持使用Stage模型进行开发,也是目前HarmonyOS所推荐的开发方式。
FA模型和Stage模型的工程目录结构存在差异,Stage模型目前只支持使用ArkTS语言进行开发。本书示例也是采用Stage模型开发的。