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

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

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

3天內不再提示

TS語言開發HarmonyOS應用:分布式計算器開發教程

海闊天空的專欄 ? 來源:HarmonyOS開發者 ? 作者:HarmonyOS開發者 ? 2022-05-23 16:37 ? 次閱讀

最近收到很多小伙伴反饋,想基于擴展的TS語言(eTS)進行HarmonyOS應用開發,但是不知道代碼該從何處寫起,從0到1的過程讓新手們抓狂。本期我們將帶來“分布式計算器”的開發,幫助大家了解聲明式開發范式的UI描述、組件化機制、UI狀態管理、渲染控制語法等核心機制和功能。下面我們直接進入正題。

一、整體介紹

分布式計算器可以進行簡單的數值計算,并支持遠程拉起另一個計算器FA,實現兩個FA進行協同計算。

如圖1所示,分布式計算器界面主要由“鍵盤”、“顯示”及“標題欄”三個模塊組成。其中,“鍵盤”“顯示”模塊負責響應用戶點擊并控制運算表達式及運算結果的顯示,實現了基礎的計算功能。“菜單欄”模塊為計算器頂部的菜單欄,是分布式計算功能的入口。

那么,如何實現分布式計算器各模塊的功能?下面我們將從組件化、聲明式描述和狀態管理三個維度來解析分布式計算器的實現。

圖片

圖1 計算器界面

1. 組件化

ArkUI開發框架定義了一些具有特殊含義的

組件管理裝飾器

,如圖2所示:

圖片

圖2 組件管理裝飾器

根據聲明式UI的組件化思想,我們可以將通過組件管理裝飾器將計算器界面上的各個模塊組件化為一個個獨立的UI單元。

2. 聲明式描述

通過ArkUI開發框架提供的一系列基礎組件,如Column、Text、Divider、Button等,以聲明方式進行組合和擴展來對各個模塊進行描述,包括參數構造配置、屬性配置、事件配置以及子組件配置等,并通過基礎的數據綁定和事件處理機制實現各個模塊的邏輯交互。

3. 狀態管理

ArkUI開發框架定義了一些具有特殊含義的狀態管理裝飾器,如圖3所示:

圖片

圖3 狀態管理裝飾器

通過狀態管理裝飾器裝飾組件擁有的狀態屬性,當裝飾的變量更改時,組件會重新渲染更新UI界面。

以上就是實現分布式計算器的核心原理,下面我們將為大家帶來分布式計算器的基礎計算功能與分布式功能的具體實現。

二、基礎計算功能的實現

上文中提到,分布式計算器的基礎計算功能由鍵盤模塊及顯示模塊實現。

1. 鍵盤模塊

鍵盤模塊響應了用戶的點擊,并實現了計算器的基本功能。下面我們將介紹鍵盤布局以及鍵盤功能的實現。

(1) 鍵盤布局

計算器界面上的鍵盤,其實是一張張圖片按照 4*5格式排列,如圖4所示:

圖片

圖4 鍵盤模塊

首先,我們需要將所有圖片保存至項目的media文件夾下,并初始化為ImageList,代碼如下:

poYBAGKLRiuANTtDAACygk54nkU546.png

然后,我們需要對鍵盤模塊進行組件化操作。這里我們通過@Component裝飾器讓鍵盤模塊成為一個獨立的組件。

最后,使用ArkUI開發框架提供的內置組件及屬性方法進行聲明性描述。這里我們使用了Grid組件進行布局,并通過ForEach組件來迭代圖片數組實現循環渲染,同時還為每張圖片添加了ClickButton事件方法。代碼如下:

poYBAGKLRk-Ae1lkAAC8eUfmvWE814.png

(2) 功能實現

按鍵功能包含了“歸零”、“清除”、“計算”三個功能。

① 當用戶點擊C按鈕后,運算表達式與運算結果“歸零”,代碼如下:

pYYBAGKLRmuAIs7QAAA_-sAkIZU893.png

pYYBAGKLRoSAbpHXAACv2sV8wv4907.png

pYYBAGKLRpKAWw3SAACWJOCSO7A818.png

注:計算功能的實現依賴于JavaScript的math.js庫,使用前需通過npm install mathjs--save命令下載并安裝math.js庫。

2. 顯示模塊

顯示模塊實現了“

鍵入的運算表達式

”與“

運算結果

”的顯示,本質上是Text文本,如圖5所示:

圖片

圖5顯示模塊

首先我們通過@Component裝飾器使該模塊具有組件化能力,然后在build方法里描述UI結構,最后使用@Link狀態裝飾器管理組件內部的狀態數據,當這些狀態數據被修改時,將會調用所在組件的build方法進行UI刷新。代碼如下:

poYBAGKLRq6AZ_ZVAADMkr6ZVAM373.png

