W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
隨著系統(tǒng)的演進(jìn)發(fā)展,HarmonyOS先后提供了兩種應(yīng)用模型:
FA(Feature Ability)模型:HarmonyOS早期版本開始支持的模型,已經(jīng)不再主推。
Stage模型:HarmonyOS 3.1 Developer Preview版本開始新增的模型,是目前主推且會長期演進(jìn)的模型。在該模型中,由于提供了AbilityStage、WindowStage等類作為應(yīng)用組件和Window窗口的“舞臺”,因此稱這種應(yīng)用模型為Stage模型。
Stage模型之所以成為主推模型,源于其設(shè)計(jì)思想。Stage模型的設(shè)計(jì)基于如下出發(fā)點(diǎn)。
為復(fù)雜應(yīng)用而設(shè)計(jì)
支持多設(shè)備和多窗口形態(tài)
應(yīng)用組件管理和窗口管理在架構(gòu)層面解耦:
便于系統(tǒng)對應(yīng)用組件進(jìn)行裁剪(無屏設(shè)備可裁剪窗口)。
便于系統(tǒng)擴(kuò)展窗口形態(tài)。
在多設(shè)備(如桌面設(shè)備和移動(dòng)設(shè)備)上,應(yīng)用組件可使用同一套生命周期。
平衡應(yīng)用能力和系統(tǒng)管控成本
Stage模型重新定義應(yīng)用能力的邊界,平衡應(yīng)用能力和系統(tǒng)管控成本。
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)存的占用。Stage模型作為主推的應(yīng)用模型,開發(fā)者通過它能夠更加便利地開發(fā)出分布式場景下的復(fù)雜應(yīng)用。
可通過如下對比表格了解兩種模型的整體概況。
表1 FA模型與Stage模型差異概覽
項(xiàng)目 | FA模型 | Stage模型 |
---|---|---|
應(yīng)用組件 | 1. 組件分類
- ServiceAbility組件:提供后臺服務(wù)的能力,無UI界面。詳細(xì)介紹請參見ServiceAbility組件概述。 - DataAbility組件:提供數(shù)據(jù)分享的能力,無UI界面。詳細(xì)介紹請參見DataAbility組件概述。 2. 開發(fā)方式 通過導(dǎo)出匿名對象、固定入口文件的方式指定應(yīng)用組件。開發(fā)者無法進(jìn)行派生,不利于擴(kuò)展能力。 | 1. 組件分類
- ExtensionAbility組件:提供特定場景(如卡片、輸入法)的擴(kuò)展能力,滿足更多的使用場景。詳細(xì)介紹請參見ExtensionAbility組件。 2. 開發(fā)方式 采用面向?qū)ο蟮姆绞剑瑢?yīng)用組件以類接口的形式開放給開發(fā)者,可以進(jìn)行派生,利于擴(kuò)展能力。 |
進(jìn)程模型 | 有兩類進(jìn)程: 1. 主進(jìn)程 2. 渲染進(jìn)程 詳細(xì)介紹請參見進(jìn)程模型。 | 有三類進(jìn)程: 1. 主進(jìn)程 2. ExtensionAbility進(jìn)程 3. 渲染進(jìn)程 詳細(xì)介紹請參見進(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)對象共享:不支持。 詳細(xì)介紹請參見線程模型。 | 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)對象共享:支持。 詳細(xì)介紹請參見線程模型。 |
應(yīng)用配置文件 | 使用config.json描述應(yīng)用信息、HAP信息和應(yīng)用組件信息。 詳細(xì)介紹請參見應(yīng)用配置文件概述(FA模型)。 | 使用app.json5描述應(yīng)用信息,module.json5描述HAP信息、應(yīng)用組件信息。 詳細(xì)介紹請參見應(yīng)用配置文件概述(Stage模型)。 |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: