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

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

相关文章:

  • vue3从精通到入门6:v-memo指令
  • shell脚本发布nginx vue2 项目示例
  • 设计模式(4):建造者模式
  • 【Vue3源码学习】— CH2.5 reactiveEffect.ts:Vue 3响应式系统的核心
  • 处理关于 React lazy 白屏的两种方案
  • Linux和Windows安装PHP依赖管理工具Composer
  • 【微信小程序】流量主-激励视频(激励广告)下发策略,每天三次免费体验,然后再次点击触发激励视频,当日不再触发。
  • MySQL 优化及故障排查
  • 手机有线投屏到直播姬pc端教程
  • winform日历控件_进度条控件
  • C++面向对象程序设计 - 构造函数
  • Linux——信号概念与信号产生方式
  • U-net在乳腺癌医学图像分割方面的应用
  • vue-ueditor-wrap上传图片报错:后端配置项没有正常加载,上传插件不能正常使用
  • 6个黑科技网站,永久免费
  • 分享一款快速APP功能测试工具
  • [译]CSS 居中(Center)方法大合集
  • 【Leetcode】104. 二叉树的最大深度
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • Effective Java 笔记(一)
  • iOS 系统授权开发
  • MQ框架的比较
  • node 版本过低
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • Phpstorm怎样批量删除空行?
  • React16时代,该用什么姿势写 React ?
  • react-native 安卓真机环境搭建
  • text-decoration与color属性
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • 爱情 北京女病人
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 后端_ThinkPHP5
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 记一次删除Git记录中的大文件的过程
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 力扣(LeetCode)22
  • 盘点那些不知名却常用的 Git 操作
  • 前端代码风格自动化系列(二)之Commitlint
  • 深入 Nginx 之配置篇
  • 用quicker-worker.js轻松跑一个大数据遍历
  • Spring Batch JSON 支持
  • #if #elif #endif
  • #LLM入门|Prompt#3.3_存储_Memory
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (day6) 319. 灯泡开关
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (万字长文)Spring的核心知识尽揽其中
  • (转)树状数组
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • .“空心村”成因分析及解决对策122344
  • .bat批处理(四):路径相关%cd%和%~dp0的区别