99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【開(kāi)發(fā)者說(shuō)】鴻蒙原生應(yīng)用開(kāi)發(fā)——分布式數(shù)據(jù)對(duì)象

HarmonyOS開(kāi)發(fā)者 ? 來(lái)源:HarmonyOS開(kāi)發(fā)者 ? 作者:HarmonyOS開(kāi)發(fā)者 ? 2023-12-07 21:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

# 開(kāi)發(fā)者說(shuō) #

【開(kāi)發(fā)者說(shuō)】欄目是為HarmonyOS開(kāi)發(fā)者提供的展示和分享平臺(tái),在這里,大家可以發(fā)表自己的技術(shù)洞察和見(jiàn)解,也可以展示自己的開(kāi)發(fā)心得和成果。

歡迎大家積極投稿,后臺(tái)回復(fù)【投稿】,即可獲得投稿渠道。期待你們的分享~

01

什么是分布式數(shù)據(jù)對(duì)象

可信組網(wǎng)環(huán)境下,多個(gè)相互組網(wǎng)認(rèn)證的設(shè)備將各自創(chuàng)建的對(duì)象加入同一個(gè)sessionId,使得加入的多個(gè)數(shù)據(jù)對(duì)象之間可以同步數(shù)據(jù),也就是說(shuō),當(dāng)某一數(shù)據(jù)對(duì)象屬性發(fā)生變更時(shí),其他數(shù)據(jù)對(duì)象會(huì)檢測(cè)到這一變更,同時(shí)將自身屬性更新。

此時(shí),該sessionId下的所有數(shù)據(jù)對(duì)象屬性相同,這樣的數(shù)據(jù)對(duì)象稱(chēng)之為分布式數(shù)據(jù)對(duì)象。此外,分布式數(shù)據(jù)對(duì)象可以被動(dòng)退出sessionId,當(dāng)分布式數(shù)據(jù)對(duì)象退出sessionId后,該對(duì)象將檢測(cè)不到其他對(duì)象的變更。

02

分布式數(shù)據(jù)對(duì)象能力

1、分布式數(shù)據(jù)對(duì)象創(chuàng)建2、分布式數(shù)據(jù)對(duì)象查詢(xún)3、分布式數(shù)據(jù)對(duì)象修改4、分布式數(shù)據(jù)對(duì)象刪除5、分布式數(shù)據(jù)對(duì)象保存6、分布式數(shù)據(jù)對(duì)象訂閱(數(shù)據(jù)變更,上下線(xiàn))

7、分布式數(shù)據(jù)對(duì)象加入、退出分布式組網(wǎng)

03

前提準(zhǔn)備

1、開(kāi)發(fā)工具:DevEco Studio 3.1.0.501

2、API9

3、SDK版本3.2.12.504

創(chuàng)建一個(gè)新的項(xiàng)目

新建項(xiàng)目,選擇API9版本,stage模型。

wKgZomVys6-AG0_1AAEXQ0yjzBI034.png05

權(quán)限申請(qǐng)

1、使用到的權(quán)限
  • ohos.permission.DISTRIBUTED_DATASYNC
  • 允許不同設(shè)備間的數(shù)據(jù)交換
  • 權(quán)限級(jí)別:normal
  • 授權(quán)方式:user_grant
  • ACL使能:TRUE

2、配置文件申明

首先,在項(xiàng)目的模塊級(jí)目錄下找到并打開(kāi)module.json5文件,如下圖:

wKgZomVys6-Ac2AbAANDz2HtWlk721.png

在module下的對(duì)象里添加如下申明:

wKgZomVys6-ADikuAAB7_cWlh4w151.png

此時(shí),配置文件中的權(quán)限申明就完成了,但是,此時(shí)我們還不能獲得這些權(quán)限。由于ohos.permission.DISTRIBUTED_DATASYNC權(quán)限是ACL使能為T(mén)RUE的權(quán)限,需要在簽名工具文件中說(shuō)明一下。

