亚洲精品久久久久久久久久久,亚洲国产精品一区二区制服,亚洲精品午夜精品,国产成人精品综合在线观看,最近2019中文字幕一页二页

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

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

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

基于HarmonyOS的分鏡頭App開發(fā)技術(shù)詳解

HarmonyOS開發(fā)者 ? 來源:HarmonyOS開發(fā)者 ? 作者:HarmonyOS ? 2021-08-26 17:59 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

《分鏡頭App》的創(chuàng)作靈感來源于殷冬的日常觀察,他發(fā)現(xiàn)平常人們在自拍時(shí),往往會用前置攝像頭,由于像素、取景景別等因素的限制,前攝拍出來的效果往往不是很理想;此外,當(dāng)我們幫別人拍照時(shí),對方也無法實(shí)時(shí)看到照片的取景角度和構(gòu)圖,拍出來的照片也很難讓對方滿意;對于照片的分享和美化,更是眾口難調(diào)。為了解決這些痛點(diǎn),提升用戶的拍照體驗(yàn),經(jīng)過不斷摸索,殷冬發(fā)現(xiàn)HarmonyOS的分布式技術(shù)有著很大的應(yīng)用潛力。于是他基于HarmonyOS從0到1完成了《分鏡頭App》的開發(fā)。

以下將為大家分享該款應(yīng)用的開發(fā)者殷冬的開發(fā)心得。

一,HarmonyOS技術(shù)使用

《分鏡頭App》主要用到了分布式文件服務(wù)、分布式硬件虛擬化、以及分布式數(shù)據(jù)服務(wù)。

分布式文件服務(wù)

利用分布式文件服務(wù),可以自動同步其他設(shè)備拍攝的照片和視頻,實(shí)現(xiàn)分布式相冊功能。

起初殷冬以為分布式文件服務(wù)使用起來會很復(fù)雜,例如是否需要自己控制同步、初始化功能等等。而真正接觸后他發(fā)現(xiàn),在底層上,分布式文件服務(wù)已經(jīng)將復(fù)雜的工作都處理好了,只需用一行代碼,就可以使用分布式文件服務(wù),就相當(dāng)于調(diào)用本地文件系統(tǒng)一樣,只不過再繼續(xù)向下,底層會幫助開發(fā)者處理很多業(yè)務(wù)。

c86e7baa-f3a8-11eb-9bcf-12bb97331649.png

分布式硬件虛擬化

分布式硬件虛擬化的特性,可以調(diào)用其他設(shè)備的硬件,實(shí)現(xiàn)相關(guān)的功能。在《分鏡頭App》中,調(diào)用其他設(shè)備的相機(jī)畫面,就用到了分布式硬件虛擬化。并且可以控制拍攝畫面的比例,實(shí)現(xiàn)不一樣的拍攝效果。

殷冬最初接觸硬件虛擬化這個概念的時(shí)候,只是知道是基于分布式軟總線實(shí)現(xiàn)的虛擬化,至于怎么使用,并不是很清楚,后來通過深入的學(xué)習(xí)發(fā)現(xiàn),主動調(diào)用其他設(shè)備的接口,可以使用分布式任務(wù)調(diào)度或者IDL接口兩種方法實(shí)現(xiàn)。而分布式任務(wù)調(diào)度和IDL接口,都可以傳遞實(shí)現(xiàn)Sequenceable接口的實(shí)現(xiàn)類對象。

而硬件功能關(guān)鍵類都實(shí)現(xiàn)了Sequenceable接口,比如:相機(jī)預(yù)覽畫面的關(guān)鍵類Surface,就實(shí)現(xiàn)了Sequenceable接口。因此可以通過IDL將設(shè)備A的Surface對象,以參數(shù)的形式,傳遞到設(shè)備B。設(shè)備B的Service Ability執(zhí)行相機(jī)初始化操作,就可以拿到設(shè)備B相機(jī)的拍攝畫面。

由此,就在代碼編輯層面實(shí)現(xiàn)了硬件虛擬化。

分布式數(shù)據(jù)服務(wù)

