From b8f43c0451952cdeeb4b8bda33f634933cb422f6 Mon Sep 17 00:00:00 2001 From: zhongjianfei Date: Tue, 7 Feb 2023 19:49:23 +0800 Subject: [PATCH] fixed 98caaf5 from https://gitee.com/zhongjianfei/docs/pulls/14364 add Sketch Map for Ability Signed-off-by: zhongjianfei Change-Id: Ic356de3317060110c8860fdb6c97a2d5b43b5802 --- .../application-model-description.md | 2 +- .../figures/fa-model-component.png | Bin 0 -> 9019 bytes .../figures/stage-model-component.png | Bin 0 -> 11669 bytes 3 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 zh-cn/application-dev/application-models/figures/fa-model-component.png create mode 100644 zh-cn/application-dev/application-models/figures/stage-model-component.png diff --git a/zh-cn/application-dev/application-models/application-model-description.md b/zh-cn/application-dev/application-models/application-model-description.md index 0623ea2b00..0f06eed9d8 100644 --- a/zh-cn/application-dev/application-models/application-model-description.md +++ b/zh-cn/application-dev/application-models/application-model-description.md @@ -51,7 +51,7 @@ Stage模型之所以成为主推模型,源于其设计思想。Stage模型的 | 项目 | FA模型 | Stage模型 | | -------- | -------- | -------- | -| **应用组件** | 1. 组件分类
   - PageAbility组件:包含UI界面,提供展示UI的能力。详细介绍请参见[PageAbility组件概述](pageability-overview.md)。
   - ServiceAbility组件:提供后台服务的能力,无UI界面。详细介绍请参见[ServiceAbility组件概述](serviceability-overview.md)。
   - DataAbility组件:提供数据分享的能力,无UI界面。详细介绍请参见[DataAbility组件概述](dataability-overview.md)。
2. 开发方式
   通过导出匿名对象、固定入口文件的方式指定应用组件。开发者无法进行派生,不利于扩展能力。 | 1. 组件分类
   - UIAbility组件:包含UI界面,提供展示UI的能力,主要用于和用户交互。详细介绍请参见[UIAbility组件概述](uiability-overview.md)。
   - ExtensionAbility组件:提供特定场景(如卡片、输入法)的扩展能力,满足更多的使用场景。详细介绍请参见[ExtensionAbility组件概述](extensionability-overview.md)。
2. 开发方式
   采用面向对象的方式,将应用组件以类接口的形式开放给开发者,可以进行派生,利于扩展能力。 | +| **应用组件** | 1. 组件分类
![fa-model-component](figures/fa-model-component.png)   - PageAbility组件:包含UI界面,提供展示UI的能力。详细介绍请参见[PageAbility组件概述](pageability-overview.md)。
   - ServiceAbility组件:提供后台服务的能力,无UI界面。详细介绍请参见[ServiceAbility组件概述](serviceability-overview.md)。
   - DataAbility组件:提供数据分享的能力,无UI界面。详细介绍请参见[DataAbility组件概述](dataability-overview.md)。
2. 开发方式
   通过导出匿名对象、固定入口文件的方式指定应用组件。开发者无法进行派生,不利于扩展能力。 | 1. 组件分类
![stage-model-component](figures/stage-model-component.png)   - UIAbility组件:包含UI界面,提供展示UI的能力,主要用于和用户交互。详细介绍请参见[UIAbility组件概述](uiability-overview.md)。
   - ExtensionAbility组件:提供特定场景(如卡片、输入法)的扩展能力,满足更多的使用场景。详细介绍请参见[ExtensionAbility组件概述](extensionability-overview.md)。
2. 开发方式
   采用面向对象的方式,将应用组件以类接口的形式开放给开发者,可以进行派生,利于扩展能力。 | | **进程模型** | 有两类进程:
1. 主进程
2. 渲染进程
详细介绍请参见[进程模型](process-model-fa.md)。 | 有三类进程:
1. 主进程
2. ExtensionAbility进程
3. 渲染进程
详细介绍请参见[进程模型](process-model-stage.md)。 | | **线程模型** | 1. ArkTS引擎实例的创建
   一个进程可以运行多个应用组件实例,每个应用组件实例运行在一个单独的ArkTS引擎实例中。
2. 线程模型
   每个ArkTS引擎实例都在一个单独线程(非主线程)上创建,主线程没有ArkTS引擎实例。
3. 进程内对象共享:不支持。
详细介绍请参见[线程模型](thread-model-fa.md)。 | 1. ArkTS引擎实例的创建
   一个进程可以运行多个应用组件实例,所有应用组件实例共享一个ArkTS引擎实例。
2. 线程模型
   ArkTS引擎实例在主线程上创建。
3. 进程内对象共享:支持。
详细介绍请参见[线程模型](thread-model-stage.md)。 | | **任务管理模型** | - 每个PageAbility组件实例创建一个任务。
- 任务会持久化存储,直到超过最大任务个数(根据产品配置自定义)或者用户主动删除任务。
- PageAbility组件之间不会形成栈的结构。
详细介绍请参见[任务管理场景介绍](mission-management-overview.md)。 | - 每个UIAbility组件实例创建一个任务。
- 任务会持久化存储,直到超过最大任务个数(根据产品配置自定义)或者用户主动删除任务。
- UIAbility组件之间不会形成栈的结构。
详细介绍请参见[任务管理场景介绍](mission-management-overview.md)。 | diff --git a/zh-cn/application-dev/application-models/figures/fa-model-component.png b/zh-cn/application-dev/application-models/figures/fa-model-component.png new file mode 100644 index 0000000000000000000000000000000000000000..0c28038326c5475abb3f897c5f7cbe9eb50aec00 GIT binary patch literal 9019 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 literal 0 HcmV?d00001 diff --git a/zh-cn/application-dev/application-models/figures/stage-model-component.png b/zh-cn/application-dev/application-models/figures/stage-model-component.png new file mode 100644 index 0000000000000000000000000000000000000000..6de8c778aff28cc9c7353270ce8ab4ad0c10fb02 GIT binary patch literal 11669 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 literal 0 HcmV?d00001 -- GitLab