如何找到對(duì)應(yīng)的簽名工具文件呢?我們?cè)诎惭bDevEcoStudio的時(shí)候是下載好了OpenHarmony的SDK的,此時(shí)在OpenHarmony文件夾中,打開(kāi) “SdkOpenHarmony SDK版本 oolchainslib” 該路徑,此時(shí)在lib文件夾中,咱們可以找到兩個(gè)json文件,分別為UnsgnedDebugProfileTemplate.json和UnsgnedReleasedProfileTemplate.json,點(diǎn)擊并打開(kāi)這兩個(gè)文件,添加如下權(quán)限:

wKgaomVys6-AEVe-AAB8i3XVu2I513.png

3、權(quán)限申請(qǐng)編碼

在申請(qǐng)ohos.permission.DISTRIBUTED_DATASYNC權(quán)限時(shí),其文檔中將其標(biāo)注為用戶(hù)手動(dòng)授權(quán)的權(quán)限,此時(shí)需要我們動(dòng)態(tài)申請(qǐng)權(quán)限,在項(xiàng)目中,我們新建一個(gè)ets文件,我這里取名為RequestPermission.ets。

首先,導(dǎo)入以下包:

import abilityAccessCtrl, { Permissions } from '@ohos.abilityAccessCtrl';
import bundleManager from '@ohos.bundle.bundleManager';
importcommonfrom'@ohos.app.ability.common';

(左右滑動(dòng)查看更多)

獲取訪(fǎng)問(wèn)控制模塊對(duì)象實(shí)例:

let atManager = abilityAccessCtrl.createAtManager();

(左右滑動(dòng)查看更多

編寫(xiě)如下方法(這里使用的是異步函數(shù)):

export async function checkAccessTokenID(permission: Array) {
  // 獲取應(yīng)用程序的accessTokenID
  let tokenId: number;
  let grantStatus: Array = []
  try {
    let bundleInfo: bundleManager.BundleInfo = await bundleManager.getBundleInfoForSelf(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION);
    let appInfo: bundleManager.ApplicationInfo = bundleInfo.appInfo;
    tokenId = appInfo.accessTokenId;
  } catch (err) {
    console.error(`getBundleInfoForSelf failed, code is ${err.code}, message is ${err.message}`);
  }
  // 校驗(yàn)應(yīng)用是否被授予權(quán)限,若申請(qǐng)多個(gè)權(quán)限,建議循環(huán)檢查多個(gè)權(quán)限
  for (let index = 0;index < permission.length; index++) {
    try {
      grantStatus.push(await atManager.checkAccessToken(tokenId, permission[index]))
    } catch (err) {
      console.error(`checkAccessToken failed, code is ${err.code}, message is ${err.message}`);
    }
  }
  return grantStatus;
}


export async function checkPermission(context: common.UIAbilityContext, permissions: Array) {
  let grantStatus: Array = await checkAccessTokenID(permissions)
  for (let i = 0; i < grantStatus.length; i++) {
    if (grantStatus[i] === abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED) {
      console.info(`${permissions[i].toString()} 已授權(quán)`)
    } else {
      //申請(qǐng)權(quán)限
      console.info('開(kāi)始向用戶(hù)申請(qǐng)權(quán)限')
      requestPermissionFromUser(context, permissions)
    }
  }
}
export async function requestPermissionFromUser(context: common.UIAbilityContext, permissions: Array) {
  // requestPermissionsFromUser會(huì)判斷權(quán)限的授權(quán)狀態(tài)來(lái)決定是否喚起彈窗
  atManager.requestPermissionsFromUser(context, permissions).then((data) => {
    let grantStatus: Array<number> = data.authResults
    let length: number = grantStatus.length
    for (let i = 0;i < length; i++) {
      if (grantStatus[i] === 0) {
        // 用戶(hù)授權(quán),可以繼續(xù)訪(fǎng)問(wèn)目標(biāo)操作
        console.info(`${permissions[i].toString()} 權(quán)限申請(qǐng)成功`)
      } else {
        // 用戶(hù)拒絕授權(quán),提示用戶(hù)必須授權(quán)才能訪(fǎng)問(wèn)當(dāng)前頁(yè)面的功能,并引導(dǎo)用戶(hù)到系統(tǒng)設(shè)置中打開(kāi)相應(yīng)的權(quán)限
        console.info(`${permissions[i].toString()} 權(quán)限申請(qǐng)被用戶(hù)拒絕`)
      }
    }
    // 授權(quán)成功
  })
}

(左右滑動(dòng)查看更多

此時(shí),我們申請(qǐng)權(quán)限的方法就算編寫(xiě)完成了,在應(yīng)用入口,即EntryAbility.ts文件中的

onCreate(want: Want, launchParam: AbilityConstant.LaunchParam)

方法中回調(diào)權(quán)限申請(qǐng)函數(shù):

requestPermissionFromUser(this.context,PERMISSIONS)

其中,PERMISSIONS定義如下:

const

PERMISSIONS:Array=['ohos.permission.DISTRIBUTED_DATASYNC']

到此,我們的權(quán)限申請(qǐng)就算完完全全完成啦,當(dāng)用戶(hù)第一次安裝并打開(kāi)應(yīng)用的時(shí)候,應(yīng)用會(huì)向用戶(hù)通過(guò)彈窗形式申請(qǐng)權(quán)限,用戶(hù)點(diǎn)擊授權(quán)即可賦予應(yīng)用相應(yīng)的權(quán)限啦~06

上手分布式數(shù)據(jù)對(duì)象代碼開(kāi)發(fā)

登錄了同一華為帳號(hào)的HarmonyOS設(shè)備已經(jīng)默認(rèn)了進(jìn)行了組網(wǎng)認(rèn)證,所以在進(jìn)行分布式數(shù)據(jù)對(duì)象開(kāi)發(fā)之前無(wú)需再進(jìn)行多設(shè)備組網(wǎng)認(rèn)證這一階段的開(kāi)發(fā),開(kāi)發(fā)變得相對(duì)簡(jiǎn)單了起來(lái)。

首先,咱們制作一個(gè)簡(jiǎn)易UI界面(UI界面僅供參考),如下圖所示:

wKgZomVys6-ADbPyAACVnGtFZXo950.png

相信對(duì)于有HarmonyOS開(kāi)發(fā)經(jīng)驗(yàn)的小伙伴們來(lái)說(shuō)這樣的UI界面制作并不困難,其中紅色圓點(diǎn)、綠色圓點(diǎn)為設(shè)備狀態(tài),當(dāng)設(shè)備狀態(tài)發(fā)生改變?nèi)缦戮€(xiàn)時(shí),顏色變?yōu)榧t色,UI界面代碼如下:

