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

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

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

3天內不再提示

基于HarmonyOS的分鏡頭App開發技術詳解

HarmonyOS開發者 ? 來源:HarmonyOS開發者 ? 作者:HarmonyOS ? 2021-08-26 17:59 ? 次閱讀

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

以下將為大家分享該款應用的開發者殷冬的開發心得。

一,HarmonyOS技術使用

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

分布式文件服務

利用分布式文件服務,可以自動同步其他設備拍攝的照片和視頻,實現分布式相冊功能。

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

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

分布式硬件虛擬化

分布式硬件虛擬化的特性,可以調用其他設備的硬件,實現相關的功能。在《分鏡頭App》中,調用其他設備的相機畫面,就用到了分布式硬件虛擬化。并且可以控制拍攝畫面的比例,實現不一樣的拍攝效果。

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

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

由此,就在代碼編輯層面實現了硬件虛擬化。

分布式數據服務

在《分鏡頭App》中,有很多的協同操作。協同操作的核心邏輯,利用了分布式數據服務的數據變更通知功能。當一個設備觸發協同操作時,通過變更通知,從設備觸發UI和效果的變化,實現分布式協同功能。

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

數據庫初始化:

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

數據庫變更監聽:

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

分布式相冊實現

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

在拍攝完成時,通過公共事件功能發送一條廣播。

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

分布式文件服務負責同步拍攝的照片、視頻等信息,公共事件通知則主動進行頁面的刷新,二者合用,實現動態添加的效果。

二、多設備協同實現

目標設備未打開協同頁面問題處理

多設備協同實際上有個隱藏的前提,那就是所有設備都處于同一個協同頁面中。這需要處理目標設備不在協同頁面的問題。

此時可以創建一個單版本分布式數據庫,key值為設備id,value值為協同頁面是否啟動true/false。當進入到協同頁面時,在onStart方法中設置值為true。當退出頁面時,在onInactive方法中設置值為false。

在發起協同前,可以通過單版本分布式數據庫,獲取到目標設備是否啟動了協同頁面。

如果沒有啟動,可以先通過abilitySlice.startAbility()將目標設備拉起,進入到協同頁面,然后再進入協同狀態。

如果目標設備已經處于協同頁面,就可以直接進入到協同狀態。

統一管理分布式操作

由于分布式數據服務每個應用最多同時打開16個KvStore,所以不能每一個協同操作都使用一個數據庫。這里可以在value值上做文章,以實現通過一個分布式數據庫,就可以實現一個頁面中的多個操作的協同。

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

其次,需要創建一個實體類。成員變量中,需要有兩個基礎變量:

operationType:int型,當前協同操作的類型;

targetDeviceId:List《String》,需要協同的設備id數組;

operationType字段主要是用來區分當前的操作類型,這樣方便調用相同的功能進行協同操作。targetDeviceId主要是存儲向哪些設備發起協同操作,可以通過判斷本設備id是否在數組當中,如果不存在,就不做任何操作。

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

被調用方需要為分布式數據庫,綁定數據變更監聽。這樣,其他設備添加或修改數據的時候,就會觸發監聽。監聽類型要設備其他設備觸發的變化,這樣可以避免本地修改也會觸發本地的監聽的問題。

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

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

然后進行判斷,是否需要本設備進行協同。

當本設備需要協同時,可以通過switch根據操作類型,調用不同的方法進行協同即可。

總結

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

責任編輯:haq

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

    關注

    33

    文章

    1575

    瀏覽量

    72570
  • 分布式
    +關注

    關注

    1

    文章

    910

    瀏覽量

    74559
  • 鴻蒙系統
    +關注

    關注

    183

    文章

    2636

    瀏覽量

    66447
  • HarmonyOS
    +關注

    關注

    79

    文章

    1980

    瀏覽量

    30282

原文標題:開發者說: 分鏡頭App分布式開發技術詳解

