diff --git a/zh-cn/application-dev/quick-start/Readme-CN.md b/zh-cn/application-dev/quick-start/Readme-CN.md
index 34d3bb66aa5367e975ea54ff28d803b54953f79e..ef1c7b868f3a4be8ee86d36c2c3109f0011a314b 100755
--- a/zh-cn/application-dev/quick-start/Readme-CN.md
+++ b/zh-cn/application-dev/quick-start/Readme-CN.md
@@ -4,7 +4,7 @@
- [开发准备](start-overview.md)
- [使用ArkTS语言开发(Stage模型)](start-with-ets-stage.md)
- [使用ArkTS语言开发(FA模型)](start-with-ets-fa.md)
- - [使用JS语言开发(FA模型)](start-with-js-fa.md)
+ - [使用JS语言开发(FA模型)](start-with-js-fa.md)
- 开发基础知识
- 应用程序包基础知识
- [应用程序包概述](application-package-overview.md)
@@ -25,6 +25,8 @@
- HSP
- [应用内HSP开发指导](in-app-hsp.md)
- [应用间HSP开发指导(仅对系统应用开放)](cross-app-hsp.md)
+ - 原子化服务
+ - [原子化服务开发指导](atomicService.md)
- 应用程序包快速修复
- [快速修复概述](quickfix-principles.md)
- [快速修复调试指导](quickfix-debug.md)
diff --git a/zh-cn/application-dev/quick-start/app-configuration-file.md b/zh-cn/application-dev/quick-start/app-configuration-file.md
index a890fd96269336f5bd3e8b52fa3c1f2e9640bf14..12c2d3e8888a81c4b0096cdcb30c25a770449f67 100644
--- a/zh-cn/application-dev/quick-start/app-configuration-file.md
+++ b/zh-cn/application-dev/quick-start/app-configuration-file.md
@@ -33,6 +33,7 @@ app.json5配置文件包含以下标签。
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| -------- | -------- | -------- | -------- |
| bundleName | 标识应用的Bundle名称,用于标识应用的唯一性。该标签不可缺省。标签的值命名规则 :
- 字符串以字母、数字、下划线和符号“.”组成。
- 以字母开头。
- 最小长度7个字节,最大长度127个字节。
推荐采用反域名形式命名(如com.example.demo,建议第一级为域名后缀com,第二级为厂商/个人名,第三级为应用名,也可以多级)。
其中,随系统源码编译的应用建议命名为“com.ohos.demo”形式, ohos标识OpenHarmony系统应用。 | 字符串 | 该标签不可缺省。 |
+| bundleType| 标识应用的Bundle类型,用于区分应用或者原子化服务。该标签可选值为app和atomicService :
- app:当前Bundle为普通应用。
- atomicService:当前Bundle为原子化服务。| 字符串| 该标签可以缺省,缺省为app。 |
| debug | 标识应用是否可调试,该标签由IDE编译构建时生成。
- true:可调试。
- false:不可调式。 | 布尔值 | 该标签可以缺省,缺省为false。 |
| icon | 标识[应用的图标](../application-models/application-component-configuration-stage.md),标签值为图标资源文件的索引。 | 字符串 | 该标签不可缺省。 |
| label | 标识[应用的名称](../application-models/application-component-configuration-stage.md),标签值为字符串资源的索引。 | 字符串 | 该标签不可缺省。 |
diff --git a/zh-cn/application-dev/quick-start/atomicService.md b/zh-cn/application-dev/quick-start/atomicService.md
new file mode 100644
index 0000000000000000000000000000000000000000..d99306b2a37028f0c1e3c27269f17c614cd3df36
--- /dev/null
+++ b/zh-cn/application-dev/quick-start/atomicService.md
@@ -0,0 +1,218 @@
+# 原子化服务
+
+## 原子化服务分包预加载
+
+### 使用分包
+
+为了加快首次启动原子化服务时的速度,可以采用分包策略,原子化服务的代码包可以被划分为几个:一个是类型为entry的模块,包含原子化服务启动时会打开的页面代码和相关资源;其余是“分包”,包含其余的代码和资源。这样,启动原子化服务时,只需下载和安装entry模块,即可立刻启动原子化服务,大大降低原子化服务下载的时间。
+
+#### 配置方法
+
+原子化服务分包可以在`DevEco Studio`中创建,我们以创建一个原子化服务为例。基本的工程目录结构大致如下:
+
+```
+├── AppScope
+| ├── resources
+| └── app.json5
+├── entry
+| └── src/main
+| ├── ets
+| ├── resources
+| └── module.json5
+├── feature
+| └── src/main
+| ├── ets
+| ├── resources
+| └── module.json5
+├── library
+| └── src/main
+| ├── ets
+| ├── resources
+| └── module.json5
+├── node_modules
+```
+
+注意,开发者需要在[app.json5](app-configuration-file.md)中`bundleType`字段指定为`atomicService`,标识当前应用是原子化服务。`app.json5`(路径为:`AppScope/app.json5`)的内容为:
+
+```json
+{
+ "app": {
+ "bundleName": "com.example.hmservice",
+ "bundleType":"atomicService",
+ "vendor": "example",
+ "versionCode": 1000000,
+ "versionName": "1.0.0",
+ "icon": "$media:app_icon",
+ "label": "$string:app_name",
+ "distributedNotificationEnabled": true,
+ "targetAPIVersion": 9
+ }
+}
+```
+
+具体分包攻略,详细可参考[多hap开发](multi-hap-objective.md)。
+
+#### 限制
+
+1. 原子化服务中每个模块对应的配置文件[module.json5](module-configuration-file.md)中`installationFree`字段必须为`true`。
+
+2. 打包原子化服务时,需遵循以下大小校验规则:
+
+- 原子化服务中,所有包的大小总和不能超过10M。
+
+- 单个包加上其依赖的所有[共享包](in-app-hsp.md),大小不能超过2M。
+
+
+### 使用预加载
+
+开发者可以通过配置,在原子化服务进入某个模块时,由系统自动预下载可能需要的模块,从而提升进入后续模块的速度。
+
+原子化服务预加载目前只支持通过配置方式使用,暂不支持通过调用API使用。
+
+#### 配置方法
+
+原子化服务预加载行为在点击进入某个模块时,第一帧绘制结束之后触发,可以通过在相应模块的[module.json5](module-configuration-file.md)文件中配置`atomicService`标签下的`preloads`字段来控制,以下为entry模块的`module.json5`(路径为:`entry/src/main/module.json5`)文件内容:
+
+```json
+{
+ "module": {
+ "name": "entry",
+ "type": "entry",
+ "srcEntrance": "./ets/Application/MyAbilityStage.ts",
+ "description": "$string:entry_desc",
+ "mainElement": "MainAbility",
+ "deviceTypes": [
+ "default",
+ "tablet"
+ ],
+ "deliveryWithInstall": true,
+ "installationFree": true,
+ "pages": "$profile:main_pages",
+ "atomicService": {
+ "preloads": [
+ {
+ "moduleName": "feature"
+ }
+ ]
+ },
+ "abilities": [
+ {
+ "name": "MainAbility",
+ "srcEntrance": "./ets/MainAbility/MainAbility.ts",
+ "description": "$string:MainAbility_desc",
+ "icon": "$media:icon",
+ "label": "$string:MainAbility_label",
+ "startWindowIcon": "$media:icon",
+ "startWindowBackground": "$color:white",
+ "visible": true,
+ "skills": [
+ {
+ "entities": [
+ "entity.system.home"
+ ],
+ "actions": [
+ "action.system.home"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+}
+```
+
+在完成entry模块的第一帧绘制结束后,会自动执行预加载去下载和安装模块名为feature的模块。
+
+#### 限制
+
+preloads列表配置的moduleName对应的[moduleType(模块类型)](../reference/apis/js-apis-bundleManager.md#moduletype)不能为entry。
+
+## 原子化服务中使用动态共享包
+
+[Harmony动态共享包](shared-guide.md)(Harmony Shared Package),简称HSP,其可以包含其他模块公用的代码、C++库、资源和配置文件等。
+在原子化服务中使用HSP,可以参考[应用内HSP开发指导](in-app-hsp.md)。
+
+#### 配置方法
+
+假设工程目录结构如下:
+```
+├── AppScope
+| ├── resources
+| └── app.json5
+├── entry
+| └── src/main
+| ├── ets
+| ├── entryAbility
+| └── pages
+| └── Index.ets
+| ├── resources
+| └── module.json5
+├── feature
+| └── src/main
+| ├── ets
+| ├── resources
+| └── module.json5
+├── library
+| └── src/main
+| ├── ets
+| └── pages
+| └── menu.ets
+| ├── resources
+| └── module.json5
+├── node_modules
+```
+
+若开发者想在entry模块中,添加一个按钮跳转至library模块中的menu页面(路径为:`library/src/main/ets/pages/menu.ets`),那么可以在使用方的代码(entry模块下的Index.ets,路径为:`entry/src/main/ets/MainAbility/Index.ets`)里这样使用:
+
+```ts
+import router from '@ohos.router';
+
+@Entry
+@Component
+struct Index {
+ @State message: string = 'Hello World'
+
+ build() {
+ Row() {
+ Column() {
+ Text(this.message)
+ .fontSize(50)
+ .fontWeight(FontWeight.Bold)
+ // 添加按钮,以响应用户点击
+ Button() {
+ Text('click to menu')
+ .fontSize(30)
+ .fontWeight(FontWeight.Bold)
+ }
+ .type(ButtonType.Capsule)
+ .margin({
+ top: 20
+ })
+ .backgroundColor('#0D9FFB')
+ .width('40%')
+ .height('5%')
+ // 绑定点击事件
+ .onClick(() => {
+ router.pushUrl({
+ url: '@bundle:com.example.hmservice/library/ets/pages/menu'
+ }).then(() => {
+ console.log("push page success");
+ }).catch(err => {
+ console.error(`pushUrl failed, code is ${err.code}, message is ${err.message}`);
+ })
+ }
+ .width('100%')
+ }
+ .height('100%')
+ }
+}
+```
+
+其中`router.pushUrl`方法的入参中`url`的内容为:
+```ets
+'@bundle:com.example.hmservice/library/ets/pages/menu'
+```
+`url`内容的模板为:
+```ets
+'@bundle:包名(bundleName)/模块名(moduleName)/路径/页面所在的文件名(不加.ets后缀)'
+```
\ No newline at end of file
diff --git a/zh-cn/application-dev/quick-start/module-configuration-file.md b/zh-cn/application-dev/quick-start/module-configuration-file.md
index dbd64ee433a13647d1cf022a1c0c3984fd6afed3..0af5377e38c575f14d9231efb44a443cb3a4b633 100644
--- a/zh-cn/application-dev/quick-start/module-configuration-file.md
+++ b/zh-cn/application-dev/quick-start/module-configuration-file.md
@@ -87,6 +87,8 @@ module.json5配置文件包含以下标签。
| [extensionAbilities](#extensionabilities标签) | 标识当前Module中ExtensionAbility的配置信息,标签值为数组类型,只对当前ExtensionAbility生效。 | 对象 | 该标签可缺省,缺省值为空。 |
| [requestPermissions](#requestpermissions标签) | 标识当前应用运行时需向系统申请的权限集合。 | 对象 | 该标签可缺省,缺省值为空。 |
| [testRunner](#testrunner标签) | 标识当前Module用于支持对测试框架的配置。 | 对象 | 该标签可缺省,缺省值为空。 |
+| [atomicService](#atomicservice标签)| 标识当前应用是原子化服务时,有关原子化服务的相关配置。| 对象 | 该标签可缺省,缺省值为空。 |
+| [dependencies](#dependencies标签)| 标识当前模块运行时依赖的共享库列表。| 对象数组 | 该标签可缺省,缺省值为空。 |
## deviceTypes标签
@@ -165,7 +167,7 @@ deviceTypes示例:
"metadata": [{
"name": "module_metadata",
"value": "a test demo for module metadata",
- "resource": "$profile:shortcuts_config",
+ "resource": "$profile:shortcuts_config"
}],
"abilities": [{
@@ -226,7 +228,7 @@ OpenHarmony系统对无图标应用严格管控。如果HAP中没有配置启动
}]
}],
...
-
+
}
}
```
@@ -457,7 +459,7 @@ extensionAbilities示例:
"icon": "$media:icon",
"label" : "$string:extension_name",
"description": "$string:form_description",
- "type": "form",
+ "type": "form",
"permissions": ["ohos.abilitydemo.permission.PROVIDER"],
"readPermission": "",
"writePermission": "",
@@ -471,7 +473,7 @@ extensionAbilities示例:
"metadata": [
{
"name": "ohos.extension.form",
- "resource": "$profile:form_config",
+ "resource": "$profile:form_config",
}
]
}
@@ -528,7 +530,7 @@ metadata中指定shortcut信息,其中:
- name:指定shortcuts的名称。使用ohos.ability.shortcuts作为shortcuts信息的标识。
- resource:指定shortcuts信息的资源位置。
-
+
| 属性 | 含义 | 类型 | 默认值 |
| -------- | -------- | -------- | -------- |
| shortcutId | 标识快捷方式的ID。字符串的最大长度为63字节。 | 字符串 | 该标签不可缺省。 |
@@ -538,7 +540,7 @@ metadata中指定shortcut信息,其中:
1. 在/resource/base/profile/目录下配置shortcuts_config.json配置文件。
-
+
```json
{
"shortcuts": [
@@ -558,7 +560,7 @@ metadata中指定shortcut信息,其中:
```
2. 在module.json5配置文件的abilities标签中,针对需要添加快捷方式的UIAbility进行配置metadata标签,使shortcut配置文件对该UIAbility生效。
-
+
```json
{
"module": {
@@ -714,3 +716,80 @@ testRunner标签示例:
}
}
```
+
+## atomicService标签
+
+此标签用于支持对原子化服务的配置。此标签仅在app.json中bundleType指定为atomicService时使能。
+
+**表14** **atomicService标签说明**
+
+| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
+| -------- | -------- | -------- | -------- |
+| preloads | 标识原子化服务中预加载列表 | 对象数组 | 可缺省,缺省值为空。 |
+
+atomicService标签示例:
+
+
+```json
+{
+ "module": {
+ "atomicService": {
+ "preloads":[
+ {
+ "moduleName":"feature"
+ }
+ ]
+ }
+ }
+}
+```
+
+## preloads标签
+
+此标签标识原子化服务中预加载列表。
+
+**表14** **preloads标签说明**
+
+| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
+| -------- | -------- | -------- | -------- |
+| moduleName | 标识原子化服务中,当前模块被加载时,需预加载的模块名 | 字符串 | 不可缺省。 |
+
+preloads标签示例:
+
+```json
+{
+ "module": {
+ "atomicService": {
+ "preloads":[
+ {
+ "moduleName":"feature"
+ }
+ ]
+ }
+ }
+}
+```
+
+## dependencies标签
+
+此标签标识模块运行时依赖的共享库列表。
+
+**表14** **dependencies标签说明**
+
+| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
+| -------- | -------- | -------- | -------- |
+| moduleName | 标识当前模块依赖的共享库模块名 | 字符串 | 不可缺省。 |
+
+dependencies标签示例:
+
+```json
+{
+ "module": {
+ "dependencies": [
+ {
+ "moduleName": "library"
+ }
+ ]
+ }
+}
+```
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/apis/js-apis-bundleManager-applicationInfo.md b/zh-cn/application-dev/reference/apis/js-apis-bundleManager-applicationInfo.md
index 9ac0871230226db8437ef0c34a495b1d0cac96a2..13b7c2e15489346fc2b37edbde593dce3260d6e5 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-bundleManager-applicationInfo.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-bundleManager-applicationInfo.md
@@ -30,4 +30,5 @@
| descriptionResource | [Resource](js-apis-resource-manager.md#resource9) | 是 | 否 | 应用程序的描述资源信息,通过ApplicationInfo 获取的resource 包含了该资源的信息的bundleName、moduleName 和 id,可以调用全球化的接口[@ohos.resourceManager.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.resourceManager.d.ts)中的getMediaContent来获取详细的资源数据信息。|
| appDistributionType | string | 是 | 否 | 应用程序签名证书的分发类型,分为:app_gallery、enterprise、os_integration和crowdtesting。 |
| appProvisionType | string | 是 | 否 | 应用程序签名证书文件的类型,分为debug和release两种类型。 |
-| systemApp | boolean | 是 | 否 | 标识应用是否为系统应用。 |
\ No newline at end of file
+| systemApp | boolean | 是 | 否 | 标识应用是否为系统应用。 |
+| bundleType |[BundleType](js-apis-bundleManager.md#bundletype) | 是 | 否 | 标识包的类型,取值为APP(普通应用)或者ATOMIC_SERVICE(原子化服务)。 |
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/apis/js-apis-bundleManager-hapModuleInfo.md b/zh-cn/application-dev/reference/apis/js-apis-bundleManager-hapModuleInfo.md
index 3496e020162075029fec44755921de0c08229412..a875c3f90429166aa42f9c4f4d3b4e86d22e2164 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-bundleManager-hapModuleInfo.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-bundleManager-hapModuleInfo.md
@@ -25,3 +25,26 @@ HAP信息,系统应用可以通过[bundleManager.getBundleInfo](js-apis-bundle
| deviceTypes | Array\ | 是 | 否 | 可以运行模块的设备类型。 |
| installationFree | boolean | 是 | 否 | 模块是否支持免安装。 |
| hashValue | string | 是 | 否 | 模块的Hash值。 |
+| moduleType | [ModuleType](js-apis-bundleManager.md#moduletype) | 是 | 否 | 标识当前模块的类型。 |
+| preloads | Array\<[PreloadItem](#preloaditem)> | 是 | 否 | 原子化服务中模块的预加载列表。|
+| dependencies | Array\<[Dependency](#dependency)> | 是 | 否 | 模块运行依赖的动态共享库列表。 |
+
+## PreloadItem
+
+描述原子化服务中模块的预加载模块信息。
+
+ **系统能力:** 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework.Core。
+
+| 名称 | 类型 | 可读 | 可写 | 说明 |
+| --------- | -------------- | ---- | ---- | --------------------------- |
+|moduleName | string | 是 | 否 | 模块运行时,由系统自动执行预加载的模块名称。|
+
+## Dependency
+
+描述模块所依赖的动态共享库信息。
+
+ **系统能力:** 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework.Core。
+
+| 名称 | 类型 | 可读 | 可写 | 说明 |
+| --------- | -------------- | ---- | ---- | --------------------------- |
+|moduleName | string | 是 | 否 | 依赖共享库的模块名称。 |
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/apis/js-apis-bundleManager.md b/zh-cn/application-dev/reference/apis/js-apis-bundleManager.md
index fcdb34dd85b3477a2aaa70d8cc58bdc27b890207..8cb9c8b9450228b14605cb7526d166c7b1ebae67 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-bundleManager.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-bundleManager.md
@@ -186,6 +186,39 @@ Ability组件信息标志,指示需要获取的Ability组件信息的内容。
| AUTO_ROTATION_PORTRAIT_RESTRICTED |11|表示受开关控制的自动竖向旋转模式。|
| LOCKED |12|表示锁定模式。|
+### CompatiblePolicy
+
+标识共享库的版本兼容类型。
+
+ **系统能力:** 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework.Core
+
+| 名称 | 值 | 说明 |
+| ---------------------- | ---- | -------------------------------- |
+| BACKWARD_COMPATIBILITY | 1 | 该字段表明共享库是向后兼容类型。 |
+
+### ModuleType
+
+标识模块类型。
+
+ **系统能力:** 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework.Core
+
+| 名称 | 值 | 说明 |
+| ------- | ---- | -------------------- |
+| ENTRY | 1 | 应用的主模块。 |
+| FEATURE | 2 | 应用的动态特性模块。 |
+| SHARED | 3 | 应用的动态共享库模块。 |
+
+### BundleType
+
+标识应用的类型。
+
+ **系统能力:** 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework.Core
+
+| 名称 | 值 | 说明 |
+| -------------- | ---- | --------------- |
+| APP | 0 | 该Bundle是普通应用程序。 |
+| ATOMIC_SERVICE | 1 | 该Bundle是原子化服务。 |
+
## 接口
### bundleManager.getBundleInfoForSelf
@@ -501,7 +534,7 @@ getApplicationInfo(bundleName: string, appFlags: [number](#applicationflag), use
| 17700004 | The specified user ID is not found. |
| 17700026 | The specified bundle is disabled. |
-**示例:**
+**示例:**
```ts
import bundleManager from '@ohos.bundle.bundleManager';
@@ -3036,46 +3069,3 @@ try {
}
```
-## CompatiblePolicy
-
-标识共享库的版本兼容类型。
-
- **系统能力:** 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework.Core
-
-| 名称 | 值 | 说明 |
-| ---------------------- | ---- | -------------------------------- |
-| BACKWARD_COMPATIBILITY | 1 | 该字段表明共享库是向后兼容类型。 |
-
-## ModuleType
-
-标识模块类型。
-
- **系统能力:** 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework.Core
-
-| 名称 | 值 | 说明 |
-| ------- | ---- | -------------------- |
-| ENTRY | 1 | 应用的主模块。 |
-| FEATURE | 2 | 应用的动态特性模块。 |
-| SHARED | 3 | 应用的动态共享库模块。 |
-
-## BundleType
-
-标识应用的类型。
-
- **系统能力:** 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework.Core
-
-| 名称 | 值 | 说明 |
-| -------------- | ---- | --------------- |
-| APP | 0 | 该Bundle是普通应用程序。 |
-| ATOMIC_SERVICE | 1 | 该Bundle是元服务。 |
-
-## AtomicServiceModuleType
-
-标识在元服务分包时的分包类型。
-
- **系统能力:** 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework.Core
-
-| 名称 | 值 | 说明 |
-| ------ | ---- | --------------------------- |
-| NORMAL | 0 | 元服务中的页面包。 |
-| MAIN | 1 | 元服务中的落地页包. |