999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于鴻蒙的分布式創作播報應用研究

2022-08-08 15:24:28潘炳征PANBingzheng
價值工程 2022年23期
關鍵詞:數據庫設備

潘炳征PAN Bing-zheng

(廣西師范大學計算機科學與工程學院/軟件學院,桂林 541004)

0 引言

鴻蒙是基于微內核的全場景分布式操作系統[1]。物聯網設備的多樣性與現有操作系統特異性阻礙著設備間的有效協同,而鴻蒙從操作系統、設備通信及應用程序等方面進行了相應的統一,有效解決了物聯網設備之間互聯的問題。

鴻蒙響應物聯網時代的召喚,并非對標安卓與IOS[2],借助微內核、分布式等技術實現設備的全場景化,為用戶帶來一致、高效的體驗。

1 相關概念

1.1 程序包結構

鴻蒙應用程序包由一個或若干個HAP 與pack.info 構成,pack.info 用來描述每一HAP 的屬性。HAP 分為主HAP(簡稱Entry)與特征HAP(簡稱Feature),Entry 即針對特定設備的應用程序入口,Feature 即應用程序的動態特征模塊[3]。不同設備可根據不同的需求下載安裝不同的HAP,如此不必下載安裝整個應用程序包,節省設備的存儲空間。程序包結構如圖1 所示,該圖來源于鴻蒙開發者官網[3]。

圖1 鴻蒙應用程序包結構

1.2 Ability

Ability 是應用能力的抽象,類型分為FA 與PA 兩種。FA 即Page Ability,PA 包括Service Ability 與Data Ability。一個PageAbility 由一個或若干個AbilitySlice 構成,AbilitySlice 包含應用程序單個頁面及其所有控制邏輯[4]。

1.3 Intent

Intent 用于對象之間傳遞信息,可通過其指定啟動目標同時攜帶數據,由Operation 以及Parameters 構成[5]。常用于啟動與導航到Ability。

1.4 UI 框架

鴻蒙提供Java UI 框架與方舟開發框架。Java UI 提供細粒度的UI 編程接口,采用命令式編程規范,擁有最為豐富的API,使開發者更加靈活地進行鴻蒙應用開發。方舟開發框架提供高層UI 描述,采用聲明式編程規范,使開發更簡單,但其API 較為有限。鴻蒙生態尚屬于發展初期,組件相對缺乏,筆者認為一些簡單功能的實現較目前主流的框架更繁瑣。

1.5 分布式數據服務

分布式數據庫是一種NoSQL 數據庫,采用鍵值對的形式組織、索引與存儲數據。

單版本分布式數據庫,以單個鍵值對為單位的形式將數據保存在本地,有且僅有一個鍵,當一條數據在本地被修改時則會直接進行修改,同時將最新的數據同步至遠端設備。[6]

KvManagerConfig:用于配置KvManager 相關信息,包括應用與網絡狀態等。

KvManagerFactory:根據KvManagerConfig 創建分布式數據庫的KvManager。

Options:用于配置KvStore 相關信息,包括數據庫備份、加密與自動同步選項等。

KvManager:負責管理分布式數據庫,根據Options 對分布式數據庫KvStore 進行創建、打開、關閉與刪除操作。

KvStore:某一具體分布式數據庫,可對數據進行增加、刪除、查詢與修改。

五者之間關系如圖2。

圖2 分布式數據庫對象之間關系

分布式數據服務包括服務接口、服務組件、存儲組件、同步組件以及通信適配層。應用調用分布式數據服務接口進行數據庫操作,數據服務接口基于數據服務組件所提供的能力將數據保存至存儲組件,存儲組件通過調用同步組件進行同步數據,同步組件將數據發送至通信適配層以此實現遠端設備的數據同步;遠端設備利用同步組件從通信適配層接受數據,并同步至本端存儲組件,通過數據服務接口獲取數據并提供給本端應用使用[7]。數據分布式運作機制如圖3 所示,該圖來源于鴻蒙開發者官網[7]。

