Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
5e46bc8b
D
Docs
项目概览
OpenHarmony
/
Docs
大约 1 年 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
5e46bc8b
编写于
12月 06, 2022
作者:
H
HuangXW
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
组件启动规则,区分FA和Stage模型
Signed-off-by:
N
HuangXW
<
huangxinwei4@huawei.com
>
上级
e2b63e42
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
110 addition
and
27 deletion
+110
-27
zh-cn/application-dev/application-models/Readme-CN.md
zh-cn/application-dev/application-models/Readme-CN.md
+2
-1
zh-cn/application-dev/application-models/component-startup-rules-fa.md
...tion-dev/application-models/component-startup-rules-fa.md
+94
-0
zh-cn/application-dev/application-models/component-startup-rules.md
...ication-dev/application-models/component-startup-rules.md
+14
-26
zh-cn/application-dev/application-models/figures/component-startup-rules-across-device.png
...-models/figures/component-startup-rules-across-device.png
+0
-0
zh-cn/application-dev/application-models/figures/component-startup-rules-fa.png
...application-models/figures/component-startup-rules-fa.png
+0
-0
zh-cn/application-dev/application-models/figures/component-startup-rules.png
...ev/application-models/figures/component-startup-rules.png
+0
-0
未找到文件。
zh-cn/application-dev/application-models/Readme-CN.md
浏览文件 @
5e46bc8b
...
...
@@ -28,7 +28,7 @@
-
[
使用显式Want启动Ability
](
ability-startup-with-explicit-want.md
)
-
[
使用隐式Want打开网址
](
ability-startup-with-implicit-want.md
)
-
[
应用间使用Want分享数据
](
data-share-via-want.md
)
-
[
组件启动规则
](
component-startup-rules.md
)
-
[
组件启动规则
---Stage模型
](
component-startup-rules.md
)
-
应用组件跨设备交互(流转)
-
[
流转概述
](
inter-device-interaction-hop-overview.md
)
-
[
跨端迁移(仅对系统应用开放)
](
hop-cross-device-migration.md
)
...
...
@@ -84,6 +84,7 @@
-
[
服务卡片开发指导
](
widget-development-fa.md
)
-
[
FA模型的Context
](
application-context-fa.md
)
-
[
信息传递载体Want
](
want-fa.md
)
-
[
组件启动规则---FA模型
](
component-startup-rules-fa.md
)
-
进程间通信
-
[
进程模型
](
process-model-fa.md
)
-
[
公共事件
](
common-event-fa.md
)
...
...
zh-cn/application-dev/application-models/component-startup-rules-fa.md
0 → 100644
浏览文件 @
5e46bc8b
# 组件启动规则---FA模型
启动组件是指一切启动或连接应用组件的行为:
-
启动PageAbility或ServiceAbility,如使用startAbility()等相关接口。
-
连接ServiceAbility或DataAbility,如使用connectAbility()、acquireDataAbilityHelper()等相关接口。
在OpenHarmony中,为了保证用户具有更好的使用体验,对以下几种易影响用户体验与系统安全的行为做了限制:
-
后台应用任意弹框,如各种广告弹窗,影响用户使用。
-
后台应用相互唤醒,不合理的占用系统资源,导致系统功耗增加或系统卡顿。
-
前台应用任意跳转至其他应用,如随意跳转到其他应用的支付页面,存在安全风险。
鉴于此,OpenHarmony制订了一套组件启动规则,主要包括:
-
应用位于后台时,启动组件需鉴权。
-
跨应用启动visible为false的组件,需鉴权。
-
跨应用启动FA模型的ServiceAbility组件或DataAbility组件,对端应用需配置关联启动。
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 1. 组件启动管控自OpenHarmony v3.2 Release版本开始落地。
>
> 2. 与原本的启动规则不同,新的组件启动规则较为严格,开发者需熟知启动规则,避免业务功能异常。
## 相关概念说明
为方便开发者理解管控规则,此处对所涉及的相关概念进行解释。
-
**应用APL(Ability Privilege Level)**
,表示应用的权限申请优先级的定义,不同APL等级的应用所能申请的权限不同,APL分为3个等级:
-
操作系统核心能力APL="system_core" (APL = 3)
-
系统基础服务APL="system_basic" (APL = 2)
-
三方应用程序APL="normal" (APL = 1)
-
**注:三方应用默认都是APL="normal"**
-
**BACKGROUND校验**
-
对发起端应用进程的状态进行判断,若应用进程获焦或所属的PageAbility位于前台则判定为前台应用,否则为后台应用
-
若发起端为后台应用,则需校验START_ABILITIES_FROM_BACKGROUND权限
-
**VISIBLE校验**
-
只针对跨应用启动的场景
-
若目标组件visible配置为false,则需校验START_INVISIBLE_ABILITY权限
-
**关联启动(AssociateWakeUp)**
-
只有系统预置应用才允许配置AssociateWakeUp字段,其余应用AssociateWakeUp默认为
**false**
-
只针对跨应用场景
-
只针对目标组件为
**FA**
模型的
**ServiceAbility**
与
**DataAbility**
生效
-
目标应用的AssociateWakeUp为
**ture**
,其提供的ServiceAbility与DataAbility才允许被其他应用访问
-
**相关权限**
```
json
{
"name"
:
"ohos.permission.START_ABILITIES_FROM_BACKGROUND"
,
"grantMode"
:
"system_grant"
,
"availableLevel"
:
"system_basic"
,
//
APL等级至少为system_basic才可申请
"since"
:
9
,
"deprecated"
:
""
,
"provisionEnable"
:
true
,
//
支持ACL方式申请权限
"distributedSceneEnable"
:
false
}
,
{
"name"
:
"ohos.permission.START_INVISIBLE_ABILITY"
,
"grantMode"
:
"system_grant"
,
"availableLevel"
:
"system_core"
,
//
APL等级至少为system_core才可申请
"since"
:
9
,
"deprecated"
:
""
,
"provisionEnable"
:
true
,
//
支持ACL方式申请权限
"distributedSceneEnable"
:
false
}
```
## 组件启动管控
FA模型的同设备与跨设备管控规则一致,可分为如下两种场景:
-
启动PageAbility。
-
启动ServiceAbility或DataAbility。
![
startup-rule
](
figures/component-startup-rules-fa.png
)
zh-cn/application-dev/application-models/component-startup-rules.md
浏览文件 @
5e46bc8b
# 组件启动规则
# 组件启动规则
---Stage模型
启动组件是指一切启动或连接
Ability
的行为:
启动组件是指一切启动或连接
应用组件
的行为:
-
启动Ability,如使用startAbility()、startServiceExtensionAbility()、startAbilityByCall()等相关接口。
-
启动
UIAbility或Extension
Ability,如使用startAbility()、startServiceExtensionAbility()、startAbilityByCall()等相关接口。
-
连接
Ability,如使用connectAbility()、connectServiceExtensionAbility()、acquireDataAbilityHelper
()、createDataShareHelper()等相关接口。
-
连接
ExtensionAbility,如使用connectServiceExtensionAbility
()、createDataShareHelper()等相关接口。
在OpenHarmony中,为了保证用户具有更好的使用体验,对以下几种易影响用户体验与系统安全的行为做了限制:
...
...
@@ -16,7 +16,7 @@
-
后台应用相互唤醒,不合理的占用系统资源,导致系统功耗增加或系统卡顿。
-
前台应用任意跳转至其他应用,如随意跳转到其他应用的支付
Ability
,存在安全风险。
-
前台应用任意跳转至其他应用,如随意跳转到其他应用的支付
页面
,存在安全风险。
鉴于此,OpenHarmony制订了一套组件启动规则,主要包括:
...
...
@@ -26,8 +26,6 @@
-
跨应用启动visible为false的组件,需鉴权。
-
跨应用启动FA模型的ServiceAbility组件或DataAbility组件,对端应用需配置关联启动。
-
使用startAbilityByCall接口,需鉴权(使用方式参考:
[
Call调用开发指南
](
hop-multi-device-collaboration.md#通过跨设备call调用实现多端协同
)
)
...
...
@@ -48,7 +46,7 @@
-
**注:三方应用默认都是APL="normal"**
-
**BACKGROUND校验**
-
对发起端应用进程的状态进行判断,若应用进程获焦或所属的Ability位于前台则判定为前台应用,否则为后台应用
-
对发起端应用进程的状态进行判断,若应用进程获焦或所属的
UI
Ability位于前台则判定为前台应用,否则为后台应用
-
若发起端为后台应用,则需校验START_ABILITIES_FROM_BACKGROUND权限
-
**VISIBLE校验**
...
...
@@ -59,12 +57,6 @@
-
只针对startAbilityByCall接口
-
需校验ABILITY_BACKGROUND_COMMUNICATION权限
-
**关联启动(AssociateWakeUp)**
-
只有系统预置应用才允许配置AssociateWakeUp字段,其余应用AssociateWakeUp默认为
**false**
-
只针对跨应用场景
-
只针对目标组件为
**FA**
模型的
**ServiceAbility**
与
**DataAbility**
生效
-
目标应用的AssociateWakeUp为
**ture**
,其提供的ServiceAbility与DataAbility才允许被其他应用访问
-
**相关权限**
```
json
...
...
@@ -100,23 +92,19 @@
## 同设备组件启动管控
不同场景下的管控规则不同,可分为如下
三
种场景:
-
启动
一般组件:(FA模型)PageAbility,(Stage模型)
UIAbility、ServiceExtensionAbility、DataShareExtensionAbility。
不同场景下的管控规则不同,可分为如下
两
种场景:
-
启动
或连接组件:
UIAbility、ServiceExtensionAbility、DataShareExtensionAbility。
-
启动FA模型的ServiceAbility或Data
Ability。
-
通过startAbilityByCall接口启动UI
Ability。
-
通过startAbilityByCall接口启动(Stage模型)UIAbility。
![
startup-rule
](
figures/startup-rule.png
)
![
startup-rule
](
figures/component-startup-rules.png
)
## 分布式跨设备组件启动管控
不同场景下的管控规则不同,可分为如下三种场景:
-
启动一般组件:(FA模型)PageAbility,(Stage模型)UIAbility、ServiceExtensionAbility。
-
启动FA模型的ServiceAbility。
不同场景下的管控规则不同,可分为如下两种场景:
-
启动或连接组件:UIAbility、ServiceExtensionAbility、DataShareExtensionAbility。
-
通过startAbilityByCall接口启动
(Stage模型)
UIAbility。
-
通过startAbilityByCall接口启动UIAbility。
![
component-startup-rules
](
figures/component-startup-rules
.jp
g
)
![
component-startup-rules
](
figures/component-startup-rules
-across-device.pn
g
)
zh-cn/application-dev/application-models/figures/component-startup-rules-across-device.png
0 → 100644
浏览文件 @
5e46bc8b
44.6 KB
zh-cn/application-dev/application-models/figures/component-startup-rules-fa.png
0 → 100644
浏览文件 @
5e46bc8b
55.8 KB
zh-cn/application-dev/application-models/figures/component-startup-rules.png
0 → 100644
浏览文件 @
5e46bc8b
48.8 KB
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录