import router from '@ohos.router'
import { DistributedDeviceManageFunc } from '../modules/DistributedDeviceManager/DistributedDeviceManagerFunctions'
import DistributedObjectFunc from '../modules/DistributedObject/DistributedObjectFunctions'
import { ContinuationDeviceManagerDialog } from '../view/ContinuationDeviceManagerDialog'
import { DistributedDeviceManagerDialog } from '../view/DistributedDeviceManagerDialog'


AppStorage.SetOrCreate('distributedDeviceList', [])
AppStorage.SetOrCreate('message', '分布式數(shù)據(jù)對(duì)象Demo測(cè)試')
AppStorage.SetOrCreate('statusColor', '#ff4fc100')
AppStorage.SetOrCreate('distributedColor', '#ffff0000')


@Entry
@Component
struct DistributedObjectDemo {
  @StorageLink('message') message: string = ''
  @StorageLink('statusColor') statusColor: string = ''
  @StorageLink('distributedColor') distributedColor: string = ''
  @StorageLink('distributedObj') distributedObj: DistributedObjectFunc = new DistributedObjectFunc()


  @Builder
  navigationTitle() {
    Row({ space: '10vp' }) {
      Button({ type: ButtonType.Normal }) {
        Image($rawfile('ic_public_back.svg'))
          .size({
            width: '24vp',
            height: '24vp'
          })
      }
      .width('36vp')
      .height('36vp')
      .backgroundColor(Color.White)
      .borderRadius('10vp')
      .onClick(() => {
        DistributedDeviceManageFunc.release()
        router.back()
      })


      Text('分布式數(shù)據(jù)對(duì)象測(cè)試')
        .fontWeight(FontWeight.Bold)
        .fontSize('20vp')
      Blank()
      Button({ type: ButtonType.Normal }) {
        Image($rawfile('ic_public_connection_filled.svg'))
          .size({
            width: '24vp',
            height: '24vp'
          })
      }
      .width('36vp')
      .height('36vp')
      .backgroundColor(Color.White)
      .borderRadius('10vp')
      .onClick(() => {
        this.distributedDeviceManagerDialogController.open()
      })
    }
    .padding('5vp')
    .width('90%')
  }


