在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

HarmonyOS開發實例:【分布式數據服務】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-04-18 10:18 ? 次閱讀

介紹

分布式數據服務(Distributed Data Service,DDS)為應用程序提供不同設備間數據分布式的能力。通過調用分布式數據接口,應用程序將數據保存到分布式數據庫中。通過結合帳號、應用和分布式數據服務對屬于不同的應用的數據進行隔離,保證不同應用之間的數據不能通過分布式數據服務互相訪問。在通過可信認證的設備間,分布式數據服務支持應用數據相互同步,為用戶提供在多種終端設備上一致的數據訪問體驗。效果圖如下:

圖 1 []()

搭建OpenHarmony環境

完成本篇Codelab我們首先要完成開發環境的搭建,本示例以Hi3516DV300開發板為例,參照以下步驟進行:

  1. [獲取OpenHarmony系統版本]:標準系統解決方案(二進制)
    以3.0版本為例:
  2. 搭建燒錄環境
    1. [完成DevEco Device Tool的安裝]
    2. [完成Hi3516開發板的燒錄]
    3. 鴻蒙開發指導參考:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md](
  3. 搭建開發環境
    1. 開始前請參考[工具準備],完成DevEco Studio的安裝和開發環境配置。
    2. 開發環境配置完成后,請參考[使用工程向導]創建工程(模板選擇“Empty Ability”),選擇JS或者eTS語言開發。
    3. 工程創建完成后,選擇使用[真機進行調測]。

搜狗高速瀏覽器截圖20240326151450.png

代碼結構解讀

本篇Codelab只對核心代碼進行講解,對于完整代碼,我們會在最后的參考中提供下載方式,接下來我們來講解整個工程的代碼結構:

  • pages:用于存放所有頁面的目錄。
    • index:構成關系型數據庫操作界面,包括index.hml布局文件,index.css樣式文件,index.js邏輯處理文件。
    • KvStoreModel.js:創建分布式數據庫,以及提供表格數據的增、刪、改、查API接口。
  • config.json:配置文件。

分布式組網

  1. 硬件準備:準備兩臺燒錄相同的版本系統的Hi3516DV300開發板A,B。

  2. 兩個開發板A,B配置在同一個WiFi網絡之下。
    打開設置-->WLAN-->點擊右側WiFi開關-->點擊目標WiFi并輸入密碼。

  3. 將設備A,B設置為互相信任的設備。

    • 找到系統應用“音樂”。

    • 設備A打開音樂,點擊左下角流轉按鈕,彈出列表框,在列表中會展示遠端設備的id。
    • 選擇遠端設備B的id,另一臺開發板(設備B)會彈出驗證的選項框。
    • 設備B點擊允許,設備B將會彈出隨機PIN碼,將設備B的PIN碼輸入到設備A的PIN碼填入框中。


    配網完畢。

創建分布式數據庫

  1. 導入模塊
    import distributedData from '@ohos.data.distributeddata';
    
  2. 參考分布式數據庫[接口],在kvStoreModel類中定義KvManager和KvStore變量,并通過createKVManager創建分布式數據庫管理對象KvManager,通過getKVStore獲取數據庫操作實例KvStore。其中config表示創建KVManager實例的配置信息,包括調用方的包名和用戶信息。options表示創建 KvStore實例的配置信息。表示示例代碼如下:
export default class KvStoreModel {
    kvManager;
    kvStore;
    constructor() {
    }
    createKvStore(callback) {
      if (typeof (this.kvStore) === 'undefined') {
        //創建KVManager實例的配置信息
        var config = {
          bundleName: 'com.ohos.distributedmusicplayer',
          userInfo: {
            userId: '0',
            userType: 0
          }
        };
        let self = this;
        distributedData.createKVManager(config).then((manager) = > {
          self.kvManager = manager;
          //創建 KvStore實例的配置信息
          var options = {
            createIfMissing: true,
            encrypt: false,
            backup: false,
            autoSync: true,
            kvStoreType: 1,
            schema: '',
            securityLevel: 3,
          };
          self.kvManager.getKVStore(STORE_ID, options).then((store) = > {
            self.kvStore = store;
            callback();
          });
        });
      } else {
        callback();
      }
    }
}

操作分布式數據方法

創建分布式數據庫后,獲得一個KvStore,通過KvStore調用相關接口執行相關的數據操作,結果以Promise形式返回。

  • 添加鍵值對到數據庫:使用put()方法,該方法接收兩個參數,分別是要添加的數值Key和要添加的數值。示例代碼如下:
    put(key, value) {
      this.kvStore.put(key, value).then((data) = > {
    	this.kvStore.get(key).then((data) = > {
    	});
      }).catch((err) = > {
      });
    }
    
  • 數據庫中刪除指定鍵值對的數據:使用delete()方法,該方法接收一個參數,需要刪除數據的鍵值key,結果以Promise形式返回。示例代碼如下:
    delete(key) {
      this.kvStore.delete(key).then((data) = > {
      }).catch((err) = > {
      });
    }
    
  • 數據庫中獲取指定鍵值對的數據:使用get()方法,該方法接收兩個參數,分別是需要獲取數據的鍵值key和返回函數callback,結果以callback函數形式返回。示例代碼如下:
    get(key,callback){
      this.kvStore.get(key).then((data) = > {
           callback(data);
      });
    }
    

同步分布式數據庫

通常情況下,當數據庫的數據產生變化時,需要主動通知與該數據相關聯的進程或者應用,從而使得相關進程或者應用接收到數據變化后完成相應的處理。對于數據提供方,當數據庫數據變化,可以通過如下方法通知數據訂閱者:

broadcastMessage(key, value) {
  let self = this;
  this.createKvStore(() = > {
	self.put(key, value);//self.delete(key)新增或者刪除數據都可導致數據變化
  });
}

對于數據接收方,可以通過KvStore提供的[on]方法注冊一個數據訂閱者。示例代碼如下:

setOnMessageReceivedListener(callback) {
  let self = this;
  this.createKvStore(() = > {
	self.kvStore.on('dataChange', 1, (data) = > {
	  for (var i = 0; i < data.insertEntries.length; i++) {
		callback(data.insertEntries[0].key, data.insertEntries[0].value.value, 0);
		return;
	  }
	  for (i = 0; i < data.updateEntries.length; i++) {
		callback(data.updateEntries[0].key, data.updateEntries[0].value.value, 1);
		return;
	  }
	  for (i = 0; i < data.deleteEntries.length; i++) {
		callback(data.deleteEntries[0].key, '', 2);
		return;
	  }
	});
  });
}

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 分布式數據
    +關注

    關注

    0

    文章

    9

    瀏覽量

    8924
  • 鴻蒙
    +關注

    關注

    57

    文章

    2351

    瀏覽量

    42850
  • HarmonyOS
    +關注

    關注

    79

    文章

    1975

    瀏覽量

    30186
  • OpenHarmony
    +關注

    關注

    25

    文章

    3722

    瀏覽量

    16313
收藏 人收藏

    評論

    相關推薦

    HarmonyOS開發實例:【分布式數據管理】

    eTS中分布式數據管理的使用,包括KVManager對象實例的創建和KVStore數據流轉的使用。
    的頭像 發表于 04-11 09:57 ?938次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發</b><b class='flag-5'>實例</b>:【<b class='flag-5'>分布式</b><b class='flag-5'>數據</b>管理】

    HarmonyOS Next 應用元服務開發-分布式數據對象遷移數據權限與基礎數據

    設備文件訪問實現文件的遷移,難以獲取文件同步完成的時間。為了保證更高的成功率,文件的遷移不建議繼續通過該方式實現,推薦使用分布式數據對象攜帶資產的方式。開發者此前通過跨設備文件訪問實現的文件遷移依然生效
    發表于 12-24 09:40

    HarmonyOS應用開發-分布式任務調度

    1. 介紹本篇CodeLab將實現的內容HarmonyOS是面向全場景多終端的分布式操作系統,使得應用程序的開發打破了智能終端互通的性能和數據壁壘,業務邏輯原子化
    發表于 09-18 09:21

    HarmonyOS應用開發-分布式設計

    設計理念HarmonyOS 是面向未來全場景智慧生活方式的分布式操作系統。對消費者而言,HarmonyOS 將生活場景中的各類終端進行能力整合,形成“One Super Device”,以實現
    發表于 09-22 17:11

    HarmonyOS分布式數據庫,為啥這么牛?

    開發者無需關注索引引擎實現;業務通過一套接口調用,就可以建立起應用內的索引,同時系統還具備強大的搜索服務,提供了豐富的檢索接口。 03 出色的性能表現 除了實現基礎功能,HarmonyOS
    發表于 11-19 15:38

    HarmonyOS教程—分布式運動健康應用(智能穿戴端)

    的健康數據,并寫入到分布式數據庫中,我們會在第七小節詳細說明如何實現。最后是初始化分布式數據服務initDbManager(),有關分布式數據
    發表于 09-06 11:39

    HarmonyOS原子化服務卡片開發-分布式體驗學習

    1.原子化服務流轉在HarmonyOS中泛指涉及多端的分布式操作。流轉能力打破設備界限,多設備聯動,使用戶應用程序可分可合、可流轉,實現如郵件跨設備編輯、多設備協同健身、多屏游戲等分布式
    發表于 09-07 09:38

    HarmonyOS教程—基于分布式數據接口,實現多種設備上一致的數據訪問體驗

    1. 如何使用分布式數據庫介紹分布式數據服務(Distributed Data Service,DDS) 為應用程序提供不同設備間數據數據
    發表于 09-26 11:40

    HarmonyOS分布式應用框架深入解讀

    著,一般默默地為開發者和用戶服務。基礎服務層:包括分布式調度管理、分布式數據管理、
    發表于 11-22 15:15

    HDC2021技術分論壇:如何高效完成HarmonyOS分布式應用測試?

    作者:liuxun,HarmonyOS測試架構師HarmonyOS是新一代的智能終端操作系統,給開發者提供了設備發現、設備連接、跨設備調用等豐富的分布式API。隨著越來越多的
    發表于 12-13 14:55

    如何高效完成HarmonyOS分布式應用測試?

    作者:liuxun,HarmonyOS測試架構師HarmonyOS是新一代的智能終端操作系統,給開發者提供了設備發現、設備連接、跨設備調用等豐富的分布式API。隨著越來越多的
    發表于 12-13 18:07

    HarmonyOS測試技術與實戰-HarmonyOS分布式應用特征與挑戰

     HDC 2021華為開發者大會HarmonyOS測試技術與實戰-HarmonyOS分布式應用特征與挑戰
    的頭像 發表于 10-23 14:41 ?1687次閱讀
    <b class='flag-5'>HarmonyOS</b>測試技術與實戰-<b class='flag-5'>HarmonyOS</b><b class='flag-5'>分布式</b>應用特征與挑戰

    基于鴻蒙分布式數據服務開發的聊天室應用

    ?? 之前給大家介紹過《HarmonyOS 分布式之仿抖音應用》,此次給大家介紹一下基于鴻蒙分布式數據服務開發的聊天室應用,模擬現實中的聊天
    的頭像 發表于 11-15 09:32 ?1804次閱讀

    基于鴻蒙分布式數據服務開發的聊天室應用

    ?? 之前給大家介紹過《HarmonyOS 分布式之仿抖音應用》,此次給大家介紹一下基于鴻蒙分布式數據服務開發的聊天室應用,模擬現實中的聊天
    的頭像 發表于 12-03 10:35 ?7599次閱讀

    HarmonyOS分布式應用上架問題分析

    HarmonyOS是新一代的智能終端操作系統,給開發者提供了設備發現、設備連接、跨設備調用等豐富的分布式API。隨著越來越多的開發者投入到Harmo
    的頭像 發表于 12-24 17:56 ?1912次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>分布式</b>應用上架問題分析
    主站蜘蛛池模板: 三级在线观看网站| 毛片免费网站| 韩国电影天堂| 久久系列| 国产高清精品自在久久| 久久国产精品系列| 欧美成人亚洲欧美成人| 日本成人在线网址| 天天干天天插天天射| 午夜免费网址| 日本成人免费在线视频| 午夜一级毛片| 好吊日在线| 一区二区三区网站| 色多多黄| 天天爱天天做天天爽| 老熟女毛片| 久久成人综合| 操www| 亚洲免费观看在线视频| 亚洲狠狠97婷婷综合久久久久| 色偷偷狠狠色综合网| 免费美剧在线观看| 免费的三及片| 午色| 狠狠色噜噜狠狠狠狠色综合久| 午夜影院免费版| 欧洲精品不卡1卡2卡三卡| 美女涩涩网站| 草久久久久| 涩涩高清无乱码在线观看| 午夜视频在线看| 扒开双腿猛进入jk校视频| 国产日韩精品一区二区三区| 欧美福利在线播放| 亚洲成色www久久网站| 在线视频久久| 老师叫我揉她内裤越快越好 | 亚洲第七页| 免费在线观看视频网站| 日本免费福利视频|