圖3 分布式運作機制

2 應用研究

應用基于Codelabs 中的分布式手寫板以及AI 能力的語音播報系統案例進行開發[7]。

主界面如圖4 所示,點擊不同的按鈕跳轉到不同的PageAbility。

圖4 主界面

2.1 頁面跳轉

PageAbility 之間的跳轉實現步驟如下:

①為組件設置點擊事件,后續操作在事件中編寫。②創建Intent 對象。③創建Operation 對象,設置與Intent對象相關的設備Id、包名以及Ability 名稱參數,調用build()方法完成創建。④將Operation 對象設置到步驟②所創建的Intent 對象。⑤MainAbilitySlice 調用startAbility()方法,參數為Intent 對象。

2.2 分布式畫板

實現分布式畫板需要在config.json 文件中配置多設備協同所要求的的四個權限。后續實現步驟如下。

2.2.1 初始化分布式數據庫

①創建分布式數據庫管理對象。首先在當前頁面上下文創建KvManagerConfig 對象,最后根據該對象創建KvManager 分布式數據庫管理器實例。②創建單版本分布式數據庫。首先創建Options 對象,其次將Options 對象設置相關的信息,最后基于Options 對象以及數據庫Id 標識符,KvManager 實例調用getKvStore()方法獲得與打開單版本分布式數據庫實例。③訂閱分布式數據變化。首先在客戶端實現KvStoreObserver 接口, 本例中即在WriteAbilitySlice 類中定義內部類及實現該接口;其次利用上述內部類創建KvStoreObserver 對象;最后基于KvStoreObserver 對象,單版本分布式數據庫實例調用subscribe()方法完成單版本分布式數據庫的數據變化訂閱。

2.2.2 初始化畫布

封裝好的DrawPoint 類,存放所有繪制點的基本信息與繪圖[8];drawPoints()方法將數據庫中的點數據在畫布上繪制。①初始畫布。首先獲取一種畫筆顏色,其次生成DrawPoint 類對象,將該對象添加到布局當中,最后調用drawPoints()方法進行繪圖。②設置DrawPoint 類對象的繪制圖形回調函數。首先將點數據利用GsonUtil 工具類轉換成Json 格式字符串,最后利用單版本分布式數據庫實例調用putString()方法將Json 字符串寫入數據庫。③設置同步撤回按鈕的點擊事件。首先獲取DrawPoint 類對象中的點數據;其次先移除點數據中的最后一個點,再從后往前遍歷所有點,將不屬于筆畫中的最后一個點進行移除,直到遇到筆畫中的最后一個點結束循環;最后將點數據重新設置到DrawPoint 類對象,更新單版本分布式數據庫實例。

2.2.3 設備連接

①在協同按鈕組件點擊事件中新建在線可同步設備選擇對話框。②在對話框的點擊事件中,根據所選設備Id啟動遠程界面。首先根據設備的數量生成Intent 對象數組;其次為每個Intent 對象設置是否是遠程、顏色以及數據庫標識符參數,再創建Operation 對象,同時將設備Id、包名、Ability 名稱以及多設備遠程啟動標識與Intent 對象相關聯;最后啟動遠程Ability。③在啟動遠程界面后,單版本數據庫實例調用sync()方法同步遠程數據庫。

2.3 文字播報

TTS 語音播報引擎由華為官方提供,該引擎基于華為智慧引擎,提供將文本進行語音播報的能力[9]。實現文字播報步驟如下。①創建TTS 客戶端。創建TtsListener 監聽器,重寫創建TTS 客戶端成功的回調函數。重寫方法如下,首先設置TtsParams 對象的設備Id,最后利用TtsParams 對象初始化TTS 客戶端。②轉換音頻并播報。在成功創建TTS 客戶端之后,調用speakText()方法將文本轉換成音頻并播放。

3 應用分析

3.1 寫一寫

