自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺析Ability框架中Stage模型與FA模型的差異

數(shù)據(jù)庫 MySQL
Ability是應(yīng)用所具備能力的抽象,也是應(yīng)用程序的基本組成單元。OpenHarmony與HarmonyOS的應(yīng)用程序APP由一個(gè)或多個(gè)Hap包組成,每個(gè)Hap可以包含一個(gè)或多個(gè)Ability。

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

??51CTO 開源基礎(chǔ)軟件社區(qū)??

??https://ost.51cto.com??

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模型:

#打卡不停更#【FFH】淺析Ability框架中Stage模型與FA模型的差異-開源基礎(chǔ)軟件社區(qū)

  • FA模型:OpenHarmony API 8及其更早版本的應(yīng)用程序只能使用FA模型進(jìn)行開發(fā)。FA模型將Ability分為FA(Feature Ability)和PA(Particle Ability)兩種類型,其中FA支持Page Ability,PA支持Service Ability、Data Ability、以及FormAbility。

#打卡不停更#【FFH】淺析Ability框架中Stage模型與FA模型的差異-開源基礎(chǔ)軟件社區(qū)

  • Stage模型:從OpenHarmony API 9開始,Ability框架引入了Stage模型作為第二種應(yīng)用框架形態(tài),Stage模型將Ability分為PageAbility和ExtensionAbility兩大類,其中ExtensionAbility又被擴(kuò)展為ServiceExtensionAbility、FormExtensionAbility、DataShareExtensionAbility等一系列ExtensionAbility,以便滿足更多的使用場(chǎng)景。

#打卡不停更#【FFH】淺析Ability框架中Stage模型與FA模型的差異-開源基礎(chǔ)軟件社區(qū)

Stage模型比較新,其被設(shè)計(jì)出來就是為了讓開發(fā)者能更加方便地開發(fā)出分布式環(huán)境的復(fù)雜應(yīng)用,下表是官方給出的兩種模型的設(shè)計(jì)差異:

#打卡不停更#【FFH】淺析Ability框架中Stage模型與FA模型的差異-開源基礎(chǔ)軟件社區(qū)

從表中可以看到,從界面UI開發(fā)上來看,兩者的區(qū)別不大。

FA模型的設(shè)計(jì)特點(diǎn)就是每個(gè)Ability都是小單元,每個(gè)小單元之間都是存在隔閡的,這樣可以讓開發(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è)解釋器的作用,讓底層可以讀懂開發(fā)人員寫的代碼,所以Stage模型同一個(gè)進(jìn)程內(nèi)的不同Ability之間是存在更多打破隔閡的可能性,涉及到同一個(gè)進(jìn)程內(nèi)多個(gè)Ability直接的交互開發(fā)時(shí),性能也會(huì)更高,同時(shí)支持了一個(gè)非常重要的特性,就是進(jìn)程內(nèi)可以共享對(duì)象,這意味著開發(fā)者不需要考慮線程之間的對(duì)象共享,只需要聚焦在分布式的交互場(chǎng)景上。

#打卡不停更#【FFH】淺析Ability框架中Stage模型與FA模型的差異-開源基礎(chǔ)軟件社區(qū)

生命周期間差異

#打卡不停更#【FFH】淺析Ability框架中Stage模型與FA模型的差異-開源基礎(chǔ)軟件社區(qū)

生命周期的差異主要是圈起來的地方,也是就Ability從后臺(tái)和前臺(tái)之前切換的過程,F(xiàn)A模型中該部分比較簡(jiǎn)單,只有4個(gè)回調(diào)函數(shù),大家看圖也可以理解。

#打卡不停更#【FFH】淺析Ability框架中Stage模型與FA模型的差異-開源基礎(chǔ)軟件社區(qū)

而在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)。

組件間差異

從組件上來看,F(xiàn)A模型的Ability組件類型比較固定,而Stage模型的Ability組件類型具備拓展性。

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

??51CTO 開源基礎(chǔ)軟件社區(qū)??

??https://ost.51cto.com??。

責(zé)任編輯:jianghua 來源: 51CTO開源基礎(chǔ)軟件社區(qū)
相關(guān)推薦

2022-12-26 11:24:28

鴻蒙Stage模型

2022-08-28 20:50:29

算法模型機(jī)器學(xué)習(xí)

2010-08-02 09:12:18

云計(jì)算安全模型

2022-09-07 15:28:02

Stage模型Ability

2024-12-09 10:18:37

2021-06-29 09:34:00

洋蔥模型中間件

2024-09-09 07:46:16

2020-09-23 14:20:07

Kubernetes容器網(wǎng)絡(luò)模型

2011-06-20 15:13:08

Qt 對(duì)象模型

2025-03-31 01:30:00

Gin框架模型

2009-09-15 10:12:37

LINQ To SQL

2017-07-07 16:36:28

BIOIO模型 NIO

2022-09-08 15:18:51

Ability鴻蒙

2024-02-19 07:40:10

2010-01-25 14:18:46

C++對(duì)象模型

2011-05-24 11:20:53

OTNWSSFOADM

2012-01-17 17:21:24

JavaSwing

2012-04-06 13:18:58

IE6W3CDIV

2024-07-15 08:31:19

2021-06-11 10:41:36

大數(shù)據(jù)安全數(shù)據(jù)保護(hù)數(shù)據(jù)安全
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)