提交 996b2cda 编写于 作者: zyjhandsome's avatar zyjhandsome

schema修改,module.json5配置文件中launchType字段的standard值修改为multiton。

Signed-off-by: zyjhandsome's avatarzyjhandsome <zyjhandsome@126.com>
上级 fabc1c80
......@@ -47,7 +47,7 @@ ability支持单实例和多实例两种启动模式。
| 启动模式 | 描述 |说明 |
| ----------- | ------- |---------------- |
| standard | 多实例 | 每次startAbility都会启动一个新的实例。 |
| multiton | 多实例 | 每次startAbility都会启动一个新的实例。 |
| singleton | 单实例 | 系统中只存在唯一一个实例,startAbility时,如果已存在,则复用系统中的唯一一个实例。 |
缺省情况下是singleton模式。
......
......@@ -53,7 +53,7 @@
- 配置应用启动类型
多实例应用在module.json5中将launchType字段配置为standard,目标端将会拉起一个新的应用,并恢复页面;单实例将该字段配置为singleton,如果目标端应用已经打开,迁移将会将已有页面栈清空,并根据迁移数据恢复页面。关于单实例与多实例的更多信息详见[ability开发指导](./stage-ability.md)启动模式。
多实例应用在module.json5中将launchType字段配置为multiton,目标端将会拉起一个新的应用,并恢复页面;单实例将该字段配置为singleton,如果目标端应用已经打开,迁移将会将已有页面栈清空,并根据迁移数据恢复页面。关于单实例与多实例的更多信息详见[ability开发指导](./stage-ability.md)启动模式。
多实例:
......@@ -62,7 +62,7 @@
"module": {
"abilities": [
{
"launchType": "standard"
"launchType": "multiton"
}
]
}
......
......@@ -12,7 +12,7 @@ Ability支持单实例、多实例和指定实例3种启动模式,在module.js
| 启动模式 | 描述 |说明 |
| ----------- | ------- |---------------- |
| standard | 标准模式 | 每次startAbility都会启动一个新的实例。 |
| multiton | 标准模式 | 每次startAbility都会启动一个新的实例。 |
| singleton | 单实例模式 | 系统中只存在唯一一个实例,startAbility时,如果已存在,则复用系统中的唯一一个实例。 |
| specified | 指定实例 | 运行时由Ability内部业务决定是否创建多实例。 |
......@@ -79,29 +79,29 @@ Ability功能如下(Ability类,具体的API详见[接口文档](../reference
onCreate(want, launchParam) {
console.log("MainAbility onCreate")
}
onDestroy() {
console.log("MainAbility onDestroy")
}
onWindowStageCreate(windowStage) {
console.log("MainAbility onWindowStageCreate")
windowStage.loadContent("pages/index").then(() => {
console.log("MainAbility load content succeed")
}).catch((error) => {
console.error("MainAbility load content failed with error: " + JSON.stringify(error))
})
}
onWindowStageDestroy() {
console.log("MainAbility onWindowStageDestroy")
}
onForeground() {
console.log("MainAbility onForeground")
}
onBackground() {
console.log("MainAbility onBackground")
}
......
......@@ -7,17 +7,17 @@
下面介绍了任务管理如何实现以下三种启动模式UIAbility组件的管理:
- singleton:单实例模式,应用在运行时只存在一个该UIAbility实例。
**图1** 任务与singleton模式
![mission-and-singleton](figures/mission-and-singleton.png)
**图1** 任务与singleton模式
![mission-and-singleton](figures/mission-and-singleton.png)
- standard:多实例模式,每次调用startAbility()方法,都会在应用进程中创建一个该Ability的实例。
- multiton:多实例模式,每次调用startAbility()方法,都会在应用进程中创建一个该Ability的实例。
**图2** 任务与standard模式
![mission-and-standard](figures/mission-and-standard.png)
**图2** 任务与multiton模式
![mission-and-multiton](figures/mission-and-standard.png)
- specified:指定实例模式,由[AbilityStage](abilitystage.md)的([onAcceptWant](../reference/apis/js-apis-app-ability-abilityStage.md#abilitystageonacceptwant))决定是否创建新的实例。
**图3** 任务与specified模式
**图3** 任务与specified模式
![mission-and-specified](figures/mission-and-specified.png)
......
......@@ -9,7 +9,7 @@
| 启动模式 | 描述 | 说明 |
| -------- | -------- | -------- |
| singleton | 单实例模式 | 每次调用startAbility方法时,如果应用进程中该类型的Ability实例已经存在,则复用已有的实例,系统中只存在唯一一个实例。表现为在最近任务列表中只有一个Ability实例。<br/>典型场景:当用户打开视频播放应用并观看视频,回到桌面后,再次打开视频播放应用,应用仍为回到桌面之前正在观看的视频。 |
| standard | 标准模式 | 缺省启动模式。每次调用startAbility方法时,都会在应用进程中创建一个新的Ability实例。表现为在最近任务列表中可以看到有多个该类型的Ability实例。<br/>典型场景:当用户打开文档应用,选择新建文档的时候,每次点击新建文档,都会创建一个新的文档任务,在最近任务列表中可以看到多个新建的文档任务。 |
| multiton | 标准模式 | 缺省启动模式。每次调用startAbility方法时,都会在应用进程中创建一个新的Ability实例。表现为在最近任务列表中可以看到有多个该类型的Ability实例。<br/>典型场景:当用户打开文档应用,选择新建文档的时候,每次点击新建文档,都会创建一个新的文档任务,在最近任务列表中可以看到多个新建的文档任务。 |
应用开发者可在config.json配置文件中通过“launchType”配置启动模式。示例如下:
......@@ -21,8 +21,8 @@
"abilities": [
{
// singleton: 单实例模式
// standard: 标准模式
"launchType": "standard",
// multiton: 标准模式
"launchType": "multiton",
// ...
}
]
......
......@@ -6,7 +6,7 @@ UIAbility的启动模式是指UIAbility实例在启动时的不同呈现状态
- [singleton(单实例模式)](#singleton启动模式)
- [standard(标准实例模式)](#standard启动模式)
- [multiton(标准实例模式)](#multiton启动模式)
- [specified(指定实例模式)](#specified启动模式)
......@@ -42,15 +42,15 @@ singleton启动模式为单实例模式,也是默认情况下的启动模式
```
## standard启动模式
## multiton启动模式
standard启动模式为标准实例模式,每次调用startAbility()方法时,都会在应用进程中创建一个新的该类型UIAbility实例。即在最近任务列表中可以看到有多个该类型的UIAbility实例。这种情况下可以将UIAbility配置为standard(标准实例模式)。
multiton启动模式为标准实例模式,每次调用startAbility()方法时,都会在应用进程中创建一个新的该类型UIAbility实例。即在最近任务列表中可以看到有多个该类型的UIAbility实例。这种情况下可以将UIAbility配置为multiton(标准实例模式)。
**图2** 标准实例模式演示效果
![standard-mode](figures/standard-mode.png)
![multiton-mode](figures/standard-mode.png)
standard启动模式的开发使用,在[module.json5配置文件](../quick-start/module-configuration-file.md)中的"launchType"字段配置为"standard"即可。
multiton启动模式的开发使用,在[module.json5配置文件](../quick-start/module-configuration-file.md)中的"launchType"字段配置为"multiton"即可。
```json
......@@ -59,7 +59,7 @@ standard启动模式的开发使用,在[module.json5配置文件](../quick-sta
// ...
"abilities": [
{
"launchType": "standard",
"launchType": "multiton",
// ...
}
]
......
......@@ -73,13 +73,13 @@
应用由一个或多个Ability组成,Ability支持单实例、多实例和指定实例3种[启动模式](../../application-models/uiability-launch-type.md),启动模式可以在[配置文件(module.json5)](../../quick-start/module-configuration-file.md)中通过launchType字段配置。启动模式对应Ability被启动时的行为,对启动模式的详细说明如下:
| 启动模式 | 描述 | 说明 |
| -------- | -------- | -------- |
| standard | 多实例 | 每次startAbility都会启动一个新的实例。 |
| singleton | 单实例 | 系统中最多只可以存在一个实例,startAbility时,如果系统中已存在相应的Ability实例,则复用该实例。 |
| specified | 指定实例 | 运行时由Ability内部业务决定是否创建多实例。 |
| 启动模式 | 描述 | 说明 |
| -------- | -------- | -------- |
| multiton | 多实例 | 每次startAbility都会启动一个新的实例。 |
| singleton | 单实例 | 系统中最多只可以存在一个实例,startAbility时,如果系统中已存在相应的Ability实例,则复用该实例。 |
| specified | 指定实例 | 运行时由Ability内部业务决定是否创建多实例。 |
默认设备屏幕尺寸较小,采用standard启动模式不仅无法给用户提供便利,反而可能消耗更多系统资源,故通常采用singleton启动模式。平板屏幕尺寸较大且可能支持自由窗口,对于文档编辑、网页浏览等场景,使用standard启动模式可以提升用户体验。
默认设备屏幕尺寸较小,采用multiton启动模式不仅无法给用户提供便利,反而可能消耗更多系统资源,故通常采用singleton启动模式。平板屏幕尺寸较大且可能支持自由窗口,对于文档编辑、网页浏览等场景,使用multiton启动模式可以提升用户体验。
本文中将默认设备和平板等归为同一泛类,推荐同一泛类的设备共用HAP包,同时本文也介绍了如何通过自适应布局能力和响应式布局能力开发出适配不同设备的页面。这里将补充介绍,如何实现Ability在不同设备上以不同的模式启动。
......
......@@ -85,7 +85,7 @@ config.json示例:
// $string:MainAbility_entry_label为资源索引
"label": "$string:MainAbility_entry_label",
"type": "page",
"launchType": "standard"
"launchType": "multiton"
}
],
"distro": {
......
......@@ -57,7 +57,7 @@ module示例:
"formsEnabled": false,
"label": "$string:MainAbility_label",
"type": "page",
"launchType": "standard"
"launchType": "multiton"
}
],
"distro": {
......@@ -263,7 +263,7 @@ OpenHarmony系统对无图标应用严格管控。如果HAP中没有配置入口
| icon | 标识Ability图标资源文件的索引。取值示例:$media:ability_icon。如果在该Ability的skills属性中,actions的取值包含&nbsp;"action.system.home",entities取值中包含"entity.system.home",则该Ability的icon将同时作为应用的icon。如果存在多个符合条件的Ability,则取位置靠前的Ability的icon作为应用的icon。<br/>说明:应用的"icon"和"label"是用户可感知配置项,需要区别于当前所有已有的应用"icon"或"label"(至少有一个不同)。 | 字符串 | 可缺省,缺省值为空。 |
| label | 标识Ability对用户显示的名称。取值可以是Ability名称,也可以是对该名称的资源索引,以支持多语言。如果在该Ability的skills属性中,actions的取值包含&nbsp;"action.system.home",entities取值中包含"entity.system.home",则该Ability的label将同时作为应用的label。如果存在多个符合条件的Ability,则取位置靠前的Ability的label作为应用的label。<br/>说明:&nbsp;应用的"icon"和"label"是用户可感知配置项,需要区别于当前所有已有的应用"icon"或"label"(至少有一个不同)。该标签为资源文件中定义的字符串的引用,或以"{}"包括的字符串。该标签最大长度为255个字节。 | 字符串 | 可缺省,缺省值为空。 |
| uri | 标识Ability的统一资源标识符。该标签最大长度为255个字节。 | 字符串 | 可缺省,对于data类型的Ability不可缺省。 |
| launchType | 标识Ability的启动模式,支持"standard"和"singleton"两种模式:<br/>standard:表示该Ability可以有多实例。该模式适用于大多数应用场景。<br/>singleton:表示该Ability在所有任务栈中仅可以有一个实例。例如,具有全局唯一性的呼叫来电界面即采用"singleton"模式。该标签仅适用于默认设备、平板、智慧屏、车机、智能穿戴。 | 字符串 | 可缺省,缺省值为"singleton"。 |
| launchType | 标识Ability的启动模式,支持"multiton"和"singleton"两种模式:<br/>multiton:表示该Ability可以有多实例。该模式适用于大多数应用场景。<br/>singleton:表示该Ability在所有任务栈中仅可以有一个实例。例如,具有全局唯一性的呼叫来电界面即采用"singleton"模式。该标签仅适用于默认设备、平板、智慧屏、车机、智能穿戴。 | 字符串 | 可缺省,缺省值为"singleton"。 |
| exported | 标识Ability是否可以被其他应用调用。<br/>true:可以被其他应用调用。<br/>false:不能被其他应用调用。 | 布尔类型 | 可缺省,缺省值为"false"。 |
| permissions | 标识其他应用的Ability调用此Ability时需要申请的权限集合,一个数组元素为一个权限名称。通常采用反向域名格式(最大255字节),取值为系统预定义的权限。 | 字符串数组 | 可缺省,缺省值为空。 |
|skills | 标识Ability能够接收的want的特征。 | 对象数组 | 可缺省,缺省值为空。 |
......@@ -308,7 +308,7 @@ abilities示例:
"icon": "$media:ic_launcher",
// $string:example 为字符串类资源
"label": "$string:example",
"launchType": "standard",
"launchType": "multiton",
"orientation": "unspecified",
"permissions": [],
"exported": true,
......@@ -338,7 +338,7 @@ abilities示例:
"description": "example play ability",
"icon": "$media:ic_launcher",
"label": "$string:example",
"launchType": "standard",
"launchType": "multiton",
"orientation": "unspecified",
"exported": false,
"skills": [
......
......@@ -683,7 +683,7 @@ ohos_js_unittest("GetAppInfoJsTest") {
"description": "$string:mainability_description",
"label": "MyApplication",
"type": "page",
"launchType": "standard"
"launchType": "multiton"
}
],
"js": [
......
......@@ -165,7 +165,7 @@
"name": "ServiceAbility",
"icon": "res/drawable/phone.png",
"label": "test app 2",
"launchType": "standard",
"launchType": "multiton",
"type": "service",
"exported": true
}
......
......@@ -119,7 +119,7 @@ subsystem # 子系统
{
// step 1:调用函数获取结果
int actual = Sub(4,0);
// Step 2:使用断言比较预期与实际结果
EXPECT_EQ(4, actual);
}
......@@ -132,7 +132,7 @@ subsystem # 子系统
2. 引用测试框架头文件和命名空间
```
#include <gtest/gtest.h>
using namespace testing::ext;
```
3. 添加被测试类的头文件
......@@ -148,22 +148,22 @@ subsystem # 子系统
void SetUp();
void TearDown();
};
void CalculatorSubTest::SetUpTestCase(void)
{
// input testsuit setup step,setup invoked before all testcases
}
void CalculatorSubTest::TearDownTestCase(void)
{
// input testsuit teardown step,teardown invoked after all testcases
}
void CalculatorSubTest::SetUp(void)
{
// input testcase setup step,setup invoked before each testcases
}
void CalculatorSubTest::TearDown(void)
{
// input testcase teardown step,teardown invoked after each testcases
......@@ -183,7 +183,7 @@ subsystem # 子系统
{
//step 1:调用函数获取结果
int actual = Sub(4,0);
//Step 2:使用断言比较预期与实际结果
EXPECT_EQ(4, actual);
}
......@@ -262,7 +262,7 @@ subsystem # 子系统
it("appInfoTest001", 0, function () {
//step 1:调用函数获取结果
var info = app.getInfo()
//Step 2:使用断言比较预期与实际结果
expect(info != null).assertEqual(true)
})
......@@ -276,7 +276,7 @@ subsystem # 子系统
2. 导入被测api和jsunit测试库
```
import app from '@system.app'
import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index'
```
3. 定义测试套(测试类)
......@@ -313,7 +313,7 @@ subsystem # 子系统
it("appInfoTest001", 0, function () {
//step 1:调用函数获取结果
var info = app.getInfo()
//Step 2:使用断言比较预期与实际结果
expect(info != null).assertEqual(true)
})
......@@ -415,7 +415,7 @@ subsystem # 子系统
> - ohos_securitytest:安全测试
> - ohos_reliabilitytest:可靠性测试
> - ohos_distributedtest:分布式测试
7. 对目标测试用例文件进行条件分组
```
......@@ -425,7 +425,7 @@ subsystem # 子系统
}
```
> **说明:** 进行条件分组的目的在于执行用例时可以选择性的执行某一种特定类型的用例。
- **JavaScript用例编译配置示例**
```
......@@ -530,7 +530,7 @@ subsystem # 子系统
"description": "$string:mainability_description",
"label": "MyApplication",
"type": "page",
"launchType": "standard"
"launchType": "multiton"
}
],
"js": [
......@@ -811,6 +811,5 @@ reports/latest
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册