国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

如何實現跨設備的雙向連接? Labo涂鴉鴻蒙親子版分布式開發技術分享

話說科技 ? 2021-07-02 17:07 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

近期,首屆HarmonyOS開發者創新大賽正式落下帷幕。大賽共歷時5個月,超過3000支隊伍的10000多名選手參賽,25000多位開發者參與了大賽學習,最終23支參賽隊伍斬獲獎項,產出了多款有創新、有創意、有價值的優秀作品。其中由“Labo Lado兒童藝術創想”團隊打造的《Labo涂鴉鴻蒙親子版》就是其中之一,其創造性地通過HarmonyOS分布式技術,實現了多設備下的親子互動涂鴉功能,最終摘得大賽一等獎。

在很早以前,“Labo Lado兒童藝術創想”團隊就做過一款涂鴉游戲的應用,該應用可以讓孩子和父母在一個平板或者手機上進行繪畫比賽,比賽的方式就是屏幕一分為二,兩人各在設備的一邊進行涂鴉。這種方式雖然有趣,但是對于繪畫而言,屏幕尺寸限制了用戶的發揮和操作。因此團隊希望這類玩法能通過多個設備完成,于是他們研究了ZeroConf、iOS的Multipeer Connectivity、Google Nearby等近距離互聯的技術, 結果發現這些技術在設備發現和應用拉起方面實現的都不理想,尤其是當目標用戶是兒童的情況下,操作起來不夠簡便也不易上手。

HarmonyOS的出現給團隊帶來了希望。他們發現HarmonyOS的分布式技術有著很大的應用潛力,這項技術讓設備的發現和應用拉起變的非常的簡單自然,互聯的過程也很流暢,很好地解決了單機操作的限制,讓跨設備聯機功能能夠非常容易地實現。此外,HarmonyOS的開發也給團隊留下了很深刻的印象,以往繁瑣的開發步驟,在 HarmonyOS 中僅需幾個配置、幾行代碼即可完成,無需花費太多精力。在《Labo涂鴉鴻蒙親子版》里面的5個分布式玩法的開發只用了團隊一名開發者不到兩個月的時間,其中還包括了學習上手、解決文檔不全和各種疑難問題的過程。

以下是“Labo Lado兒童藝術創想”團隊基于HarmonyOS的分布式開發關鍵技術的簡單分享:

一、分布式技術實踐

HarmonyOS的分布式能力是在系統層面實現的,在設備雙方同屬一個局域網的情況下,設備都可以快速的發現和進行流暢的通訊。下面將從HarmonyOS設備的發現、應用的拉起、應用通訊和雙向通訊幾個部分來進行分享。

1、設備的發現

假設設備A想要邀請另外一個設備B加入,AB任何一方都無需啟動特別的廣播服務,只要發起方設備A在應用內調用設備發現代碼,就可以列出附近符合條件可用的的設備。

以下是獲取設備列表的示例代碼:

public static List getRemoteDevice() {

List deviceInfoList = DeviceManager.getDeviceList(DeviceInfo.FLAG_GET_ONLINE_DEVICE);

return deviceInfoList;

}

列出設備之后,用戶就可以通過設備名選擇想要邀請的設備了。

(左側設備A發現右側名為“ye”的設備B的界面展示)

2、應用的拉起

設備A邀請了設備B之后,如果設備B上應用沒啟動,設備A可直接通過調用startAbility方法來拉起設備B上的應用。雙方應用都啟動了之后,就可以進行RPC通訊了。如果需要事先檢查設備B上的應用是否已經啟動或者是否在后臺,可通過在應用中增加一個PA來實現。在拉起之前,設備A先連接設備B的應用中的PA可以實現更復雜精準的遠程應用啟動控制。

3、應用通訊

在應用中啟動一個PA,專門用作通訊的服務器端。當設備B的應用被拉起之后,設備A就會通過connectAbility與設備B的PA進行連接,通訊采用RPC方式實現,并使用IDL定義通訊接口

4、雙向通訊

RPC的通訊方式使用簡單,但是只能支持單向通訊。為了實現雙向通訊,可在設備A與設備B發起建立連接成功之后,再讓設備B與設備A發起建立一個連接,用兩個連接實現了雙向通訊。下面是這兩個連接建立過程的示意時序圖:

poYBAGDe11iAYjSKAAC4vSv52A4989.png

在設備A與設備B建立連接的時候,設備A必須將自己的DeviceId發送給設備B,然后設備B才可以主動發起一個與設備A的連接,獲取當前設備的DeviceId方法如下:

KvManagerFactory.getInstance().createKvManager(new KvManagerConfig(this)).getLocalDeviceInfo().getId()

