
HarmonyOS提供了一套UI(User Interface,用戶界面)開發框架,即方舟開發框架(ArkUI框架),用于快速搭建漂亮的用戶界面。
它為開發者提供應用UI開發所必需的能力,比如多種組件、布局計算、動畫能力、UI交互、繪制等。

ArkUI框架提供了ArkTS語言開發方式和兼容JS的類Web開發方式,推薦使用ArkTS語言開發方式。


2.1.應用模型介紹
應用模型可以理解為HarmonyOS為開發者提供的應用程序開發規范,組織文件入口設置、生命周期、進程線程服務、配置項內容等,具有必備的組件和運行機制,讓開發者在統一的模型進行應用開發,更簡單、高效。
2.2.兩種應用模型
FA(Feature Ability)模型:HarmonyOS API 7開始支持的模型,已經不再主推。
Stage模型:HarmonyOS API 9開始新增的模型,是目前主推且會長期演進的模型。

Stage模型與FA模型最大的區別在于:
Stage模型中,多個應用組件共享同一個ArkTS引擎實例;
而FA模型中,每個應用組件獨享一個ArkTS引擎實例。
因此在Stage模型中,應用組件之間可以方便的共享對象和狀態,同時減少復雜應用運行對內存的占用。
2.3.應用模型和UI框架的關系
UI框架提供了:ArkTS語言和類JS的web語言方式開發范式。
應用模型提供了:FA模型和Stage模型。

總之,鴻蒙應用開發推薦應用模型使用Stage模型,UI框架使用ArkTS聲明式開發范式。

3.1.Ability介紹
Ability意為能力,現實中手機有打電話、發短信、玩游戲的能力,電飯煲具有蒸煮煲湯的能力,電視有播放視頻的能力,音響有播放音樂的能力。
Ability是HarmonyOS應用程序提供的抽象功能,在HarmonyOS中一切皆能力。
HarmonyOS分布式系統所要實現的不僅僅是單一的能力,它所要達到的效果是能力可以單獨存在,可以互相關聯,可以彼此調用互相遷移。
比如:可以將手機端播放的視頻遷移到智慧屏,通過大屏來觀看視頻,同時也可以將視頻音效分離到外設音響;通過設備A獲取設備B的數據;多設備終端數據同步等。
在HarmonyOS分布式系統中,一切皆能力,能力無大小。
在HarmonyOS應用程序中,一個頁面即一種能力,如登錄頁面,即具有登錄功能的能力;一個服務即一種能力,如后臺播放音樂的能力;一個數據操作即一種能力,如獲取數據庫數據等。同時能力之間也可以互相調用,通過頁面能力來管理后臺音效播放與暫停。
一個HarmonyOS應用程序可以包含一個或多個能力,HarmonyOS應用程序可以以能力為單位進行部署。
3.2.FA模型的ability
在HarmonyOS應用程序的FA模型中將能力分為FA(Feature Ability,即元程序)和PA(Particle Ability,即元服務)兩種類型,針對兩種類型提供了不同的模板可以在日常業務開發中直接使用。

FA: 支持PageAbility組件;
PA:支持ServiceAbility組件和DataAbility組件。
| PageAbility | Page模板的 Ability,用于提供與用戶交互的能力。 一個Page可以由一個或多個AbilitySlice構成,AbilitySlice是指應用的單個頁面及其控制邏輯的總和,可以稱之為子頁面,可以存在并復用在其他PageAbility上. 跨設備遷移支持將Page在同一用戶的不同設備間遷移,以便支持用戶無縫切換的訴求。 |
| ServiceAbility | Service 模板的 Ability(以下簡稱 "Service")主要用于后臺運行任務(如執行音樂播放、文件下載等),但不提供用戶交互界面。 Service可由其他應用或Ability啟動,即使用戶切換到其他應用,Service仍將在后臺繼續運行。 |
| DataAbility | Data模板的Ability(以下簡稱“Data”)有助于應用管理其自身和其他應用存儲數據的訪問,并提供與其他應用共享數據的方法。 Data既可用于同設備不同應用的數據共享,也支持跨設備不同應用的數據共享。 數據的存放形式多樣,可以是數據庫,也可以是磁盤上的文件。 |
3.3.Stage模型的Ability

在HarmonyOS應用程序的Stage模型中將能力分為:UIAbility組件和ExtensionAbility組件。
UIAbility組件:包含UI界面,提供展示UI的能力,主要用于和用戶交互。
ExtensionAbility組件:提供特定場景(如卡片、輸入法)的擴展能力,滿足更多的使用場景。
-
框架
+關注
關注
0文章
404瀏覽量
18425 -
應用程序
+關注
關注
38文章
3344瀏覽量
60257 -
HarmonyOS
+關注
關注
80文章
2153瀏覽量
36053
發布評論請先 登錄
51單片機有哪些外圍模塊必須要學習
CAN報文解析需要知道DBC的哪些信息排序方式
開發一個Linux調試器就必須要知道寄存器和內存!
程序員需要知道的那些定理和法則
PCB設計電容中必須要知道的知識點
嵌入式Linux初學者必須要知道的知識點
做嵌入式必須要知道的幾個點!!
電阻選型以下幾個參數你必須要知道
鋰電池必須要知道的這些常用術語
學習鴻蒙必須要知道的幾個名詞
評論