應(yīng)用模型
應(yīng)用模型的構(gòu)成要素
應(yīng)用模型是系統(tǒng)為開發(fā)者提供的應(yīng)用程序所需能力的抽象提煉,它提供了應(yīng)用程序必備的組件和運行機制。有了應(yīng)用模型,開發(fā)者可以基于一套統(tǒng)一的模型進行應(yīng)用開發(fā),使應(yīng)用開發(fā)更簡單、高效。
應(yīng)用模型的構(gòu)成要素包括:
- 應(yīng)用組件
應(yīng)用組件是應(yīng)用的基本組成單位,是應(yīng)用的運行入口。用戶啟動、使用和退出應(yīng)用過程中,應(yīng)用組件會在不同的狀態(tài)間切換,這些狀態(tài)稱為應(yīng)用組件的生命周期。應(yīng)用組件提供生命周期的回調(diào)函數(shù),開發(fā)者通過應(yīng)用組件的生命周期回調(diào)感知應(yīng)用的[狀態(tài)變化]。應(yīng)用開發(fā)者在編寫應(yīng)用時,首先需要編寫的就是應(yīng)用組件,同時還需編寫應(yīng)用組件的生命周期回調(diào)函數(shù),并在應(yīng)用配置文件中配置相關(guān)信息。這樣,操作系統(tǒng)在運行期間通過配置文件創(chuàng)建應(yīng)用組件的實例,并調(diào)度它的生命周期回調(diào)函數(shù),從而執(zhí)行開發(fā)者的代碼。 - 應(yīng)用進程模型
應(yīng)用進程模型定義應(yīng)用進程的創(chuàng)建和銷毀方式,以及進程間的通信方式。 - 應(yīng)用線程模型
應(yīng)用線程模型定義應(yīng)用進程內(nèi)線程的創(chuàng)建和銷毀方式、主線程和UI線程的創(chuàng)建方式、線程間的通信方式。 - 應(yīng)用任務(wù)管理模型(僅對系統(tǒng)應(yīng)用開放)
應(yīng)用任務(wù)管理模型定義任務(wù)(Mission)的創(chuàng)建和銷毀方式,以及任務(wù)與組件間的關(guān)系。所謂任務(wù),即用戶使用一個應(yīng)用組件實例的記錄。每次用戶啟動一個新的應(yīng)用組件實例,都會生成一個新的任務(wù)。例如,用戶啟動一個視頻應(yīng)用,此時在“最近任務(wù)”界面,將會看到視頻應(yīng)用這個任務(wù),當(dāng)用戶點擊這個任務(wù)時,系統(tǒng)會把該任務(wù)切換到前臺,如果這個視頻應(yīng)用中的視頻編輯功能也是通過應(yīng)用組件編寫的,那么在用戶啟動視頻編輯功能時,會創(chuàng)建視頻編輯的應(yīng)用組件實例,在“最近任務(wù)”界面中,將會展示視頻應(yīng)用、視頻編輯兩個任務(wù)。 - 應(yīng)用配置文件
應(yīng)用配置文件中包含應(yīng)用配置信息、應(yīng)用組件信息、權(quán)限信息、開發(fā)者自定義信息等,這些信息在編譯構(gòu)建、分發(fā)和運行階段分別提供給編譯工具、應(yīng)用市場和操作系統(tǒng)使用。
應(yīng)用模型概況
隨著系統(tǒng)的演進發(fā)展,先后提供了兩種應(yīng)用模型:
- FA(Feature Ability)模型:從API 7開始支持的模型,已經(jīng)不再主推。
- Stage模型:從API 9開始新增的模型,是目前主推且會長期演進的模型。在該模型中,由于提供了AbilityStage、WindowStage等類作為應(yīng)用組件和Window窗口的“舞臺”,因此稱這種應(yīng)用模型為Stage模型。
- 開發(fā)前請熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[
gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
通過對比認識FA模型與Stage模型
Stage模型與FA模型最大的區(qū)別在于 :Stage模型中,多個應(yīng)用組件共享同一個ArkTS引擎實例;而FA模型中,每個應(yīng)用組件獨享一個ArkTS引擎實例。因此在Stage模型中,應(yīng)用組件之間可以方便的共享對象和狀態(tài),同時減少復(fù)雜應(yīng)用運行對內(nèi)存的占用。Stage模型作為主推的應(yīng)用模型,開發(fā)者通過它能夠更加便利地開發(fā)出分布式場景下的復(fù)雜應(yīng)用。
可通過如下對比表格了解兩種模型的整體概況。
表1 FA模型與Stage模型差異概覽
項目HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 | FA模型 | Stage模型 |
---|---|---|
應(yīng)用組件 | 1. 組件分類![]() | 1. 組件分類![]() |
進程模型 | 有兩類進程: 1. 主進程 2. 渲染進程 | 有三類進程: 1. 主進程 2. ExtensionAbility進程 3. 渲染進程 |
線程模型 | 1. ArkTS引擎實例的創(chuàng)建 一個進程可以運行多個應(yīng)用組件實例,每個應(yīng)用組件實例運行在一個單獨的ArkTS引擎實例中。 2. 線程模型 每個ArkTS引擎實例都在一個單獨線程(非主線程)上創(chuàng)建,主線程沒有ArkTS引擎實例。 3. 進程內(nèi)對象共享:不支持。 | 1. ArkTS引擎實例的創(chuàng)建 一個進程可以運行多個應(yīng)用組件實例,所有應(yīng)用組件實例共享一個ArkTS引擎實例。 2. 線程模型 ArkTS引擎實例在主線程上創(chuàng)建。 3. 進程內(nèi)對象共享:支持。 |
任務(wù)管理模型 | - 每個PageAbility組件實例創(chuàng)建一個任務(wù)。 - 任務(wù)會持久化存儲,直到超過最大任務(wù)個數(shù)(根據(jù)產(chǎn)品配置自定義)或者用戶主動刪除任務(wù)。 - PageAbility組件之間不會形成棧的結(jié)構(gòu)。 | - 每個UIAbility組件實例創(chuàng)建一個任務(wù)。 - 任務(wù)會持久化存儲,直到超過最大任務(wù)個數(shù)(根據(jù)產(chǎn)品配置自定義)或者用戶主動刪除任務(wù)。 - UIAbility組件之間不會形成棧的結(jié)構(gòu)。 |
應(yīng)用配置文件 | 使用config.json描述應(yīng)用信息、HAP信息和應(yīng)用組件信息。 | 使用app.json5描述應(yīng)用信息,module.json5描述HAP信息、應(yīng)用組件信息。 |
審核編輯 黃宇 |
-
模型
+關(guān)注
關(guān)注
1文章
3522瀏覽量
50452 -
鴻蒙
+關(guān)注
關(guān)注
60文章
2623瀏覽量
44077
發(fā)布評論請先 登錄
鴻蒙Stage模型--概述

【大語言模型:原理與工程實踐】大語言模型的評測
TLC555-Q1 spice模型到LTSPICE仿真軟件中提示無法解析是怎么回事?
cubemx導(dǎo)入模型后找不到keil找不到工程內(nèi)的模型的相關(guān)文件是怎么回事?
MRAS模型和可調(diào)模型參考
HDF Camera 驅(qū)動模型解析
TFllite模型的格式簡介
基于IPO的工作流模型定義與XPDL解析
一種氣隙磁場與電磁力的解析計算模型

最強科普!深度解析華為云盤古大模型
大模型部署框架FastLLM實現(xiàn)細節(jié)解析

?VLM(視覺語言模型)?詳細解析

評論