From f9ed3e861b77c05b0c76d5809e023a5086744ecf Mon Sep 17 00:00:00 2001 From: Gloria Date: Mon, 6 Mar 2023 19:13:36 +0800 Subject: [PATCH] fixed bb18545 from https://gitee.com/wusongqing/docs/pulls/15534 Update docs against 14364 Signed-off-by: wusongqing --- .../application-model-description.md | 11 +++++------ .../figures/fa-model-component.png | Bin 0 -> 9019 bytes .../figures/stage-model-component.png | Bin 0 -> 11669 bytes 3 files changed, 5 insertions(+), 6 deletions(-) create mode 100644 en/application-dev/application-models/figures/fa-model-component.png create mode 100644 en/application-dev/application-models/figures/stage-model-component.png diff --git a/en/application-dev/application-models/application-model-description.md b/en/application-dev/application-models/application-model-description.md index de7e3045d7..0cdfa7323c 100644 --- a/en/application-dev/application-models/application-model-description.md +++ b/en/application-dev/application-models/application-model-description.md @@ -14,7 +14,7 @@ The stage model is designed based on the following considerations, which make it 1. **Designed for complex applications** - In the stage model, multiple application components share an ArkTS engine (VM running the programming language ArkTS) instance, making it easy for application components to share objects and status while requiring less memory. -- The object-oriented development mode makes the code of complex applications easy to read, maintain, and scale. + - The object-oriented development mode makes the code of complex applications easy to read, maintain, and scale. 2. **Native support for [cross-device migration](hop-cross-device-migration.md) and [multi-device collaboration](hop-multi-device-collaboration.md) at the application component level** @@ -48,13 +48,12 @@ In the stage model, multiple application components share the same ArkTS engine The table below describes their differences in detail. - **Table 1** Differences between the FA model and stage model +**Table 1** Differences between the FA model and stage model | Item| FA model| Stage model| | -------- | -------- | -------- | -| **Application component**| 1. Component classification
- PageAbility: has the UI and supports user interaction. For details, see [PageAbility Component Overview](pageability-overview.md).
- ServiceAbility: provides background services and has no UI. For details, see [ServiceAbility Component Overview](serviceability-overview.md).
- DataAbility: provides the data sharing capability and has no UI. For details, see [DataAbility Component Overview](dataability-overview.md).
2. Development mode
Application components are specified by exporting anonymous objects and fixed entry files. You cannot perform derivation. It is inconvenient for capability expansion.| 1. Component classification
- UIAbility: has the UI and supports user interaction. For details, see [UIAbility Component Overview](uiability-overview.md).
- ExtensionAbility: provides extension capabilities (such as widget and input methods) for specific scenarios. For details, see [ExtensionAbility Component Overview](extensionability-overview.md).
2. Development mode
The object-oriented mode is used to provide open application components as classes. You can derive application components for capability expansion.| -| **Process model**| There are two types of processes:
1. Main process
2. Rendering process
For details, see [Process Model (FA Model)](process-model-fa.md). | There are three types of processes:
1. Main process
2. ExtensionAbility process
3. Rendering process
For details, see [Process Model (Stage Model)](process-model-stage.md). | -| **Thread model**| 1. ArkTS engine instance creation
A process can run multiple application component instances, and each application component instance runs in an independent ArkTS engine instance.
2. Thread model
Each ArkTS engine instance is created on an independent thread (non-main thread). The main thread does not have an ArkTS engine instance.
3. Intra-process object sharing: not supported.
For details, see [Thread Model (FA Model)](thread-model-fa.md). | 1. ArkTS engine instance creation
A process can run multiple application component instances, and all application component instances share one ArkTS engine instance.
2. Thread model
The ArkTS engine instance is created on the main thread.
3. Intra-process object sharing: supported.
For details, see [Thread Model (Stage Model)](thread-model-stage.md). | +| **Application component**| 1. Component classification
![fa-model-component](figures/fa-model-component.png)
- PageAbility: has the UI and supports user interaction For details, see [PageAbility Component Overview](pageability-overview.md).
- ServiceAbility: provides background services and has no UI. For details, see [ServiceAbility Component Overview](serviceability-overview.md).
- DataAbility: provides the data sharing capability and has no UI. For details, see [DataAbility Component Overview](dataability-overview.md).
2. Development mode
Application components are specified by exporting anonymous objects and fixed entry files. You cannot perform derivation. It is inconvenient for capability expansion. | 1. Component classification
![stage-model-component](figures/stage-model-component.png)
- UIAbility: has the UI and supports user interaction. For details, see [UIAbility Component Overview](uiability-overview.md).
- ExtensionAbility: provides extension capabilities (such as widget and input methods) for specific scenarios. For details, see [ExtensionAbility Component Overview](extensionability-overview.md).
2. Development mode
The object-oriented mode is used to provide open application components as classes. You can derive application components for capability expansion. | +| **Process model**| There are two types of processes:
1. Main process
2. Rendering process
For details, see [Process Model (FA Model)](process-model-fa.md).| There are three types of processes:
1. Main process
2. ExtensionAbility process
3. Rendering process
For details, see [Process Model (Stage Model)](process-model-stage.md).| +| **Thread model**| 1. ArkTS engine instance creation
A process can run multiple application component instances, and each application component instance runs in an independent ArkTS engine instance.
2. Thread model
Each ArkTS engine instance is created on an independent thread (non-main thread). The main thread does not have an ArkTS engine instance.
3. Intra-process object sharing: not supported.
For details, see [Thread Model (FA Model)](thread-model-fa.md).| 1. ArkTS engine instance creation
A process can run multiple application component instances, and all application component instances share one ArkTS engine instance.
2. Thread model
The ArkTS engine instance is created on the main thread.
3. Intra-process object sharing: supported.
For details, see [Thread Model (Stage Model)](thread-model-stage.md).| | **Mission management model**| - A mission is created for each PageAbility component instance.
- Missions are stored persistently until the number of missions exceeds the maximum (customized based on the product configuration) or users delete missions.
- PageAbility components do not form a stack structure.
For details, see [Mission Management Scenarios](mission-management-overview.md).| - A mission is created for each UIAbility component instance.
- Missions are stored persistently until the number of missions exceeds the maximum (customized based on the product configuration) or users delete missions.
- UIAbility components do not form a stack structure.
For details, see [Mission Management Scenarios](mission-management-overview.md).| | **Application configuration file**| The **config.json** file is used to describe the application, HAP, and application component information.
For details, see [Application Configuration File Overview (FA Model)](../quick-start/application-configuration-file-overview-fa.md).| The **app.json5** file is used to describe the application information, and the **module.json5** file is used to describe the HAP and application component information.
For details, see [Application Configuration File Overview (Stage Model)](../quick-start/application-configuration-file-overview-stage.md).| - diff --git a/en/application-dev/application-models/figures/fa-model-component.png b/en/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/en/application-dev/application-models/figures/stage-model-component.png b/en/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