鸿蒙系统——强大的分布式系统

鸿蒙相比较于传统安卓最最最主要的优势是微内核分布式操作系统,具有面向未来,跨设备无缝协作,数据共享的全场景体验。下面简单来感受一下鸿蒙系统的多端自由流转。

自由流转概述

场景介绍

随着全场景多设备的生活方式不断深入,用户拥有的设备越来越多,不同设备都能在适合的场景下提供良好的体验,例如手表可以提供及时的信息查看能力,电视可以带来沉浸的观影体验。但是,每个设备也有使用场景的局限,例如在电视上输入文本相对移动设备来说是非常糟糕的体验。当多个设备通过分布式操作系统能够相互感知、进而整合成一个超级终端时,设备与设备之间就可以取长补短、相互帮助,为用户提供更加自然流畅的分布式体验。

在HarmonyOS中,将跨多设备的分布式操作统称为流转;根据使用场景的不同,流转又分为跨端迁移和多端协同两种具体场景。

基本概念

  • 流转

    在HarmonyOS中泛指跨多设备的分布式操作。流转能力打破设备界限,多设备联动,使用户应用程序可分可合、可流转,实现如邮件跨设备编辑、多设备协同健身、多屏游戏等分布式业务。流转为开发者提供更广的使用场景和更新的产品视角,强化产品优势,实现体验升级。流转按照使用场景可分为跨端迁移多端协同

  • 跨端迁移

    在用户使用设备的过程中,当使用情境发生变化时(例如从室内走到户外或者周围有更合适的设备等),之前使用的设备可能已经不适合继续当前的任务,此时,用户可以选择新的设备来继续当前的任务,原设备可按需决定是否退出任务,这就是跨端迁移场景。

    常见的跨端迁移场景实例:在平板上播放的视频,迁移到智慧屏继续播放,从而获得更佳的观看体验;平板上的视频应用退出。

    在应用开发层面,跨端迁移指在A端运行的UIAbility迁移到B端上,完成迁移后,B端UIAbility继续任务,而A端UIAbility可按需决定是否退出。

  • 多端协同

    用户拥有的多个设备,可以作为一个整体,为用户提供比单设备更加高效、沉浸的体验,这就是多端协同场景。

    常见的多端协同场景实例:

    场景一:两台设备A和B打开备忘录同一篇笔记进行双端协同编辑,在设备A上可以使用本地图库中的图片资源插入编辑,设备B上进行文字内容编辑。

    场景二:设备A上正在和客户进行聊天,客户需要的资料在设备B上,可以通过聊天软件打开设备B上的文档应用选择到想要的资料回传到设备A上,然后通过聊天软件发送给客户。

    在应用开发层面,多端协同指多端上的不同UIAbility/ServiceExtensionAbility同时运行、或者交替运行实现完整的业务;或者多端上的相同UIAbility/ServiceExtensionAbility同时运行实现完整的业务。

1. 应用接续

1.1. 介绍

应用接续,指当用户在一个设备上操作某个应用时,可以在另一个设备的同一个应用中快速切换,并无缝衔接上一个设备的应用体验。

比如在用户使用过程中,使用情景发生了变化,之前使用的设备不再适合继续当前任务,或者周围有更合适的设备,此时用户可以选择使用新的设备来继续当前的任务。

如图所示,在手机上编辑备忘录,到办公室后切换到平板上继续编辑,完成任务的无缝衔接。

点击放大

1.2. 运作机制

点击放大

  1. 在源端,通过UIAbility的onContinue()回调,开发者可以保存待接续的业务数据。

    例如,浏览器应用完成应用接续,在源端浏览一个页面,到对端继续浏览。系统将自动保存页面状态,如当前页面的浏览进度;开发者需要通过onContinue接口保存页面url等业务内容。

  2. 分布式框架提供跨设备应用界面、页面栈以及业务数据的保存和恢复机制,负责将数据从源端发送到对端。

  3. 在对端,同一UIAbility通过onCreate/onNewWant接口恢复业务数据。

2. 隔空播放

2.1. 介绍