在《分鏡頭App》中,有很多的協(xié)同操作。協(xié)同操作的核心邏輯,利用了分布式數(shù)據(jù)服務(wù)的數(shù)據(jù)變更通知功能。當(dāng)一個設(shè)備觸發(fā)協(xié)同操作時(shí),通過變更通知,從設(shè)備觸發(fā)UI和效果的變化,實(shí)現(xiàn)分布式協(xié)同功能。

分布式數(shù)據(jù)服務(wù)有兩個功能,可以為開發(fā)者帶來很大的便捷。第一個是多端數(shù)據(jù)同步功能,當(dāng)通過一個設(shè)備修改了數(shù)據(jù)庫中的數(shù)據(jù),其他設(shè)備也會做同步。第二個是在添加、修改、刪除數(shù)據(jù)庫數(shù)據(jù)時(shí),其他設(shè)備如果創(chuàng)建了數(shù)據(jù)庫的鏈接,并綁定了數(shù)據(jù)變更監(jiān)聽時(shí),就會觸發(fā)該監(jiān)聽。開發(fā)者可以利用這兩個功能特性,做多端的協(xié)同功能。

數(shù)據(jù)庫初始化:

c8ac37d8-f3a8-11eb-9bcf-12bb97331649.png

數(shù)據(jù)庫變更監(jiān)聽:

c8df0d3e-f3a8-11eb-9bcf-12bb97331649.png

分布式相冊實(shí)現(xiàn)

相冊主要存儲圖片、視頻文件,可以使用分布式文件服務(wù)進(jìn)行存儲。此項(xiàng)功能殷冬還需要實(shí)現(xiàn)動態(tài)添加的效果,即:其他設(shè)備拍攝時(shí),本機(jī)的相冊列表動態(tài)顯示剛剛拍攝的照片縮略圖。這種效果可以在確定使用分布式文件服務(wù)存儲照片和視頻后,使用HarmonyOS的公共事件與通知功能,從而實(shí)現(xiàn)動態(tài)加載的效果。

在拍攝完成時(shí),通過公共事件功能發(fā)送一條廣播。

同時(shí),在相冊模塊,注冊公共事件,用于處理接收到通知后的動態(tài)添加縮略圖邏輯。

分布式文件服務(wù)負(fù)責(zé)同步拍攝的照片、視頻等信息,公共事件通知則主動進(jìn)行頁面的刷新,二者合用,實(shí)現(xiàn)動態(tài)添加的效果。

二、多設(shè)備協(xié)同實(shí)現(xiàn)

目標(biāo)設(shè)備未打開協(xié)同頁面問題處理

多設(shè)備協(xié)同實(shí)際上有個隱藏的前提,那就是所有設(shè)備都處于同一個協(xié)同頁面中。這需要處理目標(biāo)設(shè)備不在協(xié)同頁面的問題。

此時(shí)可以創(chuàng)建一個單版本分布式數(shù)據(jù)庫,key值為設(shè)備id,value值為協(xié)同頁面是否啟動true/false。當(dāng)進(jìn)入到協(xié)同頁面時(shí),在onStart方法中設(shè)置值為true。當(dāng)退出頁面時(shí),在onInactive方法中設(shè)置值為false。

在發(fā)起協(xié)同前,可以通過單版本分布式數(shù)據(jù)庫,獲取到目標(biāo)設(shè)備是否啟動了協(xié)同頁面。

如果沒有啟動,可以先通過abilitySlice.startAbility()將目標(biāo)設(shè)備拉起,進(jìn)入到協(xié)同頁面,然后再進(jìn)入?yún)f(xié)同狀態(tài)。

如果目標(biāo)設(shè)備已經(jīng)處于協(xié)同頁面,就可以直接進(jìn)入到協(xié)同狀態(tài)。

統(tǒng)一管理分布式操作

