HarmonyOS提供了一套UI(User Interface,用戶界面)開發(fā)框架,即方舟開發(fā)框架(ArkUI框架),用于快速搭建漂亮的用戶界面。
它為開發(fā)者提供應(yīng)用UI開發(fā)所必需的能力,比如多種組件、布局計(jì)算、動(dòng)畫能力、UI交互、繪制等。
ArkUI框架提供了ArkTS語言開發(fā)方式和兼容JS的類Web開發(fā)方式,推薦使用ArkTS語言開發(fā)方式。
2.1.應(yīng)用模型介紹
應(yīng)用模型可以理解為HarmonyOS為開發(fā)者提供的應(yīng)用程序開發(fā)規(guī)范,組織文件入口設(shè)置、生命周期、進(jìn)程線程服務(wù)、配置項(xiàng)內(nèi)容等,具有必備的組件和運(yùn)行機(jī)制,讓開發(fā)者在統(tǒng)一的模型進(jìn)行應(yīng)用開發(fā),更簡單、高效。
2.2.兩種應(yīng)用模型
FA(Feature Ability)模型:HarmonyOS API 7開始支持的模型,已經(jīng)不再主推。
Stage模型:HarmonyOS API 9開始新增的模型,是目前主推且會(huì)長期演進(jìn)的模型。
Stage模型與FA模型最大的區(qū)別在于:
Stage模型中,多個(gè)應(yīng)用組件共享同一個(gè)ArkTS引擎實(shí)例;
而FA模型中,每個(gè)應(yīng)用組件獨(dú)享一個(gè)ArkTS引擎實(shí)例。
因此在Stage模型中,應(yīng)用組件之間可以方便的共享對象和狀態(tài),同時(shí)減少復(fù)雜應(yīng)用運(yùn)行對內(nèi)存的占用。
2.3.應(yīng)用模型和UI框架的關(guān)系
UI框架提供了:ArkTS語言和類JS的web語言方式開發(fā)范式。
應(yīng)用模型提供了:FA模型和Stage模型。
總之,鴻蒙應(yīng)用開發(fā)推薦應(yīng)用模型使用Stage模型,UI框架使用ArkTS聲明式開發(fā)范式。
3.1.Ability介紹
Ability意為能力,現(xiàn)實(shí)中手機(jī)有打電話、發(fā)短信、玩游戲的能力,電飯煲具有蒸煮煲湯的能力,電視有播放視頻的能力,音響有播放音樂的能力。
Ability是HarmonyOS應(yīng)用程序提供的抽象功能,在HarmonyOS中一切皆能力。
HarmonyOS分布式系統(tǒng)所要實(shí)現(xiàn)的不僅僅是單一的能力,它所要達(dá)到的效果是能力可以單獨(dú)存在,可以互相關(guān)聯(lián),可以彼此調(diào)用互相遷移。
比如:可以將手機(jī)端播放的視頻遷移到智慧屏,通過大屏來觀看視頻,同時(shí)也可以將視頻音效分離到外設(shè)音響;通過設(shè)備A獲取設(shè)備B的數(shù)據(jù);多設(shè)備終端數(shù)據(jù)同步等。
在HarmonyOS分布式系統(tǒng)中,一切皆能力,能力無大小。
在HarmonyOS應(yīng)用程序中,一個(gè)頁面即一種能力,如登錄頁面,即具有登錄功能的能力;一個(gè)服務(wù)即一種能力,如后臺(tái)播放音樂的能力;一個(gè)數(shù)據(jù)操作即一種能力,如獲取數(shù)據(jù)庫數(shù)據(jù)等。同時(shí)能力之間也可以互相調(diào)用,通過頁面能力來管理后臺(tái)音效播放與暫停。
一個(gè)HarmonyOS應(yīng)用程序可以包含一個(gè)或多個(gè)能力,HarmonyOS應(yīng)用程序可以以能力為單位進(jìn)行部署。
3.2.FA模型的ability
在HarmonyOS應(yīng)用程序的FA模型中將能力分為FA(Feature Ability,即元程序)和PA(Particle Ability,即元服務(wù))兩種類型,針對兩種類型提供了不同的模板可以在日常業(yè)務(wù)開發(fā)中直接使用。
FA: 支持PageAbility組件;
PA:支持ServiceAbility組件和DataAbility組件。
PageAbility | Page模板的 Ability,用于提供與用戶交互的能力。 一個(gè)Page可以由一個(gè)或多個(gè)AbilitySlice構(gòu)成,AbilitySlice是指應(yīng)用的單個(gè)頁面及其控制邏輯的總和,可以稱之為子頁面,可以存在并復(fù)用在其他PageAbility上. 跨設(shè)備遷移支持將Page在同一用戶的不同設(shè)備間遷移,以便支持用戶無縫切換的訴求。 |
ServiceAbility | Service 模板的 Ability(以下簡稱 "Service")主要用于后臺(tái)運(yùn)行任務(wù)(如執(zhí)行音樂播放、文件下載等),但不提供用戶交互界面。 Service可由其他應(yīng)用或Ability啟動(dòng),即使用戶切換到其他應(yīng)用,Service仍將在后臺(tái)繼續(xù)運(yùn)行。 |
DataAbility | Data模板的Ability(以下簡稱“Data”)有助于應(yīng)用管理其自身和其他應(yīng)用存儲(chǔ)數(shù)據(jù)的訪問,并提供與其他應(yīng)用共享數(shù)據(jù)的方法。 Data既可用于同設(shè)備不同應(yīng)用的數(shù)據(jù)共享,也支持跨設(shè)備不同應(yīng)用的數(shù)據(jù)共享。 數(shù)據(jù)的存放形式多樣,可以是數(shù)據(jù)庫,也可以是磁盤上的文件。 |
3.3.Stage模型的Ability
在HarmonyOS應(yīng)用程序的Stage模型中將能力分為:UIAbility組件和ExtensionAbility組件。
UIAbility組件:包含UI界面,提供展示UI的能力,主要用于和用戶交互。
ExtensionAbility組件:提供特定場景(如卡片、輸入法)的擴(kuò)展能力,滿足更多的使用場景。
-
框架
+關(guān)注
關(guān)注
0文章
398瀏覽量
17432 -
應(yīng)用程序
+關(guān)注
關(guān)注
37文章
3240瀏覽量
57600 -
HarmonyOS
+關(guān)注
關(guān)注
79文章
1967瀏覽量
30012
發(fā)布評論請先 登錄
相關(guān)推薦
評論