使用媒体播控,可以简单高效地将音频投放到其他HarmonyOS设备上播放,如在手机上播放的音频,可以投到2in1设备上继续播放。

HarmonyOS提供了统一的应用内音视频投播功能设计,通过使用系统提供的投播组件和接口,应用只需要设置对应的资源信息、监听投播中的相关状态,以及应用主动控制的行为(如:播放、暂停)。其他动作包括图标切换、设备的发现、连接、认证等,均由系统完成。

2.2. 基本概念

  • 媒体会话(AVSession)

    音视频管控服务,用于对系统中所有音视频行为进行统一的管理。

    本地播放时,应用需要向媒体会话提供播放的媒体信息(如正在播放的歌曲、歌曲的播放状态等),并接收和响应播控中心发出的控制命令(如暂停、下一首等)。具体请参考本地媒体会话。

    投播时,通过AVSession,应用可以进行投播能力的设置和查询,并创建投播控制器。

  • 投播组件(AVCastPicker**)**

    系统级的投播组件,可嵌入应用界面的UI组件。当用户点击该组件后,系统将进行设备发现、连接、认证等流程,应用仅需要通过接口获取投播中相关的回调信息。

  • 投播控制器(AVCastController**)**

    在投播后,由应用发起的用于控制远端播放的接口,包括播放、暂停、调节音量、设置播放模式、设置播放速度等能力。

  • 后台长时任务

    应用实现后台播放,需申请后台长时任务,避免应用在投播后被系统后台清理或冻结。

2.3. 运作机制

点击放大

  • 发现和连接

    设备

    用户在应用界面上点击AVCastPicker组件,触发系统发现可用于投播的设备。用户在设备列表中选择对应设备后,系统连接对应设备。应用无需关注设备的发现连接过程,仅需关注设备在远端是否可用。

    应用需要接入AVSession,才可以使用系统提供的统一投播能力,由系统进行设备发现和管理。

  • 进入远端投播

    应用通过AVSession监听设备的连接情况,监听到设备已连接后,可通过AVSession获取一个AVCastController对象用于发送控制命令(如播放、暂停、下一首等)。

    应用在进入远端投播时,应停止本地的播放器,避免本端和远端设备同时播放的情况。同时,建议应用重新绘制应用界面,比如界面变更为一个遥控器,来控制远端播放。

  • 在本端控制播放

    在本端(包括应用内和播控中心)控制播放时,控制命令将通过AVCastController发送,系统将完成数据传输和信息同步,然后更新远端系统预置播放器的状态。

  • 在远端控制播放

    用户同样可以在远端直接控制播放,会直接修改远端播放器的状态。

  • 远端播放器状态回调

    当远端播放器状态变更后,会触发回调,将状态信息返回到本端。应用可以通过AVCastController监听到远端播放器的状态变化。

3. 跨设备拖拽

3.1. 介绍

跨端拖拽提供跨设备的键鼠共享能力,支持在平板或2in1类型的任意两台设备之间拖拽文件、文本。

例如,当用户拥有两台平板设备时,可以共享一套键鼠,通过跨设备拖拽,一步将设备A的素材拖拽到设备B快速创作,实现跨设备的协同工作体验。

当前系统应用中,文件管理器、浏览器支持拖出;备忘录支持拖入。用户可以体验以下场景:

  • 将A设备文件管理器中的图片拖拽至B设备的备忘录应用。

  • 将A设备备忘录中的文本拖拽至B设备的备忘录应用,并在B设备中使用A设备连接的键盘输入,协同操作。

开发者可以根据实际需求,实现组件的拖入或拖出,即可接入跨设备拖拽。

点击放大

3.2. 运作机制

点击放大

  1. 用户使用鼠标点击组件,触发拖拽事件。

  2. 应用设置拖拽数据。

  3. 系统完成跨设备数据处理,此过程应用不感知。

  4. 用户松手触发拖拽松手事件。

  5. 目的端应用获取并处理拖拽数据。

4. 跨设备剪贴板

4.1. 介绍

剪贴板分为本地剪贴板和跨设备剪贴板,本地剪贴板提供设备内的内容复制粘贴,跨设备剪贴板提供跨设备的内容复制粘贴。

