Stage模型:HarmonyOS 3.1 Develper Preview版本開(kāi)始新增的模型,是目前主推且會(huì)長(zhǎng)期演進(jìn)的模型。在該模型中,由于提供了AbilityStage、WindowStage等類作為應(yīng)用組件和Window窗口的“舞臺(tái)”,因此稱這種應(yīng)用模型為Stage模型。
設(shè)計(jì)思想
Stage模型之所以成為主推模型,源于其設(shè)計(jì)思想。Stage模型的設(shè)計(jì)基于如下出發(fā)點(diǎn)。
為復(fù)雜應(yīng)用而設(shè)計(jì)
多個(gè)應(yīng)用組件共享同一個(gè)ArkTS引擎(運(yùn)行ArkTS語(yǔ)言的虛擬機(jī))實(shí)例,應(yīng)用組件之間可以方便的共享對(duì)象和狀態(tài),同時(shí)減少?gòu)?fù)雜應(yīng)用運(yùn)行對(duì)內(nèi)存的占用。
采用面向?qū)ο蟮拈_(kāi)發(fā)方式,使得復(fù)雜應(yīng)用代碼可讀性高、易維護(hù)性好、可擴(kuò)展性強(qiáng)。
支持多設(shè)備和多窗口形態(tài)
應(yīng)用組件管理和窗口管理在架構(gòu)層面解耦:
便于系統(tǒng)對(duì)應(yīng)用組件進(jìn)行裁剪(無(wú)屏設(shè)備可裁剪窗口)。 便于系統(tǒng)擴(kuò)展窗口形態(tài)。
在多設(shè)備(如桌面設(shè)備和移動(dòng)設(shè)備)上,應(yīng)用組件可使用同一套生命周期。
平衡應(yīng)用能力和系統(tǒng)管控成本
Stage模型重新定義應(yīng)用能力的邊界,平衡應(yīng)用能力和系統(tǒng)管控成本。
提供特定場(chǎng)景(如卡片、輸入法)的應(yīng)用組件,以便滿足更多的使用場(chǎng)景。
規(guī)范化后臺(tái)進(jìn)程管理:為保障用戶體驗(yàn),Stage模型對(duì)后臺(tái)應(yīng)用進(jìn)程進(jìn)行了有序治理,應(yīng)用程序不能隨意駐留在后臺(tái),同時(shí)應(yīng)用后臺(tái)行為受到嚴(yán)格管理,防止惡意應(yīng)用行為。
概述
UIAbility組件和ExtensionAbility組件
Stage模型提供UIAbility和ExtensionAbility兩種類型的組件,這兩種組件都有具體的類承載,支持面向?qū)ο蟮拈_(kāi)發(fā)方式。
UIAbility組件是一種包含UI界面的應(yīng)用組件,主要用于和用戶交互。例如,圖庫(kù)類應(yīng)用可以在UIAbility組件中展示圖片瀑布流,在用戶選擇某個(gè)圖片后,在新的頁(yè)面中展示圖片的詳細(xì)內(nèi)容。同時(shí)用戶可以通過(guò)返回鍵返回到瀑布流頁(yè)面。UIAbility的生命周期只包含創(chuàng)建/銷毀/前臺(tái)/后臺(tái)等狀態(tài),與顯示相關(guān)的狀態(tài)通過(guò)WindowStage的事件暴露給開(kāi)發(fā)者。
ExtensionAbility組件是一種面向特定場(chǎng)景的應(yīng)用組件。
WindowStage
每個(gè)UIAbility類實(shí)例都會(huì)與一個(gè)WindowStage類實(shí)例綁定,該類提供了應(yīng)用進(jìn)程內(nèi)窗口管理器的作用。它包含一個(gè)主窗口。也就是說(shuō)UIAbility通過(guò)WindowStage持有了一個(gè)窗口,該窗口為ArkUI提供了繪制區(qū)域。
Context
在Stage模型上,Context及其派生類向開(kāi)發(fā)者提供在運(yùn)行期可以調(diào)用的各種能力。UIAbility組件和各種ExtensionAbility派生類都有各自不同的Context類,他們都繼承自基類Context,但是各自又根據(jù)所屬組件,提供不同的能力。
AbilityStage
每個(gè)Entry類型或者Feature類型的HAP在運(yùn)行期都有一個(gè)AbilityStage類實(shí)例,當(dāng)HAP中的代碼首次被加載到進(jìn)程中的時(shí)候,系統(tǒng)會(huì)先創(chuàng)建AbilityStage實(shí)例。每個(gè)在該HAP中定義的UIAbility類,在實(shí)例化后都會(huì)與該實(shí)例產(chǎn)生關(guān)聯(lián)。開(kāi)發(fā)者可以使用AbilityStage獲取該HAP中UIAbility實(shí)例的運(yùn)行時(shí)信息。
應(yīng)用與組件配置
在基于Stage模型開(kāi)發(fā)的應(yīng)用項(xiàng)目代碼下,都存在一個(gè) app.json5 及一個(gè)或多個(gè) module.json5 這兩種配置文件。
app.json5主要包含以下內(nèi)容:
應(yīng)用的全局配置信息,包含應(yīng)用的包名、開(kāi)發(fā)廠商、版本號(hào)等基本信息。
特定設(shè)備類型的配置信息。
module.json5主要包含以下內(nèi)容:
Module的基本配置信息,例如Module名稱、類型、描述、支持的設(shè)備類型等基本信息。
應(yīng)用組件信息,包含UIAbility組件和ExtensionAbility組件的描述信息。
應(yīng)用運(yùn)行過(guò)程中所需的權(quán)限信息。
審核編輯 黃宇
-
模型
+關(guān)注
關(guān)注
1文章
3519瀏覽量
50414 -
鴻蒙
+關(guān)注
關(guān)注
60文章
2618瀏覽量
44038 -
HarmonyOS
+關(guān)注
關(guān)注
80文章
2126瀏覽量
33019
發(fā)布評(píng)論請(qǐng)先 登錄
Stage 模型深入解讀

FA模型訪問(wèn)Stage模型DataShareExtensionAbility說(shuō)明
如何將一個(gè)FA模型開(kāi)發(fā)的聲明式范式應(yīng)用切換到Stage模型
從FA模型切換到Stage模型時(shí):module的切換說(shuō)明
鴻蒙Stage模型和FA模型區(qū)別
Stage模型深入解讀
鴻蒙開(kāi)發(fā)Ability Kit程序框架服務(wù):FA模型與Stage模型應(yīng)用組件互通綜述

鴻蒙開(kāi)發(fā)Ability Kit程序框架服務(wù):FA模型啟動(dòng)Stage模型UIAbility

鴻蒙開(kāi)發(fā)Ability Kit程序框架服務(wù):FA模型綁定Stage模型ServiceExtensionAbility

鴻蒙開(kāi)發(fā)Ability Kit程序框架服務(wù):Stage模型啟動(dòng)FA模型PageAbility

鴻蒙開(kāi)發(fā)Ability Kit程序框架服務(wù):Stage模型綁定FA模型ServiceAbility

鴻蒙開(kāi)發(fā)Ability Kit程序框架服務(wù):FA模型切換Stage模型概述

評(píng)論