新聞中心
??想了解更多關(guān)于開(kāi)源的內(nèi)容,請(qǐng)?jiān)L問(wèn):??

創(chuàng)新互聯(lián)建站專注于企業(yè)全網(wǎng)營(yíng)銷推廣、網(wǎng)站重做改版、順義網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5頁(yè)面制作、商城系統(tǒng)網(wǎng)站開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為順義等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
?? 開(kāi)源基礎(chǔ)軟件社區(qū)??
??https://ost.??
Aility框架概述
Ability是應(yīng)用所具備能力的抽象,也是應(yīng)用程序的基本組成單元。OpenHarmony與HarmonyOS的應(yīng)用程序APP由一個(gè)或多個(gè)Hap包組成,每個(gè)Hap可以包含一個(gè)或多個(gè)Ability。
Ability框架模型具有兩種形態(tài),F(xiàn)A模型?以及Stage模型:
- FA模型:OpenHarmony API 8及其更早版本的應(yīng)用程序只能使用FA模型進(jìn)行開(kāi)發(fā)。FA模型將Ability分為FA(Feature Ability)和PA(Particle Ability)兩種類型,其中FA支持Page Ability,PA支持Service Ability、Data Ability、以及FormAbility。
- Stage模型:從OpenHarmony API 9開(kāi)始,Ability框架引入了Stage模型作為第二種應(yīng)用框架形態(tài),Stage模型將Ability分為PageAbility和ExtensionAbility兩大類,其中ExtensionAbility又被擴(kuò)展為ServiceExtensionAbility、FormExtensionAbility、DataShareExtensionAbility等一系列ExtensionAbility,以便滿足更多的使用場(chǎng)景。
Stage模型比較新,其被設(shè)計(jì)出來(lái)就是為了讓開(kāi)發(fā)者能更加方便地開(kāi)發(fā)出分布式環(huán)境的復(fù)雜應(yīng)用,下表是官方給出的兩種模型的設(shè)計(jì)差異:
從表中可以看到,從界面UI開(kāi)發(fā)上來(lái)看,兩者的區(qū)別不大。
FA模型的設(shè)計(jì)特點(diǎn)就是每個(gè)Ability都是小單元,每個(gè)小單元之間都是存在隔閡的,這樣可以讓開(kāi)發(fā)者專注于定制每個(gè)Ability的特定能力,這樣在簡(jiǎn)單場(chǎng)景下,應(yīng)用的Ability結(jié)構(gòu)會(huì)比較清晰明確。
FA模型與Stage模型差異對(duì)比
進(jìn)程差異
單看每個(gè)進(jìn)程,可以發(fā)現(xiàn)在FA中一個(gè)Ability只允許綁定一個(gè)JS VM(JavaScript虛擬機(jī))引擎,Stage模型中每個(gè)進(jìn)程內(nèi)的JS VM引擎可以被多個(gè)Ability共享,而JS VM(JavaScript虛擬機(jī))引擎的作用可以簡(jiǎn)單理解為讀取應(yīng)用中的JavaScript代碼,然后進(jìn)行相應(yīng)處理,起到一個(gè)解釋器的作用,讓底層可以讀懂開(kāi)發(fā)人員寫的代碼,所以Stage模型同一個(gè)進(jìn)程內(nèi)的不同Ability之間是存在更多打破隔閡的可能性,涉及到同一個(gè)進(jìn)程內(nèi)多個(gè)Ability直接的交互開(kāi)發(fā)時(shí),性能也會(huì)更高,同時(shí)支持了一個(gè)非常重要的特性,就是進(jìn)程內(nèi)可以共享對(duì)象,這意味著開(kāi)發(fā)者不需要考慮線程之間的對(duì)象共享,只需要聚焦在分布式的交互場(chǎng)景上。
生命周期間差異
生命周期的差異主要是圈起來(lái)的地方,也是就Ability從后臺(tái)和前臺(tái)之前切換的過(guò)程,F(xiàn)A模型中該部分比較簡(jiǎn)單,只有4個(gè)回調(diào)函數(shù),大家看圖也可以理解。
而在Stage模型中,設(shè)計(jì)者將Ability組件與窗口之間進(jìn)行了弱耦合,引入了WindowStage(本地窗口管理器)的概念,WindowStage主要用于處理界面獲焦?fàn)顟B(tài)(前臺(tái)),以及失焦?fàn)顟B(tài)(后臺(tái)),這樣中間層Ability只需要感知前后臺(tái)變化,而不需感知焦點(diǎn)變化,從而實(shí)現(xiàn)Ability組件和窗口之間的解耦。
解耦的目的就是為了支持多種設(shè)備形態(tài)和更易于實(shí)現(xiàn)多種不同的窗口形態(tài),從而方便裁剪,更有利于定制不同的窗口形態(tài)。
組件間差異
從組件上來(lái)看,F(xiàn)A模型的Ability組件類型比較固定,而Stage模型的Ability組件類型具備拓展性。
??想了解更多關(guān)于開(kāi)源的內(nèi)容,請(qǐng)?jiān)L問(wèn):??
?? 開(kāi)源基礎(chǔ)軟件社區(qū)??
??https://ost.??。
本文標(biāo)題:淺析Ability框架中Stage模型與FA模型的差異
本文來(lái)源:http://www.dlmjj.cn/article/dpeophh.html


咨詢
建站咨詢