至此,一個初具計算功能的計算器就實現了。下面我們將實現計算器的分布式功能。

三、分布式功能的實現

計算器的分布式功能以菜單欄模塊為入口,并基于分布式設備管理與分布式數據管理技術實現。

1. 菜單欄模塊

菜單欄

”模塊為計算器頂部菜單欄,是計算器分布式功能的入口。

圖片

圖6菜單欄模塊

如圖6所示,當用戶點擊圖標

圖片

時,執行terminate()方法,退出計算器應用。當用戶點擊按鈕時,執行showDialog()方法,界面上彈出的分布式設備列表彈窗,選擇設備后將獲取分布式數據管理的權限,最后實現遠端設備的拉起。代碼如下:

pYYBAGKLRs-ARAKOAADK_0mWay0014.png

2. 分布式設備管理

在分布式計算器應用中,分布式設備管理包含了分布式設備搜索、分布式設備列表彈窗、遠端設備拉起三部分。首先在分布式組網內搜索設備,然后把設備展示到分布式設備列表彈窗中,最后根據用戶的選擇拉起遠端設備。

(1) 分布式設備搜索

通過SUBSCRIBE_ID搜索分布式組網內的遠端設備,代碼如下:

pYYBAGKLRt6AHyUSAABhO-nqhps278.png

(2) 分布式設備列表彈窗

分布式設備列表彈窗實現了遠端設備的選擇,如圖7所示,用戶可以根據設備名稱選擇相應的設備進行協同計算。

圖片

圖7 分布式設備列表彈窗

這里我們使用@CustomDialog裝飾器來裝飾分布式設備列表彈窗,代碼如下:

poYBAGKLRwaALQjdAACtVwhrJ3o776.png

(3) 遠端設備拉起

通過startAbility(deviceId)方法拉起遠端設備的FA,代碼如下:

pYYBAGKLRxiAdwYDAABRn_WkLjA999.png

3. 分布式數據管理

分布式數據管理用于實現協同計算時數據在多端設備之間的相互同步。我們需要創建一個分布式數據庫來保存協同計算時數據,并通過分布式數據通信進行同步。

(1) 管理分布式數據庫

創建一個KVManager對象實例,用于管理分布式數據庫對象。代碼如下:

poYBAGKLRzCACgYkAABu8l2--sY982.png

(2) 訂閱分布式數據變化

通過訂閱分布式數據庫所有(本地及遠端)數據變化實現數據協同,代碼如下:

poYBAGKLR0WACJ4qAACJfgJj0O8337.png

至此,具有分布式能力的計算器就實現了。期待廣大開發者能基于TS擴展的聲明式開發范式開發出更多有趣的應用。

來源:HarmonyOS開發者

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

    關注

    0

    文章

    28

    瀏覽量

    4518
  • HarmonyOS
    +關注

    關注

    79

    文章

    1983

    瀏覽量

    30630