應用中,FA主要實現了界面層邏輯,PA部分用做數據通訊的服務端。為了防止拉起應用導致用戶當前面的操作被中斷,可通過PA來查詢當前FA的狀態,如果FA已經啟動了,就跳過拉起,直接進行下一步操作即可。

二、數據接口與數據結構定義

使用了IDL定義了兩個通用的接口,分別用來進行異步和同步調用:

int sendSyncCommand([in] int command, [in] String params);

void sendAsyncCommand([in] int command, [in] String params, [in] byte[] content);

大部分情況下,遠程調用大部分都通過同步的方式進行,用戶之間的繪畫數據通過異步接口傳輸,數據在用戶繪制的時候采集,每50ms左右發送一次,這個頻率可以大概保證用戶視覺上沒有卡頓,而又不至于因為接口過度調用導致卡頓或者耗電量過大。采集的繪畫數據的數據結構大致如下:

enum action //動作,表示落筆、移動、提筆等動作

int tagId //多點觸摸識別標記

int x //x坐標

int y //y坐標

enum brushType //筆刷類型

int brushSize //筆刷大小

enum brushColor //筆刷顏色

int layer //圖層

這款應用是支持多點觸摸的,所以每個觸摸點在落筆的的時候,都使用了tagId進行標記。這些數據除了通訊外,還會完整地保存在文件中,這樣用戶就可以通過應用內的播放功能播放該數據,回看繪畫的整個過程。

三、教程錄制與曲線平滑

1、教程制作

這款產品的特色之一是教程是動態的,用戶可以自己拼裝或者通過游戲生成教程角色。目前應用內置六種教程。這些教程預先由設計師在photoshop中畫好并標記各個部位,然后再通過專門的photoshop腳本導出到教程錄制應用中,再由設計師按部位逐個進行臨摹繪制,繪制完成,應用會將設計師的繪制過程數據保存為json文件,通過將這些json的文件里的部位互換,我們就實現了用戶自己拼裝教程的功能了。

pYYBAGDe11iAeRLqAAFZODXCRPk798.png

2、曲線平滑

繪制過程,為了讓用戶繪制的曲線更加平滑,采用二次貝塞爾曲線算法進行差值(Quadratic Bezier Curve),該算法簡單效率也非常不錯:

pYYBAGDe11iAGa-rAAA-oIrrwgA459.png

public Point quadraticBezier(Point p0, Point p1, Point p2, float t) {

Point pFinal = new Point();

pFinal.x = (float) (Math.pow(1 - t, 2) * p0.x + (1 - t) * 2 * t * p1.x + t * t * p2.x);

pFinal.y = (float) (Math.pow(1 - t, 2) * p0.y + (1 - t) * 2 * t * p1.y + t * t * p2.y);

return pFinal;

}

基于HarmonyOS的分布式特性,《Labo涂鴉鴻蒙親子版》完成了一次已有應用的自我嘗試和突破,大大的增加了用戶在使用過程中的樂趣,為用戶帶來了全新的跨設備親子交互體驗,“Labo Lado兒童藝術創想”團隊在未來將與更多的HarmonyOS開發者一起,為用戶創作出更多更有趣的兒童創造類應用。