文章出處:【微信號:HarmonyOS_Dev,微信公眾號:HarmonyOS開發者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    HarmonyOS第一課》煥新升級,賦能開發者快速掌握鴻蒙應用開發

    HarmonyOS第一課》煥新升級,賦能開發者快速掌握鴻蒙應用開發 隨著HarmonyOS NEXT發布,鴻蒙生態日益壯大,廣大開發者對于
    發表于 01-02 14:24

    HarmonyOS開發指導類文檔更新速遞(下)

    伴隨著HarmonyOS 5.0.0 Release、HarmonyOS 5.0.1 Release版本的發布,HarmonyOS官網文檔也帶來了不少上新內容。本期HarmonyOS
    的頭像 發表于 12-30 09:54 ?108次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發</b>指導類文檔更新速遞(下)

    HarmonyOS開發指導類文檔更新速遞(上)

    伴隨著HarmonyOS 5.0.0 Release版本的發布,HarmonyOS官網文檔也帶來了不少上新內容。本期HarmonyOS NEXT開發者資料直通車將從文檔更新角度為
    的頭像 發表于 12-30 09:50 ?99次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發</b>指導類文檔更新速遞(上)

    AICon北京站HarmonyOS技術分論壇開啟招募,歡迎開發者踴躍報名

    在人工智能的浪潮中,HarmonyOS以其獨特的技術優勢,引領著移動應用開發的新趨勢。2024年12月14日,在AICon全球人工智能開發與應用大會(北京站)期間 ,將舉辦以“鴻蒙生態
    的頭像 發表于 12-11 16:39 ?189次閱讀
    AICon北京站<b class='flag-5'>HarmonyOS</b><b class='flag-5'>技術</b>分論壇開啟招募,歡迎<b class='flag-5'>開發</b>者踴躍報名

    AICon北京站HarmonyOS技術分論壇開啟招募

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

    HarmonyOS開發寶典震撼來襲,卓越應用開發之旅一觸即發,輕松啟程!

    HarmonyOS賦能產品,全面護航開發者從HarmonyOS感知、學習進階、開發實踐至技術支持的全旅程,助力
    發表于 12-05 08:57

    PRU開發詳解

    電子發燒友網站提供《PRU開發詳解.pdf》資料免費下載
    發表于 09-05 11:27 ?0次下載
    PRU<b class='flag-5'>開發</b><b class='flag-5'>詳解</b>

    慶科信息獲HarmonyOS高級應用開發能力認證!助力品牌快速打造鴻蒙原生應用

    近日,上海慶科信息技術有限公司榮獲HarmonyOS應用開發者高級認證,公司在華為鴻蒙生態的開發能力得到進一步拓展,能夠幫助客戶快速開發基于
    的頭像 發表于 07-17 13:24 ?609次閱讀
    慶科信息獲<b class='flag-5'>HarmonyOS</b>高級應用<b class='flag-5'>開發</b>能力認證!助力品牌快速打造鴻蒙原生應用

    紅外熱成像設備光學鏡頭詳解

    紅外熱成像儀的工作原理詳解紅外熱成像設備的工作原理相當直接且簡潔。它的工作過程包括以下幾個關鍵步驟:紅外輻射的感知——紅外鏡頭紅外熱成像鏡頭的主要功能之一就是捕捉這些發出的紅外輻射。這是通過
    的頭像 發表于 06-13 12:13 ?472次閱讀
    紅外熱成像設備光學<b class='flag-5'>鏡頭</b><b class='flag-5'>詳解</b>

    華為HarmonyOS Next支持企業應用安裝,無須App Store審核

    華為宣布推出HarmonyOS開發者指南,明確表示開發人員可以利用專用的內部發行證書和Profile編譯打包其應用,然后將應用包及其描述文件上傳至服務器或第三方云端,供用戶直接下載安裝。
    的頭像 發表于 05-18 11:44 ?1488次閱讀

    HarmonyOS開發案例:【購物車app

    OpenHarmony ArkUI框架提供了豐富的動畫組件和接口,開發者可以根據實際場景和開發需求,選用豐富的動畫組件和接口來實現不同的動畫效果。
    的頭像 發表于 05-14 18:19 ?1089次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發</b>案例:【購物車<b class='flag-5'>app</b>】

    廣告電商+超級云APP結合 # 軟件開發# 模式開發# 小程序開發# App開發

    軟件開發APP
    jf_01576396
    發布于 :2024年04月09日 17:42:13

    HarmonyOS開發技術全面分析

    的快速連接、能力互助、資源共享,匹配合適的設備、提供流暢的全場景體驗。 ? 對應用開發者而言, HarmonyOS 采用了多種分布式技術,使得應用程序的開發實現與不同終端設備的形態差異
    發表于 02-21 16:31

    淘寶與華為合作將基于HarmonyOS NEXT啟動鴻蒙原生應用開發

    1月25日,淘寶與華為舉辦鴻蒙合作簽約儀式,宣布將基于HarmonyOS NEXT啟動鴻蒙原生應用開發
    的頭像 發表于 01-26 16:14 ?1150次閱讀

    持續構建行業影響力|HarmonyOS SDK榮膺年度“技術卓越”獎項

    應用,和開發者共同成長。 通過在開發者社區和 HarmonyOS 開發者持續的內容共創與技術交流互動,
    發表于 01-12 09:33
    主站蜘蛛池模板: 97影院3| 神马午夜98| 欧美成人xxxx| 免费在线黄网站| 伦理一区二区三区| 精品三级内地国产在线观看| 狠色网| 成人99| 天天操天天干天天爽| 免费看黄色的网站| ak福利午夜在线观看| 在线成人免费观看国产精品| 91九色麻豆| 天堂视频免费| 日本欧美色图| 久操视频免费看| 久久人人视频| 啪啪免费小视频| 男女在线观看视频| 亚洲第一区二区快射影院| 色婷婷欧美| 黄色免费在线网站| 人人插人人费| 加勒比综合| 亚洲黄色一区| 国产午夜精品福利久久| ggg成人| 伊人成人在线观看| 三级三级三级网站网址| 四虎国产成人亚洲精品| 欧美日韩性猛交xxxxx免费看| 国产精品欧美久久久久天天影视| 偷偷鲁影院手机在线观看| sss欧美华人整片在线观看| 日本一区二区视频在线观看| 天天视频色版| 黄色网大全| 天天操天天干天天爱| 丁香五月缴情综合网| 性色综合| 狠狠色狠狠色|