OpenHarmony实战开发-分布式数据管理
介绍
本示例展示了在eTS中分布式数据管理的使用,包括KVManager对象实例的创建和KVStore数据流转的使用。
通过设备管理接口@ohos.distributedDeviceManager ,实现设备之间的kvStore对象的数据传输交互,该对象拥有以下能力详见 ;1、注册和解除注册设备上下线变化监听2、发现周边不可信设备3、认证和取消认证设备4、查询可信设备列表5、查询本地设备信息,包括设备名称,设备类型和设备标识6、发布设备发现
效果预览
使用说明
1.两台设备组网。
2.在一台界面中点击右上角的流转按钮,在弹窗中选择对端设备拉起对端设备上的应用。
3.拉起对端设备后,在界面中点击"+"按钮新增笔记卡片,点击每个卡片右上角的"X"按钮可以删除此卡片,可以看到对端设备和当前设备界面数据保持一致。
4.操作对端设备,当前设备界面也会保持和对端设备界面显示一致。
工程目录
entry/src/main/ets/
|---pages
| |---index.ets // 首页
|---model
| |---DeviceDataModel.ets // 设备数据定义
| |---KvStoreModel.ets // kvstore对象操作类
| |---NoteDataModel.ets // 笔记数据定义
| |---RemoteDeviceModel.ets // 远程设备操作类
|---common
| |---BasicDataSource.ets // 笔记数据源操作
| |---Dialog.ets // 设备管理对话框
| |---NoteItem.ets // 笔记组件
| |---TitleBar.ets // title组件
具体实现
管理kvStore
1、页面初始化时获取此应用所需能力:引入@ohos.data.distributedKVStore初始化kvstore数据库并对使用kvstore.on数据change进行监听,通过appstorge判断获取相应的key判断是否是分布式节点 。
2、如果是分布式节点,如果数据发生变化,处理数据并使用.noteDataSource()进行reload数据。
3、页面通过kvStore对象进行增删改查会触发其他已连接设备的kvStore.on监听。
管理分布式设备(节点)
1、创建设备管理对象,并指定参数kvstore应用包deviceManager.createDeviceManager(“ohos.samples.kvstore”, (error, value) => {})
2、获取可信设备列表,“this.deviceManager.getTrustedDeviceListSync())” 。
3、监听设备状态,“this.deviceManager.on(‘deviceStateChange’, (data) => {})”,从而对可信设备列表管理。
相关权限
允许不同设备间的数据交换:ohos.permission.DISTRIBUTED_DATASYNC 。
允许系统应用获取分布式设备的认证组网能力:ohos.permission.ACCESS_SERVICE_DM
依赖
不涉及。
约束与限制
1.本示例仅支持标准系统上运行。
3.本示例已适配API version 9版本FULL SDK,版本号:3.2.11.9,使用Full SDK时需要手动从镜像站点获取,并在DevEco Studio中替换 。
4.本示例需要使用DevEco Studio 3.1 Beta2 (Build Version: 3.1.0.400, built on April 7, 2023)及以上版本才可编译运行。
3.本示例需要使用@ohos.distributedDeviceManager 系统权限的系统接口。
下载
如需单独下载本工程,执行如下命令:
git init
git config core.sparsecheckout true
echo code/SuperFeature/DistributedAppDev/Kvstore/ > .git/info/sparse-checkout
git remote add origin https://gitee.com/openharmony/applications_app_samples.git
git pull origin master
为了帮助大家更深入有效的学习到鸿蒙开发知识点,小编特意给大家准备了一份全套最新版的HarmonyOS NEXT学习资源,获取完整版方式请点击→https://qr21.cn/FV7h05
HarmonyOS教学视频:语法ArkTS、TypeScript、ArkUI等…视频教程
鸿蒙生态应用开发白皮书V2.0PDF: 获取完整版白皮书方式请点击→https://qr21.cn/FV7h05
鸿蒙 (Harmony OS)开发学习手册
一、入门必看→https://qr21.cn/FV7h05
1.应用开发导读(ArkTS)
2………
二、HarmonyOS 概念→https://qr21.cn/FV7h05
1.系统定义
2.技术架构
3.技术特性
4.系统安全
5.…
三、如何快速入门?→https://qr21.cn/FV7h05
1.基本概念
2.构建第一个ArkTS应用
3………
四、开发基础知识→https://qr21.cn/FV7h05
1.应用基础知识
2.配置文件
3.应用数据管理
4.应用安全管理
5.应用隐私保护
6.三方应用调用管控机制
7.资源分类与访问
8.学习ArkTS语言
9.……
五、基于ArkTS 开发→https://qr21.cn/FV7h05
1.Ability开发
2.UI开发
3.公共事件与通知
4.窗口管理
5.媒体
6.安全
7.网络与链接
8.电话服务
9.数据管理
10.后台任务(Background Task)管理
11.设备管理
12.设备使用信息统计
13.DFX
14.国际化开发
15.折叠屏系列
16.……
更多了解更多鸿蒙开发的相关知识可以参考:https://qr21.cn/FV7h05
相关文章:
OpenHarmony实战开发-分布式数据管理
介绍 本示例展示了在eTS中分布式数据管理的使用,包括KVManager对象实例的创建和KVStore数据流转的使用。 通过设备管理接口ohos.distributedDeviceManager ,实现设备之间的kvStore对象的数据传输交互,该对象拥有以下能力详见 ;1、注册和解…...
微服务(基础篇-007-RabbitMQ部署指南)
目录 05-RabbitMQ快速入门--介绍和安装_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1LQ4y127n4?p65&vd_source60a35a11f813c6dff0b76089e5e138cc 1.单机部署 1.1.下载镜像 1.2.安装MQ 2.集群部署 2.1.集群分类 2.2.设置网络 视频地址: 05-Rab…...
C语言一维数组及二维数组详解
引言: 小伙伴们,我发现我正文更新的有些慢,但相信我,每一篇文章真的都很用心在写的,哈哈,在本篇博客当中我们将详细讲解一下C语言中的数组知识,方便大家后续的使用,有不会的也可以当…...
11.图像边缘检测的原理与实现
数字图像处理(19): 边缘检测算子(Roberts算子、Prewitt算子、Sobel算子 和 Laplacian算子) 数字图像处理(20): 边缘检测算子(Canny算子) 1.边缘检测介绍 1.1 边缘检测的基本原理 边缘是图像的基本特征,所谓的边缘就是指的图像的局部不连续性。灰度或者结构等信息的…...
RVM安装ruby笔记
环境 硬件:Macbook Pro 系统:macOS 14.1 安装公钥 通过gpg安装公钥失败,报错如下: 换了几个公钥地址(hkp://subkeys.pgp.net,hkp://keys.gnupg.net,hkp://pgp.mit.edu),…...
电力系统负荷预测方法
电力系统负荷是什么? 所谓的电力负荷预测是指以电力负荷变化以及外界因素变化为基础,以特定的数学方法或者建立数学模型的方式为手段,通过对电力负荷历史数据进行分析,对电力系统的需求做出估计以及研究相关因素对电力负荷的影响…...
electron打包桌面版.exe之vue项目踩坑(vue3+electron 解决打包后首页打开空白,打包后路由不跳转及请求不到后端数据等问题)
vue项目https://www.qingplus.cn/components-web/index打包桌面版问题集合 一、静态资源加载问题 npm run electron_dev桌面版运行后页面空白,内容未加载。 填坑: 打包配置要用相对路径 vite.config.ts文件中的base要改成./,之前加了项目…...
MySQL学习笔记(持续更行ing)
级别: 1. 了解,面试概率10% 2. 掌握,面试概率50% 3. 重点,面试概率80% 目录 1. 数据库**** 1.1. 概念**** 1.2. 分类**** 1.2.1. 关系型数据库**** 1.2.1.1. SQL**** 1.2.2. 安装**** 1.2.2.1. Navicat**** 1.2.3. 非…...
服务器配置Huggingface并git clone模型和文件
服务器配置Huggingface并git clone模型和文件 参考:https://huggingface.co/welcome 1 注册hugging face 官网注册,并获取token【https://huggingface.co/settings/tokens】,用于登录 2 安装 2.1 安装lfs https://stackoverflow.com/qu…...
Rust 开发的高性能 HTTP 请求工具
一、简述 在现在的软件开发领域,HTTP请求的快速验证变得越来越重要。特别是对于后端开发人员和测试工程师来说,能够快速创建、执行并验证HTTP请求对于提升开发效率至关重要。近期有一个名为Hurl的开源项目,它被设计来高效执行HTTP请求&#…...
Android Studio 通过 WIFI 调试手机 app
操作流程 首先第一步,PC 和手机都需要连在同一个局域网 WIFI。 第二步,手机 USB 连上 PC,确保能查看到通过 USB 连上的设备: >>adb devices List of devices attached CSXasjdhwjqwjhqdh device (最好只看到一个连上的设置…...
RabbitMQ高级笔记
视频链接:【黑马程序员RabbitMQ入门到实战教程】 文章目录 1.发送者的可靠性1.1.生产者重试机制1.2.生产者确认机制1.3.实现生产者确认1.3.1.开启生产者确认1.3.2.定义ReturnCallback1.3.3.定义ConfirmCallback 2.MQ的可靠性2.1.数据持久化2.1.1.交换机持久化2.1.2.…...
【Qt】QtCreator交叉编译环境配置Qt mkspec
1、问题描述 在QtCreator中配置TI AM437x的交叉编译环境后,编译时报错,错误信息如下 error: gnu/stubs-soft.h: No such file or directory2、原因分析 1)环境变量CC 搜索网络,解决方法为修改交叉编译工具目录下环境配置脚本,即执行source时的文件。 本人环境为:linux…...
点点数据K参数加密逆向分析(RPC方案跟加密算法还原)
文章目录 1. 写在前面2. 接口分析3. 断点分析4. RPC调用5. 算法还原 【🏠作者主页】:吴秋霖 【💼作者介绍】:擅长爬虫与JS加密逆向分析!Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长…...
考研数学|《1800》+《660》精华搭配混合用(经验分享)
肯定不行,考研数学哪有这么容易的! 先说说这两本习题册,李永乐老师推出的新版660题,相较于18年前的版本,难度略有降低,更加适合初学者。因此,对于处于基础阶段的学习者来说,新版660…...
【Redis 二】Redis客户端(Jedis、SpringDataRedis、RedisTemplate)
1. Redis客户端 Jedis 以redis命令作为方法名称,学习成本低,但是Jedis实例是线程不安全的,多线程环境下需要基于连接池来使用(必须为每个线程分配独立的Jedis连接) lettuce 基于Netty实现,支持同步、异步和…...
Java中Filter和Interceptor的区别
概述 本文阐述Java中Filter和Interceptor的区别。 执行顺序不同 FIlter->Servlet->Interceptor->Controller 配置方式不同 FIlter在web.xml中配置 Interceptor在spring中的配置文件中、使用注解 是否依赖servlet Filter依赖servlet,而Interceptor不…...
记一次 pdfplumber 内存泄漏导致的服务器宕机
有一个项目需求,要在每天凌晨5点的时候执行一个任务,获取一系列的PDF文件并解析。 后端是Django框架,定时任务用Celery来实现的。 本地跑没什么问题,但是一放到服务器上跑就会宕机,而且是毫无征兆的宕机,…...
SpringBoot单元测试剖析
SpringBoot作为一种流行的Java框架,其单元测试的重要性不言而喻。在这篇博客中,我们将深入剖析SpringBoot单元测试的底层原理。 单元测试的概念 单元测试是软件开发过程中的一个重要环节,它是对软件中的最小可测试单元进行检查和验证。对于…...
【华为OD机试C++】计算某字符出现次数
文章目录 描述输入描述输出描述示例代码 描述 写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母) 数据范围: 1 \le n \le 1000 …...
ORA-01779 BYPASS_UJVC 11.2后废弃了
有这么个update语句 update A t set status 1 where exists (select 1 from B B where B.code A.code) 因性能问题需要修改写法。 在oracle10G这么update是没问题的: update( select …...
验证码demo(简单实现)
前言 我们注意到我们登录网站的时候经常会用到网络验证码,今天我们就简单实现一个验证码的前后端交互问题,做一个小demo 准备 我们这里并不需要依靠原生的java来实现,而是只需要引入一个maven依赖,使用现成的封装好的即可,这是我使用的是hutool工具包 网址:Hutool🍬…...
C#面:虚函数和抽象函数的区别
C#中的虚函数和抽象函数都是实现多态性的重要概念,但它们有一些区别。 定义方式: 虚函数:在基类中使用 virtual 关键字定义,可以在派生类中被重写。抽象函数:在抽象类或接口中使用abstract 关键字定义,必…...
Vidmore Video Fix for Mac 视频修复工具
Vidmore Video Fix for Mac是一款功能强大且易于使用的视频修复工具,专为Mac用户设计。它凭借先进的视频修复技术,能够帮助用户解决各种视频问题,如视频文件损坏、无法播放、格式不支持等。 软件下载:Vidmore Video Fix for Mac v…...
Docker容器与虚拟化技术:OpenEuler 部署 Docker UI
目录 一、实验 1.环境 2.OpenEuler 部署 docker-compose-ui 2.OpenEuler 部署 docker ui 3.使用cpolar内网穿透 二、问题 1.docker run -w 的作用 一、实验 1.环境 (1)主机 表1 主机 系统架构版本IP备注LinuxopenEuler22.03 LTS SP2 192.168…...
328——二维矩阵值变为1最小操作次数 next、nextInt、nextLine
一、next、nextInt、nextLine区别 1.next() next()不光是接收键盘输入的内容,而且还进行分割。例如默认分隔符为空格 Scanner sc new Scanner(System.in);while (true){String str sc.next();System.out.println(str "A");}// 输出结果 input&#…...
HarmonyOS 应用开发之同步任务开发指导 (TaskPool和Worker)
同步任务是指在多个线程之间协调执行的任务,其目的是确保多个任务按照一定的顺序和规则执行,例如使用锁来防止数据竞争。 同步任务的实现需要考虑多个线程之间的协作和同步,以确保数据的正确性和程序的正确执行。 由于TaskPool偏向于单个独…...
基于MiniExcel的三种常用导出Excel方法(固定列导出、动态列导出、按模板导出)
为了方便代码编写和测试,把很多代码都放在一个class里面,实际开发根据需要放到对应的目录下即可。 1.使用nuget下载安装miniexcel; 2.编写对应的测试接口,具体代码如下: using Microsoft.AspNetCore.Authorization; using Micr…...
MATLAB科研绘图与学术图表绘制从入门到精通
💂 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】🤟 一站式轻松构建小程序、Web网站、移动应用:👉注册地址🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交…...
C++核心高级编程 --- 1、内存分区模型 2、引用
文章目录 第一章:1.内存分区模型1.1 程序运行前1.2 程序运行后1.3 new操作符 第二章:2.引用2.1 使用2.2 注意事项2.3 做函数参数2.4 做函数返回值2.5 本质2.6 常量引用 第一章: 1.内存分区模型 4个区域: 代码区:存放…...
网站制作优化济南/长春网站优化流程
写在前面 笔记内容大多出自于拉勾教育大前端高薪训练营的教程,因此也许会和其他文章雷同较多,请担待。 Yeoman $ npm i yo -g / $ yarn global add yo $ npm i generator-node -g / $ yarn global add generator-node // 基于node的开发脚手架&#x…...
网易企业邮箱收费标准/兰州模板网站seo价格
微信小程序组件里没有下拉框,正好要用到,记下来以后参考wxml代码选择接收班级{{grade_name}}{{item}}wxss代码/* 顶部 */.top{width: 100vw;height: 80rpx;padding: 0 20rpx;line-height: 80rpx;font-size: 34rpx;border-bottom: 1px solid #000;}.top-t…...
简单的网站设计怎么做/海外推广代理商
Hyperledger Fabric笔记2--运行fabric测试网络 1、获取fabric相关源代码 首先,需要在/opt/gopath中新建目录, mkdir -p /opt/gopath/src/github.com/hyperledger/ 其次,下载fabric源码,git clone https://github.com/hyperledger/fabric.g…...
黄埔营销型网站建设/广州网站seo公司
MySQL 提供了两种事务型的存储引擎:InnoDB 和 NDB Cluster 。另外还有一些第三方存储引擎也支持事务1. 数据库事务数据库事务指的是一组数据操作,事务内的操作要么就是全部成功,要么就是全部失败。例如在转账的流程下,张三给李四转…...
网站建设项目策划书格式/seo关键词优化外包
http://www.oschina.net/news/73680/android-studio-widget?frommail-notify http://blog.csdn.net/s13383754499/article/details/79034490...
南平 网站建设/推广公司是做什么的
环境: 2020款MacBook Pro13.3 八核M1/8G/256G 问题描述: 公司Macbook Pro,换了好几位员工使用,他们走了,不知道谁的账户启用了激活锁,重置系统后开机要激活,忘了激活锁账户密码如何向苹果申请…...