  build() {
    Navigation() {
      Column({ space: '20vp' }) {
        Row({ space: '20vp' }) {
          Text(`設(shè)備狀態(tài)`)
            .fontSize('20vp')
            .fontWeight(FontWeight.Bold)
          Circle()
            .width('25vp')
            .height('25vp')
            .fill(this.statusColor)
        }


        Row({ space: '20vp' }) {
          Text(`對(duì)端設(shè)備狀態(tài)`)
            .fontSize('20vp')
            .fontWeight(FontWeight.Bold)
          Circle()
            .width('25vp')
            .height('25vp')
            .fill(this.distributedColor)
        }


        Text(`SessionID:${this.distributedObj.getSessionId()}`)
          .fontSize('20vp')
          .fontWeight(FontWeight.Bold)
        Text(this.message)
          .fontSize('20vp')
          .fontWeight(FontWeight.Bold)
          .maxLines(2)
        Button('保存分布式數(shù)據(jù)對(duì)象')
          .buttonStyles()
          .onClick(() => {
            this.distributedObj.saveDistributedObject()
          })
        Button('修改分布式數(shù)據(jù)對(duì)象')
          .buttonStyles()
          .onClick(() => {
            this.distributedObj.updateDistributedObject()
          })
        Button('退出組網(wǎng)')
          .buttonStyles()
          .onClick(() => {
            this.distributedObj.exit()
            router.back()
          })
      }
      .width('100%')
    }
    .width('100%')
    .height('100%')
    .mode(NavigationMode.Auto)
    .titleMode(NavigationTitleMode.Mini)
    .hideBackButton(true)
    .title(this.navigationTitle())
  }
}


@Extend(Button) function buttonStyles() {
  .fontSize('20vp')
  .width('60%')
  .height('50vp')
}