当用户拥有多台设备时,可以通过跨设备剪贴板的功能,在A设备的应用上复制一段文本,粘贴到B设备的应用中,高效地完成多设备间的内容共享。

当开发者正在开发一款浏览器类应用,或是备忘录、笔记、邮件等富文本编辑类应用时,均可接入跨设备剪贴板,提升用户体验。

点击放大

4.2. 运作机制

点击放大

  1. 用户在设备A复制数据。

  2. 系统剪贴板服务将处理相关数据,并完成数据同步。此过程开发者不感知。

  3. 用户在设备B粘贴来自设备A的数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/755288.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

background 与 background-image

相同点:background 与 background-image都可以用于设置背景图 区别. background既可以用于设置背景图, 又可以用于设置CSS样式,还可以用于设置背景属性。 background-image只能用于设置背景图 background能设置的背景属性,如下&…

学习过程中遇到的 部分问题及解决办法

1.安装build wheel时报错: The detected CUDA version (12.1) mismatches the version that was used to compile PyTorch (11.7). Please make sure to use the same CUDA versions. 由于cuda版本和 当前虚拟环境中的pytorch-cudatoolkit版本不同, 解…

数据结构历年考研真题对应知识点(数组和特殊矩阵)

目录 3.4数组和特殊矩阵 3.4.2数组的存储结构 【二维数组按行优先存储的下标对应关系(2021)】 3.4.3特殊矩阵的压缩存储 【对称矩阵压缩存储的下标对应关系(2018、2020)】 【上三角矩阵采用行优先存储的应用(2011)】 【三对角矩阵压缩存储的下标对应关系(2016)】 3.4.…

【AIGC】《AI-Generated Content (AIGC): A Survey》

文章目录 相关概念What is AI-generated content?Necessary conditions of AIGCHow can AI make the content better?The industrial chain of AIGCAdvantages of large-scale pre-trained modelsGeneration of smart textPros of AIGCCons of AIGCAIGC and Metaverse 挑战潜…

【Vue】Vue.js中常见的几种语法

在 Vue.js 中,主要的语法可以分为以下几种: 插值语法 (Interpolation) 使用双大括号 {{ }} 进行文本插值。 示例: {{ message }} 指令语法 (Directives) 指令是特殊的标记,用于告诉Vue框架如何操作DOM。Vue提供了多种内置指…

算法基础-----【动态规划】

