FA模型(过时)

**FA(Feature Ability)模型

[[ArkTS#Stage 模型]]

鸿蒙整体架构

用户程序的开发本质上就是开发Abilit
Ability框架在API 8及更早版本使用FA模型。FA模型中Ability分为PageAbility、ServiceAbility、DataAbility、FormAbility几种类型。其中:

  • PageAbility是具备ArkUI实现的Ability,是用户具体可见并可以交互的Ability实例。
  • ServiceAbility也是Ability一种,但是没有UI,提供其他Ability调用自定义的服务,在后台运行。
  • DataAbility也是没有UI的Ability,提供其他Ability进行数据的增删查服务,在后台运行。
  • FormAbility是卡片Ability,是一种界面展示形式。

进程线程模型

  • 应用独享独立进程,Ability独享独立线程,应用进程在Ability第一次启动时创建,并为启动的Ability创建线程,应用启动后再启动应用内其他Ability,会为每一个Ability创建相应的线程。每个Ability绑定一个独立的JSRuntime实例,因此Ability之间是隔离的。
    image.png

PageAbility

接口名 描述
onShow() Ability由后台不可见状态切换到前台可见状态调用onShow方法,此时用户在屏幕可以看到该Ability
onHide() Ability由前台切换到后台不可见状态时调用onHide方法,此时用户在屏幕看不到该Ability。
onDestroy() 应用退出,销毁Ability对象前调用onDestroy方法,开发者可以在该方法里做一些回收资源、清空缓存等应用退出前的准备工作。
onCreate() Ability第一次启动创建Ability时调用onCreate方法,开发者可以在该方法里做一些应用初始化工作。
onInactive() Ability失去焦点时调用onInactive方法,Ability在进入后台状态时会先失去焦点,再进入后台。
onActive() Ability切换到前台,并且已经获取焦点时调用onActive方法。

image.png

启动模式

ability支持单实例和多实例两种启动模式。

在config.json中通过launchType配置项,可以配置具体的启动模式,其中:

启动模式 描述 说明
standard 多实例 每次startAbility都会启动一个新的实例
singleton 单实例 系统中只存在唯一一个实例,startAbility时,如果已存在,则复用系统中的唯一一个实例

FA 模型目录(过时)

entry:
HarmonyOS 工程模块,编译构建生成一个 Hap 包。
src > main > ets
:用于存放 ets 源码。
src > main > ets > MainAbility
:应用/服务的入口。
src > main > ets > MainAbility > pages
:MainAbility 包含的页面。
src > main > ets > MainAbility > app. ets
:承载 Ability 生命周期。
src > main > resources:
用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。
src > main > config. json
:模块配置文件,主要包含 HAP 包的配置信息、应用在具体设备上的配置信息以及应用的全局配置信息。
entry >build-profile. json5:
当前的模块信息、编译信息配置项,包括 buildOption、targets 配置等。
entry >hvigorfile. js
:模块级编译构建任务脚本。

mate10 手机版本:getprop hw_sc. build. os. apiversion 6
image.png

原子化服务工程


FA模型(过时)
http://peiniwan.github.io/2025/12/ba1a233fba5a.html
作者
六月的雨
发布于
2025年12月16日
许可协议