当前位置: 首页 > news >正文

鸿蒙开发:【组件启动规则(FA模型)】

组件启动规则(FA模型)

启动组件是指一切启动或连接应用组件的行为:

  • 启动PageAbility、ServiceAbility,如使用startAbility()等相关接口。
  • 连接ServiceAbility、DataAbility,如使用connectAbility()、acquireDataAbilityHelper()等相关接口。

为了保证用户具有更好的使用体验,对以下几种易影响用户体验与系统安全的行为做了限制:

  • 后台应用任意弹框,如各种广告弹窗,影响用户使用。
  • 后台应用相互唤醒,不合理的占用系统资源,导致系统功耗增加或系统卡顿。
  • 前台应用任意跳转至其他应用,如随意跳转到其他应用的支付页面,存在安全风险。

鉴于此,系统制订了一套组件启动规则,主要包括:

  • 跨应用启动组件,需校验目标组件Visible

    • 只针对跨应用场景。
    • 若目标组件visible字段配置为false,则需校验ohos.permission.START_INVISIBLE_ABILITY权限(该权限仅系统应用可申请)。
    • [组件visible配置参考]。
  • 位于后台的应用,启动组件需校验BACKGROUND权限

说明:  基于API 8或更早版本SDK开发的应用在启动ServiceAbility组件或DataAbility组件时不受此限制的约束。

  • 应用前后台判断标准:若应用进程获焦或所属的UIAbility位于前台则判定为前台应用,否则为后台应用。

  • 需校验ohos.permission.START_ABILITIES_FROM_BACKGROUND权限(该权限仅系统应用可申请)。

  • 跨应用启动FA模型的ServiceAbility组件或DataAbility组件,对端应用需配置关联启动

    • 只针对跨应用场景。
    • 只针对目标组件为ServiceAbility与DataAbility生效。
    • 目标应用的AssociateWakeUp为true,其提供的ServiceAbility与DataAbility才允许被其他应用访问。
    • 只有系统预置应用才允许配置AssociateWakeUp字段,其余应用AssociateWakeUp默认为false

说明:

  1. 组件启动管控自v3.2 Release版本开始落地。
  2. 与原本的启动规则不同,新的组件启动规则较为严格,开发者需熟知启动规则,避免业务功能异常。

启动组件的具体校验流程见下文。

同设备组件启动规则

设备内启动组件,不同场景下的规则不同,可分为如下两种场景:

  • 启动PageAbility。
  • 启动ServiceAbility或DataAbility。

startup-rule

分布式跨设备组件启动规则

跨设备启动组件,不同场景下的规则不同,可分为如下两种场景:

  • 启动PageAbility。
  • 启动ServiceAbility。

component-startup-rules

相关文章:

鸿蒙开发:【组件启动规则(FA模型)】

组件启动规则(FA模型) 启动组件是指一切启动或连接应用组件的行为: 启动PageAbility、ServiceAbility,如使用startAbility()等相关接口。连接ServiceAbility、DataAbility,如使用connectAbility()、acquireDataAbili…...

网络编程5----初识http

1.1 请求和响应的格式 http协议和前边学过的传输层、网络层协议不同,它是“一问一答”形式的,所以要分为请求和响应两部分看待,同时,请求和响应的格式是不同的,我们来具体介绍一下。 1.1.1 请求 在介绍请求之前&…...

“用友审批+民生付款”,YonSuite让企业发薪更准时

随着现代企业经营模式的不断创新和市场竞争的加剧,企业薪资管理和发放的效率、准确性和及时性已成为企业管理的重要一环。然而,在实际操作中,许多企业面临着薪资管理复杂、发放流程繁琐、数据不准确等难点和痛点。为了解决这些问题&#xff0…...

EtherCAT扫盲,都是知识点

1. 什么是EtherCAT EtherCAT,全称Ethernet for Control Automation Technology,字面意思就是用于控制自动化技术的以太网。它是一种基于以太网的实时工业通信协议,简单说,就是让机器们通过网线互相聊天的高级方式。 EtherCAT 是最…...

开发中遇到的错误 - @SpringBootTest 注解爆红

我在使用 SpringBootTest 注解的时候爆红了&#xff0c;ait 回车也导不了包&#xff0c;后面发现是因为没有加依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId>…...

数据仓库的实际应用示例-广告投放平台为例

数据仓库的数据分层通常包括以下几层&#xff1a; ODS层&#xff1a;存放原始数据&#xff0c;如日志数据和结构化数据。DWD层&#xff1a;进行数据清洗、脱敏、维度退化和格式转换。DWS层&#xff1a;用于宽表聚合值和主题加工。ADS层&#xff1a;面向业务定制的应用数据层。…...

Beyond VL了解学习

Beyond VL&#xff1a;多模态处理的前沿 在今天的数据驱动时代&#xff0c;我们经常需要处理和分析多种类型的数据&#xff0c;例如文本、图像、视频和音频。Beyond VL 是一个先进的多模态模型&#xff0c;专为处理这些多种数据而设计。它能够同时处理多种模态的数据&#xff…...

AI音乐革命:创意产业的新篇章

随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;在各个领域的应用越来越广泛&#xff0c;特别是在音乐产业中&#xff0c;AI音乐大模型的涌现&#xff0c;正在重新定义音乐创作的边界。最近一个月&#xff0c;随着多个音乐大模型的轮番上线&#xff0c;素人…...

python从入门到精通1:注释