由于分布式數(shù)據(jù)服務(wù)每個應(yīng)用最多同時(shí)打開16個KvStore,所以不能每一個協(xié)同操作都使用一個數(shù)據(jù)庫。這里可以在value值上做文章,以實(shí)現(xiàn)通過一個分布式數(shù)據(jù)庫,就可以實(shí)現(xiàn)一個頁面中的多個操作的協(xié)同。

首先,可以使用一個常量作為分布式協(xié)同數(shù)據(jù)庫的key。每次put時(shí),都使用這個常量作為key,以替換之前的數(shù)據(jù)。

其次,需要創(chuàng)建一個實(shí)體類。成員變量中,需要有兩個基礎(chǔ)變量:

operationType:int型,當(dāng)前協(xié)同操作的類型;

targetDeviceId:List《String》,需要協(xié)同的設(shè)備id數(shù)組;

operationType字段主要是用來區(qū)分當(dāng)前的操作類型,這樣方便調(diào)用相同的功能進(jìn)行協(xié)同操作。targetDeviceId主要是存儲向哪些設(shè)備發(fā)起協(xié)同操作,可以通過判斷本設(shè)備id是否在數(shù)組當(dāng)中,如果不存在,就不做任何操作。

此時(shí)需要將實(shí)體類轉(zhuǎn)換成字符串,再存儲到分布式協(xié)同數(shù)據(jù)庫中。因此,可以通過JSONObject.toJSONString(),將實(shí)體類轉(zhuǎn)換成字符串并進(jìn)行存儲。

被調(diào)用方需要為分布式數(shù)據(jù)庫,綁定數(shù)據(jù)變更監(jiān)聽。這樣,其他設(shè)備添加或修改數(shù)據(jù)的時(shí)候,就會觸發(fā)監(jiān)聽。監(jiān)聽類型要設(shè)備其他設(shè)備觸發(fā)的變化,這樣可以避免本地修改也會觸發(fā)本地的監(jiān)聽的問題。

在監(jiān)聽中就可以處理協(xié)同的功能。首先要判斷變更的數(shù)據(jù)是否為空,避免后續(xù)出錯。然后可以將key的json值取出,并做非空判斷。

接下來需要將json字符串轉(zhuǎn)換成實(shí)體類,便于后續(xù)操作。這里可以使用JSONArray.parseObject(json, class)進(jìn)行轉(zhuǎn)換。

然后進(jìn)行判斷,是否需要本設(shè)備進(jìn)行協(xié)同。

當(dāng)本設(shè)備需要協(xié)同時(shí),可以通過switch根據(jù)操作類型,調(diào)用不同的方法進(jìn)行協(xié)同即可。

總結(jié)

殷冬通過官方文檔、論壇、HarmonyOS技術(shù)社區(qū)等途徑,系統(tǒng)的學(xué)習(xí)和了解HarmonyOS的特性,最終開發(fā)了本次大賽的《分鏡頭App》作品。未來,他還將持續(xù)深入了解HarmonyOS,嘗試開發(fā)更為有趣的HarmonyOS分布式應(yīng)用,也期待更多開發(fā)者加入到HarmonyOS生態(tài),一起創(chuàng)造無限可能!

責(zé)任編輯:haq

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

    關(guān)注

    33

    文章

    1588

    瀏覽量

    75518
  • 分布式
    +關(guān)注

    關(guān)注

    1

    文章

    1050

    瀏覽量

    76300
  • 鴻蒙系統(tǒng)
    +關(guān)注

    關(guān)注

    183

    文章

    2642

    瀏覽量

    69231
  • HarmonyOS
    +關(guān)注

    關(guān)注

    80

    文章

    2144

    瀏覽量

    35371

原文標(biāo)題:開發(fā)者說: 分鏡頭App分布式開發(fā)技術(shù)詳解