在本地端點擊設備按鈕彈出設備選擇對話框,選擇設備之后將拉起遠程端。每一設備的筆跡都將同步,不同設備的筆跡顏色不盡相同,每一設備都可撤回筆跡。該功能可應用于如下場景。親子之間、伙伴之間協同學習娛樂;學校課堂上師生教學互動;公司會議上分享交流等等。

3.2 聽一聽

聽一聽界面如圖5 所示。

圖5 聽一聽

在文本框輸入文本內容后,點擊語音播報按鈕即可進行文字播報。該功能可應用如下場景。想聽某一段從其他應用復制的文本;知識點的溫故復習;啞人與他人之間的交流;未受過教育者學習漢語;視頻制作的簡易配音等等。

4 結語

本文僅從鴻蒙分布式以及AI 能力的簡單應用進行研究,而鴻蒙有眾多的能力與特性,其應用的場景廣泛,這需要廣大開發者積極探索。鴻蒙作為國產操作系統的希望,其誕生是突破國外科技封鎖的重要里程碑,其生態建設需要每一開發者的積極努力。

猜你喜歡
數據庫設備
諧響應分析在設備減振中的應用
基于VB6.0+Access2010開發的設備管理信息系統
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
如何在設備采購中節省成本
主站蜘蛛池模板: 青青草一区二区免费精品| 国产毛片基地| 91丝袜美腿高跟国产极品老师| 久久精品波多野结衣| 国产精品福利一区二区久久| 91久久天天躁狠狠躁夜夜| 五月激情综合网| 国产日本视频91| 久久精品国产精品青草app| 九九九精品成人免费视频7| 萌白酱国产一区二区| 伊人久久大线影院首页| A级毛片无码久久精品免费| 国产精品女主播| 亚洲欧美不卡中文字幕| 国产高清在线精品一区二区三区 | 国产精品区网红主播在线观看| 精品一区二区三区自慰喷水| 日韩欧美成人高清在线观看| 欧美精品导航| 福利在线不卡| 999精品免费视频| 亚洲精品大秀视频| 在线看片中文字幕| 日本免费一级视频| 97国产在线播放| 91色在线观看| 91丨九色丨首页在线播放| 亚洲AV无码久久天堂| 久久久久中文字幕精品视频| 亚洲欧美日韩动漫| 亚洲中文久久精品无玛| 欧美 国产 人人视频| 午夜日韩久久影院| 免费一级毛片在线播放傲雪网| 免费在线播放毛片| 99视频在线看| 青青青国产精品国产精品美女| 成年女人a毛片免费视频| 国产av一码二码三码无码| 国产福利大秀91| 手机在线看片不卡中文字幕| 亚洲国产欧洲精品路线久久| 国产精品吹潮在线观看中文| 一区二区三区四区日韩| 亚洲最新地址| 亚洲成人播放| 久久九九热视频| 毛片最新网址| 亚洲精品成人片在线观看| 国产美女91视频| 久久久久人妻精品一区三寸蜜桃| 一本大道香蕉久中文在线播放| 国产99热| 亚洲欧美一区二区三区图片 | 熟妇丰满人妻| 91精品视频网站| 欧美人与动牲交a欧美精品| 国产成人精品男人的天堂| 在线国产91| 国产在线精品99一区不卡| 亚洲不卡影院| 国产交换配偶在线视频| 韩国v欧美v亚洲v日本v| 99在线视频网站| 亚洲啪啪网| 中国丰满人妻无码束缚啪啪| 福利一区三区| 狠狠操夜夜爽| 999在线免费视频| 中文字幕欧美成人免费| 综合色在线| 精品欧美一区二区三区久久久| 国产欧美日韩资源在线观看| 97国产精品视频人人做人人爱| 亚洲无码熟妇人妻AV在线| 在线欧美日韩| 日韩在线欧美在线| 免费人成黄页在线观看国产| 青青草原国产| 亚洲福利视频一区二区| 露脸真实国语乱在线观看|