动态规划(待完善) 动规五部曲分别为: 确定dp数组(dp table)以及下标的含义确定递推公式(状态转移公式)dp数组如何初始化确定遍历顺序举例推导dp数组、 动态规划的核心就是递归剪枝(存储键值,…

有人物联的串口服务器USR-TCP232-410S基本测试通信和使用方案(485串口和232串口)

1.将 410S(USR-TCP232-410S,简称 410S 下同)的串口通过串口线(或USB 转串口线)与计算机相连接,通过网线将 410S 的网口 PC 的网口相连接,检测硬件连接无错误后,接入我们配送的电源适配器,给 410S 供电。观察指示灯状态…

Python面试宝典第1题:两数之和

题目 给定一个整数数组 nums 和一个目标值 target,找出数组中和为目标值的两个数的索引。可以假设每个输入只对应唯一的答案,且同样的元素不能被重复利用。比如:给定 nums [2, 7, 11, 15] 和 target 9,返回 [0, 1],因…

《数据仓库与数据挖掘》 总复习

试卷组成 第一章图 第二章图 第三章图 第四章图 第五章图 第六章图 第九章图 第一章 DW与DM概述 (特点、特性) DB到DW 主要特征 (1)数据太多,信息贫乏(Data Rich, Information Poor)。 &a…

计算机网络 —— 路由协议:RIP、OSPF、BGP、MPLS

路由协议 1. 定义2. IGP2.1 RIP2.2 OSPF 3. BGP4. MPLS 1. 定义 互联网中需要通过路由将数据发送至目标主机。 路由器根据**路由控制表(RoutingTable)**转发数据包,它根据所收到的数据包中目标主机的IP地址与路由控制表的比较得出下一个应该接收的路由器。 &…

HarmonyOS ArkUi ArkWeb加载不出网页问题踩坑

使用 使用还是比较简单的,直接贴代码了 别忘了配置网络权限 Entry Component struct WebPage {State isAttachController: boolean falseState url: string State title: string Prop controller: web_webview.WebviewController new web_webview.WebviewCont…

【opencv - C++ - Ubuntu】putText 显示中文最快方法

话不多说&#xff0c;直接上代码 #include <iostream> #include <opencv2/opencv.hpp> #include <opencv2/freetype.hpp>using namespace std; using namespace cv;int main(void) {Mat image(1000, 1800, CV_8UC3, Scalar(200,162,33));Ptr<freetype::F…

一篇大模型 Agent 工具使用全面研究综述

使用大型语言模型&#xff08;LLMs&#xff09;进行工具学习已成为增强LLMs能力以解决高度复杂问题的一个有希望的范式。尽管这一领域受到越来越多的关注和快速发展&#xff0c;但现有的文献仍然分散&#xff0c;缺乏系统性的组织&#xff0c;为新来者设置了进入障碍。因此对LL…

Gemma 2大模型:性能更优,效率更高

当地时间6月27日&#xff0c;谷歌正式发布了在一个月前的I/O开发者大会上预告过的Gemma 2大模型。这款新模型相较于第一代Gemma模型&#xff0c;在性能和推理效率上都有了显著的提升&#xff0c;为AI领域带来了新的突破。 据谷歌介绍&#xff0c;Gemma 2模型包括9B和27B两种参…

AIGC->基于扩散模型的图像生成算法 (课程大纲)

https://edu.csdn.net/course/detail/39618?spm=1001.2014.3001.5507https://edu.csdn.net/course/detail/39618?spm=1001.2014.3001.5507 课程特色是围绕着工作中AIGC文生图的具体用途来对文生图领域进行一个高屋建瓴式的分析,结合具体的应用,尤其是产业界的具体实用场景,…

【排序算法】—— 希尔排序

目录 一、希尔排序原理 二、希尔排序的思路 三、希尔排序为什么快 四、如何取增量 五、源码 希尔排序是简单插入排序的一种升级版&#xff0c;它也是用了插入的思想&#xff0c;而插入排序相比冒泡排序和选择排序的效率要高的多&#xff0c;再将它优化为希尔排序后效率跟原…

ONLYOFFICE 桌面编辑器 8.1 发布:全新 PDF 编辑器、幻灯片版式、增强 RTL 支持及更多本地化选项

目录 什么是ONLYOFFICE&#xff1f; ONLYOFFICE 主要特点包括&#xff1a; 官网信息&#xff1a; 1. 功能齐全的 PDF 编辑器 1.1 编辑 PDF 文本 1.2 插入和修改对象 1.3 创建和填写表单 2. 幻灯片版式功能 2.1 快速应用幻灯片版式 2.2 动画窗格的改进 3. 文档编辑、…

Linux—系统安全及应用

目录 一、账号安全控制 1、系统账号清理 1.1、将用户账号设置为无法登录 1.2、锁定长期不使用的账号 1.3、删除无用的账号 1.4、锁定账号文件passwd、shadow 2、密码安全控制 2.1、设置密码有效期 2.1.1、适用于新建用户 2.1.2、适用于已有用户 2.2、强制用户下次登录…

什么是预主密钥(pre-master secret)?

什么是预主密钥&#xff08;Pre-Master Secret&#xff09;&#xff1f; 在SSL/TLS协议中&#xff0c;预主密钥&#xff08;Pre-Master Secret&#xff09;是建立安全连接的关键要素之一。它在客户端和服务器之间生成共享密钥的过程中扮演重要角色。本文将详细介绍预主密钥的生…

Raylib学习-鼠标检测与GPU缓冲区使用

鼠标左键点击运行绘制 #include <raylib.h>int main() {const int screenWidth 800;const int screenHeight 450;InitWindow(screenWidth, screenHeight, "test"); // 设置帧率SetTargetFPS(150); // 设置一个画布&#xff0c;可以使用GPU进行绘制RenderText…