應(yīng)用模型
應(yīng)用模型的構(gòu)成要素
應(yīng)用模型是系統(tǒng)為開發(fā)者提供的應(yīng)用程序所需能力的抽象提煉,它提供了應(yīng)用程序必備的組件和運(yùn)行機(jī)制。有了應(yīng)用模型,開發(fā)者可以基于一套統(tǒng)一的模型進(jìn)行應(yīng)用開發(fā),使應(yīng)用開發(fā)更簡(jiǎn)單、高效。
應(yīng)用模型的構(gòu)成要素包括:
- 應(yīng)用組件
應(yīng)用組件是應(yīng)用的基本組成單位,是應(yīng)用的運(yùn)行入口。用戶啟動(dòng)、使用和退出應(yīng)用過程中,應(yīng)用組件會(huì)在不同的狀態(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)用時(shí),首先需要編寫的就是應(yīng)用組件,同時(shí)還需編寫應(yīng)用組件的生命周期回調(diào)函數(shù),并在應(yīng)用配置文件中配置相關(guān)信息。這樣,操作系統(tǒng)在運(yùn)行期間通過配置文件創(chuàng)建應(yīng)用組件的實(shí)例,并調(diào)度它的生命周期回調(diào)函數(shù),從而執(zhí)行開發(fā)者的代碼。 - 應(yīng)用進(jìn)程模型
應(yīng)用進(jìn)程模型定義應(yīng)用進(jìn)程的創(chuàng)建和銷毀方式,以及進(jìn)程間的通信方式。 - 應(yīng)用線程模型
應(yīng)用線程模型定義應(yīng)用進(jìn)程內(nèi)線程的創(chuàng)建和銷毀方式、主線程和UI線程的創(chuàng)建方式、線程間的通信方式。 - 應(yīng)用任務(wù)管理模型(僅對(duì)系統(tǒng)應(yīng)用開放)
應(yīng)用任務(wù)管理模型定義任務(wù)(Mission)的創(chuàng)建和銷毀方式,以及任務(wù)與組件間的關(guān)系。所謂任務(wù),即用戶使用一個(gè)應(yīng)用組件實(shí)例的記錄。每次用戶啟動(dòng)一個(gè)新的應(yīng)用組件實(shí)例,都會(huì)生成一個(gè)新的任務(wù)。例如,用戶啟動(dòng)一個(gè)視頻應(yīng)用,此時(shí)在“最近任務(wù)”界面,將會(huì)看到視頻應(yīng)用這個(gè)任務(wù),當(dāng)用戶點(diǎn)擊這個(gè)任務(wù)時(shí),系統(tǒng)會(huì)把該任務(wù)切換到前臺(tái),如果這個(gè)視頻應(yīng)用中的視頻編輯功能也是通過應(yīng)用組件編寫的,那么在用戶啟動(dòng)視頻編輯功能時(shí),會(huì)創(chuàng)建視頻編輯的應(yīng)用組件實(shí)例,在“最近任務(wù)”界面中,將會(huì)展示視頻應(yīng)用、視頻編輯兩個(gè)任務(wù)。 - 應(yīng)用配置文件
應(yīng)用配置文件中包含應(yīng)用配置信息、應(yīng)用組件信息、權(quán)限信息、開發(fā)者自定義信息等,這些信息在編譯構(gòu)建、分發(fā)和運(yùn)行階段分別提供給編譯工具、應(yīng)用市場(chǎng)和操作系統(tǒng)使用。
應(yīng)用模型概況
隨著系統(tǒng)的演進(jìn)發(fā)展,先后提供了兩種應(yīng)用模型:
- FA(Feature Ability)模型:從API 7開始支持的模型,已經(jīng)不再主推。
- Stage模型:從API 9開始新增的模型,是目前主推且會(huì)長(zhǎng)期演進(jìn)的模型。在該模型中,由于提供了AbilityStage、WindowStage等類作為應(yīng)用組件和Window窗口的“舞臺(tái)”,因此稱這種應(yīng)用模型為Stage模型。
- 開發(fā)前請(qǐng)熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[
gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
通過對(duì)比認(rèn)識(shí)FA模型與Stage模型
Stage模型與FA模型最大的區(qū)別在于 :Stage模型中,多個(gè)應(yīng)用組件共享同一個(gè)ArkTS引擎實(shí)例;而FA模型中,每個(gè)應(yīng)用組件獨(dú)享一個(gè)ArkTS引擎實(shí)例。因此在Stage模型中,應(yīng)用組件之間可以方便的共享對(duì)象和狀態(tài),同時(shí)減少?gòu)?fù)雜應(yīng)用運(yùn)行對(duì)內(nèi)存的占用。Stage模型作為主推的應(yīng)用模型,開發(fā)者通過它能夠更加便利地開發(fā)出分布式場(chǎng)景下的復(fù)雜應(yīng)用。
可通過如下對(duì)比表格了解兩種模型的整體概況。
表1 FA模型與Stage模型差異概覽
項(xiàng)目HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 | FA模型 | Stage模型 |
---|---|---|
應(yīng)用組件 | 1. 組件分類![]() | 1. 組件分類![]() |
進(jìn)程模型 | 有兩類進(jìn)程: 1. 主進(jìn)程 2. 渲染進(jìn)程 | 有三類進(jìn)程: 1. 主進(jìn)程 2. ExtensionAbility進(jìn)程 3. 渲染進(jìn)程 |
線程模型 | 1. ArkTS引擎實(shí)例的創(chuàng)建 一個(gè)進(jìn)程可以運(yùn)行多個(gè)應(yīng)用組件實(shí)例,每個(gè)應(yīng)用組件實(shí)例運(yùn)行在一個(gè)單獨(dú)的ArkTS引擎實(shí)例中。 2. 線程模型 每個(gè)ArkTS引擎實(shí)例都在一個(gè)單獨(dú)線程(非主線程)上創(chuàng)建,主線程沒有ArkTS引擎實(shí)例。 3. 進(jìn)程內(nèi)對(duì)象共享:不支持。 | 1. ArkTS引擎實(shí)例的創(chuàng)建 一個(gè)進(jìn)程可以運(yùn)行多個(gè)應(yīng)用組件實(shí)例,所有應(yīng)用組件實(shí)例共享一個(gè)ArkTS引擎實(shí)例。 2. 線程模型 ArkTS引擎實(shí)例在主線程上創(chuàng)建。 3. 進(jìn)程內(nèi)對(duì)象共享:支持。 |
任務(wù)管理模型 | - 每個(gè)PageAbility組件實(shí)例創(chuàng)建一個(gè)任務(wù)。 - 任務(wù)會(huì)持久化存儲(chǔ),直到超過最大任務(wù)個(gè)數(shù)(根據(jù)產(chǎn)品配置自定義)或者用戶主動(dòng)刪除任務(wù)。 - PageAbility組件之間不會(huì)形成棧的結(jié)構(gòu)。 | - 每個(gè)UIAbility組件實(shí)例創(chuàng)建一個(gè)任務(wù)。 - 任務(wù)會(huì)持久化存儲(chǔ),直到超過最大任務(wù)個(gè)數(shù)(根據(jù)產(chǎn)品配置自定義)或者用戶主動(dòng)刪除任務(wù)。 - UIAbility組件之間不會(huì)形成棧的結(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文章
3342瀏覽量
49274 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2397瀏覽量
43098
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
鴻蒙Stage模型--概述
![<b class='flag-5'>鴻蒙</b>Stage<b class='flag-5'>模型</b>--概述](https://file1.elecfans.com/web2/M00/BE/C6/wKgZomW3Pp2AeKfvAAGuMXoEDSA429.png)
【大語言模型:原理與工程實(shí)踐】大語言模型的評(píng)測(cè)
TLC555-Q1 spice模型到LTSPICE仿真軟件中提示無法解析是怎么回事?
MRAS模型和可調(diào)模型參考
HDF Camera 驅(qū)動(dòng)模型解析
TFllite模型的格式簡(jiǎn)介
基于IPO的工作流模型定義與XPDL解析
一種氣隙磁場(chǎng)與電磁力的解析計(jì)算模型
![一種氣隙磁場(chǎng)與電磁力的<b class='flag-5'>解析</b>計(jì)算<b class='flag-5'>模型</b>](https://file.elecfans.com/web1/M00/45/F8/o4YBAFp-U3yAEftPAACHhHZ3044884.jpg)
鴻蒙Stage模型和FA模型區(qū)別
最強(qiáng)科普!深度解析華為云盤古大模型
大模型部署框架FastLLM實(shí)現(xiàn)細(xì)節(jié)解析
![大<b class='flag-5'>模型</b>部署框架FastLLM實(shí)現(xiàn)細(xì)節(jié)<b class='flag-5'>解析</b>](https://file1.elecfans.com/web2/M00/8D/ED/wKgZomTB23mAQAPDAAA5cBBNAV0394.png)
鴻蒙應(yīng)用模型:【Ability Kit】簡(jiǎn)介
![<b class='flag-5'>鴻蒙</b>應(yīng)用<b class='flag-5'>模型</b>:【Ability Kit】簡(jiǎn)介](https://file1.elecfans.com/web2/M00/EA/1B/wKgZomZWzLmARq9xAABl2Ql50bI212.jpg)
評(píng)論