(左右滑動(dòng)查看更多

現(xiàn)在,我們的頁(yè)面制作就完成啦,下面開(kāi)始重頭戲——分布式數(shù)據(jù)對(duì)象開(kāi)發(fā)流程

1、導(dǎo)入模塊


	
import distributedObject from '@ohos.data.distributedDataObject'

(左右滑動(dòng)查看更多

2、初始化distributedObject. DataObject對(duì)象

定義一個(gè)distributedObject. DataObject類(lèi)型的變量。


	
mDistributedObject: distributedObject.DataObject

(左右滑動(dòng)查看更多

調(diào)用distributedObject. Create()函數(shù)創(chuàng)建一個(gè)distributedObject. DataObject對(duì)象,并將其返回給定義的變量mDistributedObject。


	
this.mDistributedObject = distributedObject.create(globalThis.context, {
  name: 'jack',
  age: 18,
  isVis: false
})

(左右滑動(dòng)查看更多

在create()方法中存在兩個(gè)參數(shù),context和resource,context的類(lèi)型為Context,resource類(lèi)型為object,在這里我是在entryAbility.ts文件下的onWindowStageCreate()方法里面定義了一個(gè)全局變量globalThis.context。


	
globalThis.context = this.context

(左右滑動(dòng)查看更多

3、設(shè)置組網(wǎng)sessionId


	
this.mDistributedObject.setSessionId(this.mSessionId)

(左右滑動(dòng)查看更多

在setSessionId()函數(shù)中,參數(shù)sessionId為string類(lèi)型,表示分布式對(duì)象組網(wǎng)唯一標(biāo)識(shí)符,設(shè)置同步的sessionId,當(dāng)可信組網(wǎng)中有多個(gè)設(shè)備時(shí),多個(gè)設(shè)備間的對(duì)象如果設(shè)置為同一個(gè)sessionId,就能自動(dòng)同步。

4、開(kāi)啟設(shè)備狀態(tài)監(jiān)聽(tīng)

globalThis.statusCallback = (sessionId: string, networkId: string, status: string) => {
  AppStorage.Set('message', `組網(wǎng)設(shè)備狀況變更,id:${sessionId} status:${status} networkId:${networkId}`)
  if (status == 'online') {
    AppStorage.Set('distributedColor', '#ff4fc100')
  } else if (status == 'offline') {
    AppStorage.Set('distributedColor', '#ffff0000')
  }
}
this.mDistributedObject.on("status",globalThis.statusCallback)

(左右滑動(dòng)查看更多

(sessionId: string,networkId: string, status: string)為callback回調(diào)函數(shù)返回的值,我們可以使用這些返回值判斷設(shè)備上下線(xiàn)狀態(tài),其中status參數(shù)返回值為online或者offline,表示設(shè)備對(duì)端設(shè)備上下線(xiàn)。

5、開(kāi)啟分布式數(shù)據(jù)對(duì)象同步監(jiān)聽(tīng)

globalThis.changeCallback = (sessionId: string, fields: Array<string>) => {
  console.info('分布式數(shù)據(jù)對(duì)象發(fā)生變化')
  if (fields != null && fields != undefined) {
    AppStorage.Set('message', `data change:${fields} sessionId:${sessionId}`)
  }
}
this.mDistributedObject.on("change",globalThis.changeCallback)

(左右滑動(dòng)查看更多

當(dāng)同一組網(wǎng)內(nèi)分布式數(shù)據(jù)對(duì)象發(fā)生改變時(shí),同一組網(wǎng)中的所有分布式數(shù)據(jù)對(duì)象同步發(fā)生變化,變化后的值為某一分布式數(shù)據(jù)對(duì)象改變后的值(sessionId: string, fields: Array)為callback回調(diào)函數(shù)返回值,其中,sessionId為組網(wǎng)唯一標(biāo)識(shí)符,field為分布式數(shù)據(jù)對(duì)象的數(shù)據(jù)變更列表。

此時(shí)此刻,分布式數(shù)據(jù)對(duì)象就基本上開(kāi)發(fā)完成啦。

如果有小伙伴想要修改分布式數(shù)據(jù)對(duì)象的屬性,可以直接修改


	
// @ts-ignore
this.mDistributedObject.name = 'lucy'
// @ts-ignore
this.mDistributedObject.age=25

(左右滑動(dòng)查看更多

注意:根據(jù)當(dāng)前版本IDE的編碼插件情況,不能直接寫(xiě)this.mDistributedObject.age = 25,此時(shí)咱們需要加上//@ts-ignore就可以啦。

最后,使用完分布式數(shù)據(jù)對(duì)象后大家要記得釋放資源哦(注銷(xiāo)所有監(jiān)聽(tīng),退出組網(wǎng)sessionId,將分布式數(shù)據(jù)對(duì)象設(shè)置為空值)


	
this.mDistributedObject.off("change")
this.mDistributedObject.off("status")
this.mDistributedObject.setSessionId()
this.mDistributedObject = null
this.mSessionId=null

(左右滑動(dòng)查看更多

如果有小伙伴有兩部或兩部以上的華為設(shè)備,可以將程序燒錄到設(shè)備中,體驗(yàn)一下分布式數(shù)據(jù)對(duì)象能力的快樂(lè)~


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 應(yīng)用開(kāi)發(fā)

    關(guān)注

    0

    文章

    63

    瀏覽量

    9740
  • HarmonyOS
    +關(guān)注

    關(guān)注

    80

    文章

    2126

    瀏覽量

    33151
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    鴻蒙千帆起】《開(kāi)心消消樂(lè)》完成鴻蒙原生應(yīng)用開(kāi)發(fā),創(chuàng)新多端聯(lián)動(dòng)用戶(hù)體驗(yàn)

    更優(yōu)質(zhì)的用戶(hù)體驗(yàn),基于強(qiáng)大的 AI 能力還可以實(shí)現(xiàn)精準(zhǔn)識(shí)別、精確投放,為伙伴提供新流量,并共享全場(chǎng)景服務(wù)分發(fā),助力生態(tài)共贏(yíng)。數(shù)據(jù)顯示,截至今年 8 月份,鴻蒙生態(tài)的設(shè)備數(shù)已超過(guò) 7 億,鴻蒙生態(tài)
    發(fā)表于 01-03 10:22

    HarmonyOS SDK,助力開(kāi)發(fā)者打造煥然一新的鴻蒙原生應(yīng)用

    六大領(lǐng)域的開(kāi)發(fā)能力,為開(kāi)發(fā)者帶來(lái)簡(jiǎn)潔、高效的開(kāi)發(fā)體驗(yàn),開(kāi)發(fā)者只需通過(guò) API 調(diào)用即可實(shí)現(xiàn)豐富的鴻蒙
    發(fā)表于 01-19 10:31

    鴻蒙開(kāi)發(fā)者預(yù)覽版如何?

    原生智能、原生互聯(lián),6大極致原生體驗(yàn)。 我初步閱讀了鴻蒙的源碼后,基本上可以確定是全自研底座,已經(jīng)看不到Android的身影了。作為開(kāi)發(fā)者
    發(fā)表于 02-17 21:54

    HarmonyOS Next 應(yīng)用元服務(wù)開(kāi)發(fā)-分布式數(shù)據(jù)對(duì)象遷移數(shù)據(jù)權(quán)限與基礎(chǔ)數(shù)據(jù)

    設(shè)備文件訪(fǎng)問(wèn)實(shí)現(xiàn)文件的遷移,難以獲取文件同步完成的時(shí)間。為了保證更高的成功率,文件的遷移不建議繼續(xù)通過(guò)該方式實(shí)現(xiàn),推薦使用分布式數(shù)據(jù)對(duì)象攜帶資產(chǎn)的方式。開(kāi)發(fā)者此前通過(guò)跨設(shè)備文件訪(fǎng)問(wèn)實(shí)現(xiàn)
    發(fā)表于 12-24 09:40

    HarmonyOS Next 應(yīng)用元服務(wù)開(kāi)發(fā)-分布式數(shù)據(jù)對(duì)象遷移數(shù)據(jù)文件資產(chǎn)遷移

    設(shè)備文件訪(fǎng)問(wèn)實(shí)現(xiàn)文件的遷移,難以獲取文件同步完成的時(shí)間。為了保證更高的成功率,文件的遷移不建議繼續(xù)通過(guò)該方式實(shí)現(xiàn),推薦使用分布式數(shù)據(jù)對(duì)象攜帶資產(chǎn)的方式。開(kāi)發(fā)者此前通過(guò)跨設(shè)備文件訪(fǎng)問(wèn)實(shí)現(xiàn)
    發(fā)表于 12-24 10:11

    華為鴻蒙—時(shí)代的開(kāi)啟

    總線(xiàn)技術(shù)”通過(guò)公共通信平臺(tái),分布式數(shù)據(jù)管理,分布式能力調(diào)度和虛擬外設(shè)四大能力。將相應(yīng)分布式應(yīng)用的底層技術(shù)實(shí)現(xiàn)難度對(duì)應(yīng)用開(kāi)發(fā)者屏蔽,使
    發(fā)表于 09-03 11:19

    HarmonyOS應(yīng)用開(kāi)發(fā)-分布式設(shè)計(jì)

    不同終端設(shè)備之間的極速連接、硬件協(xié)同、資源共享,為用戶(hù)提供最佳的場(chǎng)景體驗(yàn)。分布式設(shè)計(jì)指南可以幫助應(yīng)用開(kāi)發(fā)者了解如何充分發(fā)揮“One Super Device”的能力,提供獨(dú)特的跨設(shè)備交互體驗(yàn)。說(shuō)明:本設(shè)計(jì)指南后續(xù)舉例中將包括手機(jī)、智慧屏、手表等多種設(shè)備,其中手機(jī)均指 EM
    發(fā)表于 09-22 17:11

    HarmonyOS分布式數(shù)據(jù)庫(kù),為啥這么牛?

    HarmonyOS 2.0 重要的三大核心技術(shù)底座之一:HarmonyOS 分布式數(shù)據(jù)管理平臺(tái),也同步對(duì)開(kāi)發(fā)者進(jìn)行了細(xì)致的宣講,我作為開(kāi)發(fā)者有幸參與聆聽(tīng)了相關(guān)議題介紹。
    發(fā)表于 11-19 15:38

    絕對(duì)干貨!HarmonyOS開(kāi)發(fā)者日資料全公開(kāi),鴻蒙開(kāi)發(fā)者都在看

    應(yīng)用開(kāi)發(fā)模板,分布式調(diào)試調(diào)優(yōu),上架開(kāi)發(fā)規(guī)范解讀等。6、HarmonyOS 分布式應(yīng)用框架深入解讀:該主題深度解析HarmonyOS分布式應(yīng)用
    發(fā)表于 08-04 14:36

    分布式數(shù)據(jù)對(duì)象:超級(jí)終端的"全局變量"

    設(shè)備訪(fǎng)問(wèn)這些變量就能像操作本地變量一樣,數(shù)據(jù)就能夠自動(dòng)高效、便捷地實(shí)現(xiàn)多端同步了。為此,本次 OpenHarmony v3.1 Release 版本新增了分布式數(shù)據(jù)對(duì)象特性。
    發(fā)表于 06-09 15:18

    開(kāi)發(fā)者說(shuō)】XstoryMaker快速書(shū)寫(xiě)劇本場(chǎng)景動(dòng)畫(huà)

    。 我在開(kāi)發(fā)XstoryMaker關(guān)于視覺(jué)小說(shuō)的分布式流轉(zhuǎn)的時(shí)候根本沒(méi)有感受到這是兩臺(tái)設(shè)備在做數(shù)據(jù)傳輸?shù)?b class='flag-5'>開(kāi)發(fā),兩個(gè)端的開(kāi)發(fā)代碼只需要按照一個(gè)
    發(fā)表于 09-14 12:04

    鴻蒙原生應(yīng)用/元服務(wù)開(kāi)發(fā)-開(kāi)發(fā)者如何進(jìn)行真機(jī)測(cè)試

    前提條件:已經(jīng)完成鴻蒙原生應(yīng)用/元服務(wù)開(kāi)發(fā),已經(jīng)能相對(duì)熟練使用DevEco Studio,開(kāi)發(fā)者自己有鴻蒙4.0及以上的真機(jī)設(shè)備。 真機(jī)測(cè)試
    發(fā)表于 11-30 09:46

    鴻蒙原生應(yīng)用開(kāi)發(fā)——分布式數(shù)據(jù)對(duì)象

    01、什么是分布式數(shù)據(jù)對(duì)象 在可信組網(wǎng)環(huán)境下,多個(gè)相互組網(wǎng)認(rèn)證的設(shè)備將各自創(chuàng)建的對(duì)象加入同一個(gè) sessionId,使得加入的多個(gè)數(shù)據(jù)
    發(fā)表于 12-08 10:01

    華為開(kāi)發(fā)者大會(huì)2022主題演講:分布式安全

    華為開(kāi)發(fā)者大會(huì)2022主題演講:分布式安全:分布式(設(shè)備}安全、分布式(數(shù)據(jù)}安全、分布式{協(xié)同
    的頭像 發(fā)表于 11-04 15:20 ?1125次閱讀
    華為<b class='flag-5'>開(kāi)發(fā)者</b>大會(huì)2022主題演講:<b class='flag-5'>分布式</b>安全

    開(kāi)發(fā)者的開(kāi)源鴻蒙故事

    近日,在以“一切為了開(kāi)發(fā)者”為主題的“2024開(kāi)放原子開(kāi)發(fā)者大會(huì)暨首屆開(kāi)源技術(shù)學(xué)術(shù)大會(huì)”上,開(kāi)源鴻蒙5.0 Release版本正式發(fā)布,備受各方關(guān)注。該版本在系統(tǒng)完備度、分布式創(chuàng)新、
    的頭像 發(fā)表于 01-06 10:28 ?882次閱讀