應用模型
應用模型的構成要素
應用模型是系統為開發者提供的應用程序所需能力的抽象提煉,它提供了應用程序必備的組件和運行機制。有了應用模型,開發者可以基于一套統一的模型進行應用開發,使應用開發更簡單、高效。
應用模型的構成要素包括:
- 應用組件
應用組件是應用的基本組成單位,是應用的運行入口。用戶啟動、使用和退出應用過程中,應用組件會在不同的狀態間切換,這些狀態稱為應用組件的生命周期。應用組件提供生命周期的回調函數,開發者通過應用組件的生命周期回調感知應用的[狀態變化]。應用開發者在編寫應用時,首先需要編寫的就是應用組件,同時還需編寫應用組件的生命周期回調函數,并在應用配置文件中配置相關信息。這樣,操作系統在運行期間通過配置文件創建應用組件的實例,并調度它的生命周期回調函數,從而執行開發者的代碼。 - 應用進程模型
應用進程模型定義應用進程的創建和銷毀方式,以及進程間的通信方式。 - 應用線程模型
應用線程模型定義應用進程內線程的創建和銷毀方式、主線程和UI線程的創建方式、線程間的通信方式。 - 應用任務管理模型(僅對系統應用開放)
應用任務管理模型定義任務(Mission)的創建和銷毀方式,以及任務與組件間的關系。所謂任務,即用戶使用一個應用組件實例的記錄。每次用戶啟動一個新的應用組件實例,都會生成一個新的任務。例如,用戶啟動一個視頻應用,此時在“最近任務”界面,將會看到視頻應用這個任務,當用戶點擊這個任務時,系統會把該任務切換到前臺,如果這個視頻應用中的視頻編輯功能也是通過應用組件編寫的,那么在用戶啟動視頻編輯功能時,會創建視頻編輯的應用組件實例,在“最近任務”界面中,將會展示視頻應用、視頻編輯兩個任務。 - 應用配置文件
應用配置文件中包含應用配置信息、應用組件信息、權限信息、開發者自定義信息等,這些信息在編譯構建、分發和運行階段分別提供給編譯工具、應用市場和操作系統使用。
應用模型概況
隨著系統的演進發展,先后提供了兩種應用模型:
- FA(Feature Ability)模型:從API 7開始支持的模型,已經不再主推。
- Stage模型:從API 9開始新增的模型,是目前主推且會長期演進的模型。在該模型中,由于提供了AbilityStage、WindowStage等類作為應用組件和Window窗口的“舞臺”,因此稱這種應用模型為Stage模型。
- 開發前請熟悉鴻蒙開發指導文檔 :[
gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
通過對比認識FA模型與Stage模型
Stage模型與FA模型最大的區別在于 :Stage模型中,多個應用組件共享同一個ArkTS引擎實例;而FA模型中,每個應用組件獨享一個ArkTS引擎實例。因此在Stage模型中,應用組件之間可以方便的共享對象和狀態,同時減少復雜應用運行對內存的占用。Stage模型作為主推的應用模型,開發者通過它能夠更加便利地開發出分布式場景下的復雜應用。
可通過如下對比表格了解兩種模型的整體概況。
表1 FA模型與Stage模型差異概覽
項目HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 | FA模型 | Stage模型 |
---|---|---|
應用組件 | 1. 組件分類- PageAbility組件:包含UI,提供展示UI的能力。 - ServiceAbility組件:提供后臺服務的能力,無UI。 - DataAbility組件:提供數據分享的能力,無UI。 2. 開發方式 通過導出匿名對象、固定入口文件的方式指定應用組件。開發者無法進行派生,不利于擴展能力。 | 1. 組件分類- UIAbility組件:包含UI,提供展示UI的能力,主要用于和用戶交互。 - ExtensionAbility組件:提供特定場景(如卡片、輸入法)的擴展能力,滿足更多的使用場景。 2. 開發方式 采用面向對象的方式,將應用組件以類接口的形式開放給開發者,可以進行派生,利于擴展能力。 |
進程模型 | 有兩類進程: 1. 主進程 2. 渲染進程 | 有三類進程: 1. 主進程 2. ExtensionAbility進程 3. 渲染進程 |
線程模型 | 1. ArkTS引擎實例的創建 一個進程可以運行多個應用組件實例,每個應用組件實例運行在一個單獨的ArkTS引擎實例中。 2. 線程模型 每個ArkTS引擎實例都在一個單獨線程(非主線程)上創建,主線程沒有ArkTS引擎實例。 3. 進程內對象共享:不支持。 | 1. ArkTS引擎實例的創建 一個進程可以運行多個應用組件實例,所有應用組件實例共享一個ArkTS引擎實例。 2. 線程模型 ArkTS引擎實例在主線程上創建。 3. 進程內對象共享:支持。 |
任務管理模型 | - 每個PageAbility組件實例創建一個任務。 - 任務會持久化存儲,直到超過最大任務個數(根據產品配置自定義)或者用戶主動刪除任務。 - PageAbility組件之間不會形成棧的結構。 | - 每個UIAbility組件實例創建一個任務。 - 任務會持久化存儲,直到超過最大任務個數(根據產品配置自定義)或者用戶主動刪除任務。 - UIAbility組件之間不會形成棧的結構。 |
應用配置文件 | 使用config.json描述應用信息、HAP信息和應用組件信息。 | 使用app.json5描述應用信息,module.json5描述HAP信息、應用組件信息。 |
審核編輯 黃宇 |
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
模型
+關注
關注
1文章
3173瀏覽量
48716 -
鴻蒙
+關注
關注
57文章
2310瀏覽量
42747
發布評論請先 登錄
相關推薦
鴻蒙Stage模型--概述
Stage模型:HarmonyOS 3.1 Develper Preview版本開始新增的模型,是目前主推且會長期演進的模型。在該模型中,由于提供了AbilityStage、Windo
【大語言模型:原理與工程實踐】大語言模型的評測
了模型在復雜對話中捕捉語義的能力,例如解析“哪里,哪里”的言外之意。閱讀理解部分則通過文章回答問題來檢驗模型的文字理解能力。拼音理解主要考察模型對漢字拼音的掌握情況。最后,在古文及諺語
發表于 05-07 17:12
TLC555-Q1 spice模型到LTSPICE仿真軟件中提示無法解析是怎么回事?
請教貴司提供的模型spice模型到LTSPICE仿真軟件中提示無法解析是怎么回事?
發表于 11-08 07:42
HDF Camera 驅動模型解析
作者:潤和-徐大為1.Camera驅動概述相機系統對外向用戶提供預覽、拍照以及錄像等功能。內部簡單可分為3層:應用層(app&service)、相機驅動框架模型(CDDM)、硬件層
發表于 11-15 17:33
TFllite模型的格式簡介
簡單來說:所謂模型就是一個濾波器,訓練的權重就是濾波系數,輸入經過濾波器后得到一個輸出。所以嵌入式AI部署一般就是解析模型得到“濾波系數”,輸入信號進行一系列類似"濾波&
發表于 08-18 07:01
基于IPO的工作流模型定義與XPDL解析
基于IPO的工作流模型定義與XPDL解析:根據工作流聯盟的相關標準,基于三維視圖給出了工作流過程模型定義,實現了過程模型的XML表述。在此基礎上,通過使用Java2相關技術完成了XPD
發表于 01-12 17:15
?17次下載
一種氣隙磁場與電磁力的解析計算模型
與電磁力的解析計算模型。首先,考慮定子相電流諧波對氣隙磁動勢的影響及爪極倒角和定子開槽對氣隙磁導的影響,建立氣隙磁場的解析模型;在此基礎之上,利用麥克斯韋應力張量法建立徑向電磁力的
發表于 02-10 10:02
?2次下載
鴻蒙Stage模型和FA模型區別
筆者這兩個月一直在折騰分布式應用,并且分別基于 API8 的 FA 模型以及 API9 的 Stage 模型進行了開發,這兩天總算是基本開發完了,閑下來總結下這兩者的區別,順便跟大家嘮嘮開發時踩過的坑。
最強科普!深度解析華為云盤古大模型
搭檔完成復雜任務 預測臺風路徑降低災害損失 幫助縮短藥物研發周期 …… 此次發布有諸多新升級 更為客戶提供了“開箱即用”的模型服務 簡直就是一個AI大禮包! 一支視頻為你深度解析盤古大模型硬實力! 你想了解的都在這兒 原文標題:
大模型部署框架FastLLM實現細節解析
接著 大模型部署框架 FastLLM 簡要解析 這篇文章首先梳理了一下FastLLM的調用鏈和關鍵的數據結構,然后解析了 FastLLM 的一些實現細節和CPU/GPU后端實現采用的優化技巧。
鴻蒙應用模型:【Ability Kit】簡介
Ability Kit(程序框架服務)提供了應用程序開發和運行的應用模型,是系統為開發者提供的應用程序所需能力的抽象提煉,它提供了應用程序必備的組件和運行機制。有了應用模型,開發者可以基于一套統一的模型進行應用開發,使應用開發更
評論