收藏 人收藏

    評論

    相關推薦

    OpenHarmony開發案例:【分布式計算器

    使用分布式能力實現了一個簡單的計算器應用,可以進行簡單的數值計算,支持遠程拉起另一個設備的計算器應用,兩個計算器應用進行協同
    的頭像 發表于 04-11 15:24 ?1128次閱讀
    OpenHarmony<b class='flag-5'>開發</b>案例:【<b class='flag-5'>分布式</b><b class='flag-5'>計算器</b>】

    HarmonyOS開發實例:【分布式郵件】

    基于TS擴展的聲明開發范式編程語言編寫的一個分布式郵件系統,可以由一臺設備拉起另一臺設備,每次改動郵件內容,都會同步更新兩臺設備的信息
    的頭像 發表于 04-17 10:29 ?815次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發</b>實例:【<b class='flag-5'>分布式</b>郵件】

    HarmonyOS應用開發-分布式任務調度

    1. 介紹本篇CodeLab將實現的內容HarmonyOS是面向全場景多終端的分布式操作系統,使得應用程序的開發打破了智能終端互通的性能和數據壁壘,業務邏輯原子化開發,適配多端。通過一
    發表于 09-18 09:21

    HarmonyOS應用開發-分布式設計

    設計理念HarmonyOS 是面向未來全場景智慧生活方式的分布式操作系統。對消費者而言,HarmonyOS 將生活場景中的各類終端進行能力整合,形成“One Super Device”,以實現
    發表于 09-22 17:11

    HarmonyOS分布式應用框架深入解讀

    設備、分布式的能力及應用,二者具有無限能力。從開發者角度看,HarmonyOS上基本的組件分為3+1,其中3代表三個Ability,分別是:PageAbility:負責用戶界面的顯示
    發表于 11-22 15:15

    HarmonyOS應用開發-關于TS語言的整體理解

    語法的解析能力,提供了跨語言調用支持,提供了TS語言高性能運行環境。 聲明UI后端引擎后端引擎提供了兼容不同開發范式的UI渲染管線,提供多
    發表于 11-30 11:03

    HDC2021技術分論壇:如何高效完成HarmonyOS分布式應用測試?

    作者:liuxun,HarmonyOS測試架構師HarmonyOS是新一代的智能終端操作系統,給開發者提供了設備發現、設備連接、跨設備調用等豐富的分布式API。隨著越來越多的
    發表于 12-13 14:55

    如何高效完成HarmonyOS分布式應用測試?

    作者:liuxun,HarmonyOS測試架構師HarmonyOS是新一代的智能終端操作系統,給開發者提供了設備發現、設備連接、跨設備調用等豐富的分布式API。隨著越來越多的
    發表于 12-13 18:07

    滿滿干貨!手把手教你實現基于eTS的分布式計算器

    最近收到很多小伙伴反饋,想基于擴展的TS語言(eTS)進行HarmonyOS應用開發,但是不知道代碼該從何處寫起,從0到1的過程讓新手們抓狂。 本期我們將帶來“
    發表于 05-23 18:34

    HarmonyOS應用開發-EducationSystem分布式親子早教系統體驗

    HarmonyOS應用程序開發,多屏協作交互和分布式跨設備傳輸的經驗。 ? 從項目創建、代碼編寫到編譯、構造、部署和操作。二、效果圖:完整代碼地址:https://gitee.com/jltfcloudcn/jump_to/tr
    發表于 07-25 10:23

    HarmonyOS應用開發-分布式語音攝像頭體驗

    一、組件說明使用HarmonyOS分布式文件系統和AI語音識別功能開發了一個分布式語音攝像頭。使用此相機應用程序,同一分布式網絡下的不同設備
    發表于 08-24 15:06

    HarmonyOS測試技術與實戰-HarmonyOS分布式應用特征與挑戰

     HDC 2021華為開發者大會HarmonyOS測試技術與實戰-HarmonyOS分布式應用特征與挑戰
    的頭像 發表于 10-23 14:41 ?1738次閱讀
    <b class='flag-5'>HarmonyOS</b>測試技術與實戰-<b class='flag-5'>HarmonyOS</b><b class='flag-5'>分布式</b>應用特征與挑戰

    HarmonyOS測試技術與實戰-分布式應用測試解決方案

    HDC 2021華為開發者大會HarmonyOS測試技術與實戰-HarmonyOS分布式應用測試解決方案
    的頭像 發表于 10-23 14:48 ?1648次閱讀
    <b class='flag-5'>HarmonyOS</b>測試技術與實戰-<b class='flag-5'>分布式</b>應用測試解決方案

    HarmonyOS分布式應用評分工具定位于幫助開發者本地快速測試

    HarmonyOS是新一代的智能終端操作系統,給開發者提供了設備發現、設備連接、跨設備調用等豐富的分布式API。隨著越來越多的開發者投入到Harmo
    的頭像 發表于 12-17 13:50 ?1501次閱讀

    HarmonyOS分布式應用上架問題分析

    HarmonyOS是新一代的智能終端操作系統,給開發者提供了設備發現、設備連接、跨設備調用等豐富的分布式API。隨著越來越多的開發者投入到Harmo
    的頭像 發表于 12-24 17:56 ?1961次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>分布式</b>應用上架問題分析
    主站蜘蛛池模板: 高颜值露脸极品在线播放 | 男操女视频网站 | 婷婷国产成人久久精品激情 | 久久视频精品36线视频在线观看 | 国产美女视频黄a视频全免费网站 | 国产91色综合久久免费分享 | 爱爱视频天天干 | 性久久久久久久久久 | 特级一级毛片视频免费观看 | av网址在线看 | 免费一级特黄 | 小雪被老外黑人撑破了视频 | 亚洲国产高清人在线 | 色视频免费观看高清完整 | 正在播放淫亚洲 | 丁香婷婷在线视频 | 国产成人精品日本 | 亚洲第一区在线 | 色九九| 在线精品小视频 | 天堂资源吧 | 久久精品国产免费 | 大桥未久加勒比女热大陆在线 | 中文字幕日本一区波多野不卡 | 你懂的在线观看网站 | 亚洲色图国产精品 | 色婷婷色综合激情国产日韩 | 美女露出尿口让男人桶爽网站 | 有坂深雪在线 | 欧美一级在线观看 | 男校霸把男校草玩出水男男 | 国产免费久久精品 | 国产日韩精品一区二区三区 | 中国女人a毛片免费全部播放 | 国产成在线人视频免费视频 | 黄色特级录像 | 国产伦精品一区二区 | 丁香激情小说 | 美女网站色黄 | 久久综合九色综合欧美播 | 午夜视频免费观看黄 |