文章出處:【微信號:HarmonyOS_Dev,微信公眾號:HarmonyOS開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    QCon·上海站HarmonyOS開發(fā)技術(shù)分論壇:共探鴻蒙開發(fā)新機(jī)遇

    當(dāng)前,AI 技術(shù)重構(gòu)開發(fā)邏輯、多設(shè)備協(xié)同成為技術(shù)主流,鴻蒙開發(fā)能力正迎來從“能用好用”到“實(shí)用便捷”的關(guān)鍵躍遷。10月24日,2025年QCon全球軟件
    的頭像 發(fā)表于 10-24 15:59 ?559次閱讀
    QCon·上海站<b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發(fā)</b>者<b class='flag-5'>技術(shù)</b>分論壇:共探鴻蒙<b class='flag-5'>開發(fā)</b>新機(jī)遇

    HarmonyOS折疊屏鏡頭切換應(yīng)用實(shí)踐

    在2025華為開發(fā)者大會的圖片和相機(jī)分論壇上,美顏相機(jī)分享了如何通過折疊屏鏡頭適配,打造多端一致的拍攝體驗(yàn)。隨著華為折疊屏產(chǎn)品的不斷豐富,相機(jī)開發(fā)在折疊屏上也面臨獨(dú)特技術(shù)難題,
    的頭像 發(fā)表于 08-27 16:35 ?701次閱讀
    <b class='flag-5'>HarmonyOS</b>折疊屏<b class='flag-5'>鏡頭</b>切換應(yīng)用實(shí)踐

    HarmonyOS 5】鴻蒙應(yīng)用隱私保護(hù)詳解

    HarmonyOS 5】鴻蒙應(yīng)用隱私保護(hù)詳解 ##鴻蒙開發(fā)能力 ##HarmonyOS SDK應(yīng)用服務(wù)##鴻蒙金融類應(yīng)用 (金融理財(cái)# 一、前言 在今天這個手機(jī)不離手的時(shí)代,我們每天
    的頭像 發(fā)表于 07-11 18:30 ?837次閱讀

    HarmonyOS 5】鴻蒙中進(jìn)度條的使用詳解

    HarmonyOS 5】鴻蒙中進(jìn)度條的使用詳解 ##鴻蒙開發(fā)能力 ##HarmonyOS SDK應(yīng)用服務(wù)##鴻蒙金融類應(yīng)用 (金融理財(cái)# 一、Ha
    的頭像 發(fā)表于 07-11 18:26 ?593次閱讀
    【<b class='flag-5'>HarmonyOS</b> 5】鴻蒙中進(jìn)度條的使用<b class='flag-5'>詳解</b>

    HarmonyOS 5】鴻蒙星閃NearLink詳解

    HarmonyOS 5】鴻蒙星閃NearLink詳解 ##鴻蒙開發(fā)能力 ##HarmonyOS SDK應(yīng)用服務(wù)##鴻蒙金融類應(yīng)用 (金融理財(cái)# 一、前言 鴻蒙星閃NearLink K
    的頭像 發(fā)表于 07-11 18:24 ?1251次閱讀
    【<b class='flag-5'>HarmonyOS</b> 5】鴻蒙星閃NearLink<b class='flag-5'>詳解</b>

    HarmonyOS 5】鴻蒙mPaaS詳解

    HarmonyOS 5】鴻蒙mPaaS詳解 ##鴻蒙開發(fā)能力 ##HarmonyOS SDK應(yīng)用服務(wù)##鴻蒙金融類應(yīng)用 (金融理財(cái)# 一、mPaaS是什么? mPaaS 是 Mobi
    的頭像 發(fā)表于 07-11 18:23 ?582次閱讀
    【<b class='flag-5'>HarmonyOS</b> 5】鴻蒙mPaaS<b class='flag-5'>詳解</b>

    HarmonyOS 5】鴻蒙中的UIAbility詳解(二)

    HarmonyOS 5】鴻蒙中的UIAbility詳解(二) ##鴻蒙開發(fā)能力 ##HarmonyOS SDK應(yīng)用服務(wù)##鴻蒙金融類應(yīng)用 (金融理財(cái)# 一、前言 今天我們繼續(xù)深入講解
    的頭像 發(fā)表于 07-11 18:17 ?604次閱讀
    【<b class='flag-5'>HarmonyOS</b> 5】鴻蒙中的UIAbility<b class='flag-5'>詳解</b>(二)

    HarmonyOS 代碼工坊的指尖開發(fā),讓 APP 開發(fā)所見即所得

    沙盤被直接搬入了移動設(shè)備本身。眼尖的開發(fā)者應(yīng)該已經(jīng)發(fā)現(xiàn),最近華為應(yīng)用市場“應(yīng)用嘗鮮”專區(qū)里,上架了一款名為“HarmonyOS 代碼工坊”的新應(yīng)用,下載量持續(xù)攀升。 開發(fā)者只需要下載“Harm
    的頭像 發(fā)表于 06-24 12:08 ?550次閱讀
    <b class='flag-5'>HarmonyOS</b> 代碼工坊的指尖<b class='flag-5'>開發(fā)</b>,讓 <b class='flag-5'>APP</b> <b class='flag-5'>開發(fā)</b>所見即所得

    HarmonyOS 5】桌面快捷方式功能實(shí)現(xiàn)詳解

    HarmonyOS 5】桌面快捷方式功能實(shí)現(xiàn)詳解 ##鴻蒙開發(fā)能力 ##HarmonyOS SDK應(yīng)用服務(wù)##鴻蒙金融類應(yīng)用 (金融理財(cái)# 一、前言 在移動應(yīng)用
    的頭像 發(fā)表于 06-21 16:42 ?1582次閱讀
    【<b class='flag-5'>HarmonyOS</b> 5】桌面快捷方式功能實(shí)現(xiàn)<b class='flag-5'>詳解</b>

    HarmonyOS 5】VisionKit人臉活體檢測詳解

    HarmonyOS 5】VisionKit人臉活體檢測詳解 ##鴻蒙開發(fā)能力 ##HarmonyOS SDK應(yīng)用服務(wù)##鴻蒙金融類應(yīng)用 (金融理財(cái)# 一、VisionKit人臉活體
    的頭像 發(fā)表于 06-21 11:52 ?575次閱讀
    【<b class='flag-5'>HarmonyOS</b> 5】VisionKit人臉活體檢測<b class='flag-5'>詳解</b>

    HarmonyOS 5 makeObserved接口詳解

    HarmonyOS 5】makeObserved接口詳解 ##鴻蒙開發(fā)能力 ##HarmonyOS SDK應(yīng)用服務(wù)##鴻蒙金融類應(yīng)用 (金融理財(cái)# 一、makeObserved接口
    的頭像 發(fā)表于 06-16 17:58 ?482次閱讀

    HarmonyOS 5】鴻蒙中的UIAbility詳解(三)

    HarmonyOS 5】鴻蒙中的UIAbility詳解(三) ##鴻蒙開發(fā)能力 ##HarmonyOS SDK應(yīng)用服務(wù)##鴻蒙金融類應(yīng)用 (金融理財(cái)# 一、前言 本文是鴻蒙中的UIA
    的頭像 發(fā)表于 06-14 22:32 ?404次閱讀

    HarmonyOS 5】App Linking 應(yīng)用間跳轉(zhuǎn)詳解

    ? 目錄 什么是 App Linking 使用場景 工作原理 如何開發(fā) 1.開通 App Linking 2.確定域名 3.服務(wù)端部署 applinking.json 文件 4.AGC綁定域名
    發(fā)表于 05-16 16:24

    AICon北京站HarmonyOS技術(shù)分論壇開啟招募

    AICon北京站HarmonyOS技術(shù)分論壇將于2024年12月14日在北京與廣大開發(fā)者見面。歡迎各位開發(fā)者踴躍報(bào)名,與技術(shù)專家現(xiàn)場交流,感
    發(fā)表于 12-11 09:38

    HarmonyOS開發(fā)寶典震撼來襲,卓越應(yīng)用開發(fā)之旅一觸即發(fā),輕松啟程!

    HarmonyOS賦能產(chǎn)品,全面護(hù)航開發(fā)者從HarmonyOS感知、學(xué)習(xí)進(jìn)階、開發(fā)實(shí)踐至技術(shù)支持的全旅程,助力
    發(fā)表于 12-05 08:57