在Python编程中&#xff0c;注释是一种非常重要的工具&#xff0c;它不仅可以帮助我们记录代码的目的、工作方式以及任何需要注意的地方&#xff0c;还可以使代码更具可读性。Python提供了两种主要的注释方式&#xff1a;单行注释和多行注释。下面我们将深入探讨这两种注释方式…...

CountDownLatch(应对并发问题的工具类)

CountDownLatch CountDownLatch允许一个或多个线程等待其他线程完成操作以后&#xff0c;再执行当前线程&#xff1b;比如我们在主线程需要开启2个其他线程&#xff0c;当其他的线程执行完毕以后我们再去执行主线程&#xff0c;针对这 个需求我们就可以使用CountDownLatch来进…...

HarmonyOS开发知识 :扩展修饰器,实现节流、防抖、权限申请

引言 防重复点击&#xff0c;利用装饰器面向切面&#xff08;AOP&#xff09;的特性结合闭包&#xff0c;实现节流、防抖和封装权限申请。 节流 节流是忽略操作&#xff0c;在触发事件时&#xff0c;立即执行目标操作&#xff0c;如果在指定的时间区间内再次触发了事件&…...

自然语言NLP的基础处理

NLP基本处理从句子的情感分析、实体与实体直接的关系&#xff0c;句子结构来分析 情感分析 1.句子的情感分析找出句子表达的是正面、负面还是中性的情感。 情感分析的影响因素&#xff1a; 词语顺序&#xff1a;词语的顺序可以影响句子的整体情感。例如&#xff0c;“我喜欢…...

带颜色的3D点云数据发布到ros1中(通过rviz显示)python、C++

ros中发布点云数据xyz以及带颜色的点云数据xyzrgb ros中发布点云数据xyz可以直接用python来做或者C(看个人偏好) ros中发布带颜色的点云数据xyzrgb环境1.新建ROS工作空间2.创建功能包 ros中发布点云数据xyz 可以直接用python来做或者C(看个人偏好) 在这里我们带有颜色的点云数…...

python学习—列表和元组

系列文章目录 python学习—合并TXT文本文件 python学习—统计嵌套文件夹内的文件数量并建立索引表格 python学习—查找指定目录下的指定类型文件 python学习—年会不能停&#xff0c;游戏抽签抽奖 python学习—循环语句-控制流 python学习—合并多个Excel工作簿表格文件 文章目…...

c++题目_水仙花数

水仙花数-普及-题目-ACGO题库 题目描述 求100-n中的水仙花数。一个数x&#xff0c;x的百位、十位、个位&#xff0c;分别用a、b、c来表示&#xff1b; 当a * a * a b * b * b c * c * c x时&#xff0c;x就被称为水仙花数。(n< 999) 输入格式 一行一个整数n 输出格式…...

使用 Iceberg、Tabular 和 MinIO 构建现代数据架构

现代数据环境需要一种新型的基础架构&#xff0c;即无缝集成结构化和非结构化数据、轻松扩展并支持高效的 AI/ML 工作负载的基础架构。这就是现代数据湖的用武之地&#xff0c;它为您的所有数据需求提供了一个中心枢纽。然而&#xff0c;构建和管理有效的数据湖可能很复杂。 这…...

jnp.linalg.norm

jnp.linalg.norm 是 JAX 中用于计算向量或矩阵的范数的函数。JAX 是一个用于高性能机器学习研究的 Python 库&#xff0c;它提供了与 NumPy 类似的 API&#xff0c;但支持自动微分和加速计算。jnp 是 JAX 的 NumPy 接口。 jnp.linalg.norm 的基本语法 jnp.linalg.norm(x, ord…...

20240621在飞凌的OK3588-C开发板的Buildroot系统中集成i2ctool工具

20240621在飞凌的OK3588-C开发板中打开i2ctool工具 2024/6/21 17:44 默认继承的i2c工具&#xff1a; rootrk3588-buildroot:/# rootrk3588-buildroot:/# i2c i2c-stub-from-dump i2cdump i2cset i2cdetect i2cget i2ctransfer rootrk3588-…...

ARM32开发--存储器介绍

知不足而奋进 望远山而前行 目录 文章目录 前言 存储器分类 RAM ROM EEPROM Flash 总结 前言 在现代计算机系统中&#xff0c;存储器扮演着至关重要的角色&#xff0c;不仅影响着数据的存取速度和稳定性&#xff0c;还直接关系到计算机系统的性能和应用场景的选择。存…...

Web服务器

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 当在浏览器输入URL后&#xff0c;浏览器会先请求DNS服务器&#xff0c;获得请求站点的 IP 地址&#xff08;即根据URL地址“www.mingrisoft.com”获取…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API&#xff0c;查询的是单条数据&#xff0c;比如根据主键ID查询用户信息&#xff0c;sql如下&#xff1a; select id, name, age from user where id #{id}API默认返回的数据格式是多条的&#xff0c;如下&#xff1a; {&qu…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战&#xff0c;克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发&#xff0c;后来由Pivotal Software Inc.&#xff08;现为VMware子公司&#xff09;接管。RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写。广泛应用于各种分布…...

探索Selenium:自动化测试的神奇钥匙

目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...

Kafka主题运维全指南:从基础配置到故障处理

#作者&#xff1a;张桐瑞 文章目录 主题日常管理1. 修改主题分区。2. 修改主题级别参数。3. 变更副本数。4. 修改主题限速。5.主题分区迁移。6. 常见主题错误处理常见错误1&#xff1a;主题删除失败。常见错误2&#xff1a;__consumer_offsets占用太多的磁盘。 主题日常管理 …...