近一段時間以來,HarmonyOS 2的發布吸引了廣大開發者的關注。作為一款面向萬物互聯時代的智能終端操作系統,HarmonyOS 2帶來了諸多新特性、新功能和新玩法,等待開發者去探索、去學習、去實踐。也歡迎廣大開發者繼續發揮創造力和想象力,基于HarmonyOS開發出更多有創新、有創意、有價值的作品,打造出專屬于萬物互聯時代的創新產品。

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

    關注

    2

    文章

    3133

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    分布式 IO 選型注意事項

    在工業 4.0 浪潮推動下,分布式 IO 作為工業互聯的核心底層設備,已成為制造業實現設備互聯、數據采集、柔性生產的關鍵支撐。本文將助力企業避開選型誤區,最大化發揮
    的頭像 發表于 12-30 14:14 ?315次閱讀
    <b class='flag-5'>分布式</b> IO 選型注意事項

    SC-3568HA:解鎖鴻蒙全權限API與分布式能力的工業控制平臺

    傳統嵌入式開發面臨硬件碎片化、高權限功能缺失、分布式協同復雜及自動化測試不足等痛點。SC-3568HA開發板基于鴻蒙系統,通過統一內核抽象層和硬件驅動框架解決兼容問題,開放全量系統AP
    的頭像 發表于 12-18 11:27 ?7211次閱讀
    SC-3568HA:解鎖<b class='flag-5'>鴻蒙</b>全權限API與<b class='flag-5'>分布式</b>能力的工業控制平臺

    PLC遠程上下載在分布式設備運維系統中的作用

    在工業4.0與物聯網技術深度融合的背景下,分布式設備運維系統正面臨設備分散、管理復雜、響應滯后等核心挑戰。PLC遠程上下載技術作為
    的頭像 發表于 11-14 16:51 ?1260次閱讀

    工業數采網關在分布式設備運維管理中的作用

    工業數采網關在分布式設備運維管理中扮演著 數據樞紐、智能分析核心與遠程控制中樞 的多重角色,其作用貫穿設備監控、故障預警、運維調度及能效優化全流程,是提升分布式系統運維效率、降低運營成
    的頭像 發表于 09-19 10:53 ?672次閱讀
    工業數采網關在<b class='flag-5'>分布式</b><b class='flag-5'>設備</b>運維管理中的作用

    【節能學院】Acrel-1000DP分布式光伏監控系統在奉賢平高食品 4.4MW 分布式光伏中應用

    分布式光伏本地和遠程通信方案,并研究分布式光伏采集模型的構建、多源數據融合估計、面向分布式光伏的有功、無功功率優化控制等關鍵技術實現了對小
    的頭像 發表于 08-23 08:04 ?3503次閱讀
    【節能學院】Acrel-1000DP<b class='flag-5'>分布式</b>光伏監控系統在奉賢平高食品 4.4MW <b class='flag-5'>分布式</b>光伏中應用

    分布式光伏發電監測系統技術方案

    分布式光伏發電監測系統技術方案 柏峰【BF-GFQX】一、系統目標 :分布式光伏發電監測系統旨在通過智能化的監測手段,實現分布式光伏電站的
    的頭像 發表于 08-22 10:51 ?3208次閱讀
    <b class='flag-5'>分布式</b>光伏發電監測系統<b class='flag-5'>技術</b>方案

    分布式設備管理平臺有哪些功能?哪個好用?

    在數字化浪潮中,分布式設備管理平臺成為各行業提升設備管理效率、優化運維流程的關鍵工具。這類平臺不僅能夠對分布廣泛、類型多樣的設備進行集中管控
    的頭像 發表于 07-07 17:07 ?805次閱讀
    <b class='flag-5'>分布式</b><b class='flag-5'>設備</b>管理平臺有哪些功能?哪個好用?

    開鴻開發板深度體驗:從開源鴻蒙開發到AI場景實踐

    的KaihongBoard-3588S-SBC和KaihongBoard-3576-SBC被評為“2025OpenHarmony明星開發板”,可實現設備快速開源鴻蒙化升級、
    的頭像 發表于 07-03 17:03 ?1628次閱讀
    開鴻<b class='flag-5'>開發</b>板深度體驗:從開源<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b>到AI場景實踐

    ArkUI-X平臺技術落地-華為運動健康(一)

    開”的加載速度,所以目前H5平臺技術只在運動健康應用某些低頻和容易變化的頁面上使用,在一二級頁面仍使用原生native開發平臺方案選型 隨著運動健康
    發表于 06-18 22:53

    鴻蒙5開發寶藏案例分享---AI輔助圖文內容高效編創

    這個案例完美展示了HarmonyOS在設備協同和AI能力上的優勢。通過自由流轉實現設備無感切換,結合AI智能處理大幅提升創作效率。建議重點研究服務互通組件和
    發表于 06-12 11:40

    鴻蒙5開發寶藏案例分享---應用接續提升內容發布體驗

    ?【開發經驗分享】鴻蒙應用接續功能實戰:這些隱藏案例助你實現設備絲滑流轉! 各位開發者小伙伴們
    發表于 06-03 18:25

    鴻蒙5開發寶藏案例分享---一多開發實例(游戲)

    十年前藏的現金一樣驚喜!)這些藏在文檔深處的\"武功秘籍\",能幫我們輕松實現分布式游戲、端協同這些聽起來很酷的功能。快上車,帶你解鎖鴻蒙開發
    發表于 06-03 18:22

    鴻蒙5開發寶藏案例分享---一多開發實例(旅行訂票)

    : breakpoint === \'sm\' ? 80 : 20 }) 黑科技功能 : 上滑自動隱藏篩選欄(手機專屬) 設備訂單同步(通過分布式能力) 實時價格波動可視化圖表 ?**
    發表于 06-03 16:16

    開源鴻蒙開發新體驗,開鴻Bot系列今日開啟預售!

    ,也是一臺輕辦公開源鴻蒙PC。憑借“新交互、新智能、新生態、新安全”四大顯著特性,滿足用戶基礎的輕辦公智慧場景。   ●新交互:基于KaihongOS分布式軟總線能力,只需一鍵即可輕松組網連接
    發表于 05-16 14:13

    分布式光伏如何實現防逆流?

    分布式光伏如何實現防逆流
    的頭像 發表于 03-24 13:31 ?836次閱讀
    <b class='flag-5'>分布式</b>光伏如何<b class='flag-5'>實現</b>防逆流?