国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【HarmonyOS】Stage 模型 - 基本概念

這篇具有很好參考價(jià)值的文章主要介紹了【HarmonyOS】Stage 模型 - 基本概念。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、項(xiàng)目結(jié)構(gòu)

如圖1所示:
【HarmonyOS】Stage 模型 - 基本概念,HarmonyOS,harmonyos,華為,arkts,arkui,Stage,Stage模型

圖1

從項(xiàng)目結(jié)構(gòu)來(lái)看,這個(gè)應(yīng)用的內(nèi)部包含了一個(gè)子模塊叫 entry,模塊是應(yīng)用的基本功能單元,它里面包含源代碼、資源、配置文件等。

像這樣的模塊在應(yīng)用內(nèi)部可以創(chuàng)建很多。但模塊整體來(lái)講就分成兩大類:

  • 第一類就像 entry 這樣,它的內(nèi)部其實(shí)是開(kāi)發(fā)這個(gè)應(yīng)用內(nèi)的一些特殊能力的,像這樣的模塊,我們稱之為 Ability Module,顧名思義就是能力模塊。一個(gè)應(yīng)用的內(nèi)部它的能力有很多,我們就可以把不同的能力放到不同的模塊里去開(kāi)發(fā)。舉個(gè)例子,支付寶,它的核心功能是支付,像我們熟悉的付款、轉(zhuǎn)賬等都屬于是支付類的,這部分能力我們就可以把它們放到一個(gè)模塊里。后來(lái)隨著支付寶的發(fā)展,又增加了其他的能力,比如小程序、視頻、看書等,這些能力相互之間都是獨(dú)立的,所以它們也都可以放到獨(dú)立的 Ability Module 里去開(kāi)發(fā)。這樣一來(lái)整個(gè)應(yīng)用的能力就被清晰的劃分出來(lái),管理起來(lái)也非常的方便。

  • 第二類是在開(kāi)發(fā)的過(guò)程肯定有一些通用的工具、資源、配置或者組件等,這些如果每一個(gè)模塊都各自去開(kāi)發(fā)顯然是一種重復(fù)和浪費(fèi),所以我們就可以把這些通用的東西抽取起來(lái),放到一個(gè)單獨(dú)的模塊里去,這樣的模塊我們稱之為 Library Module,顧名思義就是一種共享依賴類型的模塊。Ability 類型的 Module 就可以去引用 Library 類型的 Module。

如圖2所示:
【HarmonyOS】Stage 模型 - 基本概念,HarmonyOS,harmonyos,華為,arkts,arkui,Stage,Stage模型

圖2

二、項(xiàng)目編譯、打包

源碼將來(lái)肯定要去編譯、打包,最終整個(gè)項(xiàng)目會(huì)被編譯成一個(gè) APP,也就是我們熟悉的那個(gè)安裝包。只不過(guò),在 Stage 模型里面,為了降低不同功能模塊之間的耦合,事實(shí)上每一個(gè)模塊都是可以去獨(dú)立編譯和運(yùn)行的。所有的 Ability 類型的模塊,將來(lái)就會(huì)被編譯成 HAP 文件,而所有的 Library 類型的模塊,則會(huì)被編譯成 HSP 文件。所謂的 HAPHarmony Ability Package,也就是鴻蒙能力類型的包。而 HSP 則是 Harmony Shared Package,也就是鴻蒙共享類型的包。HAP 的包在運(yùn)行的過(guò)程中就可以去引用和依賴 HSP 的包。

一個(gè)應(yīng)用內(nèi)部可能會(huì)包含多個(gè)不同的能力,就會(huì)分成很多的 Ability Module,因此往往就會(huì)有多個(gè) HAP 的文件。但是,盡管都是 HAP 類型的文件,但是它們是有差異的,比如 entry 模塊,entry 是項(xiàng)目的入口,在這個(gè)能力模塊里面,主要開(kāi)發(fā)的是項(xiàng)目入口界面等信息,還有就是整個(gè)項(xiàng)目或應(yīng)用的主能力模塊,也就是最核心的部分。剩下的一些特殊的能力模塊,比如小程序、視頻、看書等,這些能力模塊,都是拓展功能。一個(gè)應(yīng)用它的入口只能有一個(gè),所以說(shuō)如果我們的應(yīng)用內(nèi)部有很多的 HAP 文件,但是作為入口的 HAP 文件只有一個(gè),那么這個(gè) HAP 文件就叫 Entry 類型的 HAP,剩下的拓展功能就叫 Feature 類型的 HAP。所以,一個(gè)應(yīng)用內(nèi)部有且只有一個(gè) Entry 類型的 HAP,但是 Feature 類型的 HAP 可以有多個(gè)。

HAP 有很多很多文件,將來(lái)最終要合并在一起。合并在一起之后稱之為 Bundle。這個(gè) Bundle 有一個(gè)自己的名字也就是 Bundle Name,這個(gè) Name 可以理解成整個(gè)應(yīng)用的唯一標(biāo)識(shí),將來(lái)整個(gè) Bundle 最后合并打包會(huì)變成一個(gè) APP。

如圖3所示:
【HarmonyOS】Stage 模型 - 基本概念,HarmonyOS,harmonyos,華為,arkts,arkui,Stage,Stage模型

圖3

之所以要采用這種多 HAP 文件打包模式,是因?yàn)椋?/p>

  1. 降低不同模塊之間的耦合,每個(gè) HAP 都可以去獨(dú)立編譯和運(yùn)行。
  2. 我們的應(yīng)用在去下載安裝時(shí),可以選擇性的安裝,不是說(shuō)一上來(lái)就把全部都安裝好了,比如我們可以先安裝它的核心模塊 Entry,其它的 Feature 可以選擇性安裝。這樣就可以降低應(yīng)用安裝時(shí)所占用的體積。

三、項(xiàng)目運(yùn)行

每一個(gè) HAP 都是可以獨(dú)立運(yùn)行的,而 HAP 在運(yùn)行的時(shí)候,為了展示我們看到的界面和它的能力,都會(huì)創(chuàng)建一個(gè)名為 AbilityStage 的實(shí)例,我們稱它為應(yīng)用組件的“舞臺(tái)”。為啥叫舞臺(tái)呢?舞臺(tái)肯定是在上面展示東西的,顧名思義展示的就是應(yīng)用組件。

應(yīng)用能力組件又有很多類型:

  • UIAbility:包含UI界面的應(yīng)用組件,是系統(tǒng)調(diào)度的基本單元。
  • ExtensionAbility:拓展能力組件,例如在桌面展示的應(yīng)用卡片等。

UIAbility 作為UI界面的組件,將來(lái)要展示UI界面,需要注意,它不是直接展示,首先會(huì)持有一個(gè) WindowStage 的實(shí)例對(duì)象,WindowStage 跟 AbilityStage 類似,都是一個(gè)舞臺(tái),但是 WindowStage 是組件內(nèi)窗口的舞臺(tái),也就是說(shuō)UI組件內(nèi)部先要有一個(gè)窗口(這個(gè)窗口是要展示在舞臺(tái)上),所以 WindowStage 它的上面就會(huì)持有 Window 對(duì)象,也就是窗口,窗口里面展示我們的UI界面。因此這個(gè) Window 就是用來(lái)繪制UI頁(yè)面的窗口。

如圖4所示:
【HarmonyOS】Stage 模型 - 基本概念,HarmonyOS,harmonyos,華為,arkts,arkui,Stage,Stage模型

圖4

綜上所述,Stage 模型采用的是舞臺(tái)的機(jī)制,先來(lái)一個(gè) AbilityStage(用來(lái)展示這些組件的舞臺(tái)),然后在舞臺(tái)上創(chuàng)建 Ability,這個(gè)組件將來(lái)要去渲染UI,它要持有一個(gè)窗口的舞臺(tái)(WindowStage),在窗口的舞臺(tái)上有一個(gè)窗口(Window),接著呢就可以在窗口里繪制頁(yè)面。所以正是因?yàn)橛泻芏嗪芏嗟奈枧_(tái),在舞臺(tái)上展示東西,這種模型就被稱之為 Stage 模型。

為什么 Stage 模型要用這種舞臺(tái)機(jī)制呢?正是由于存在這種舞臺(tái)機(jī)制,Ability 和 Window 就分隔開(kāi),它們之間就解耦了,將來(lái)在開(kāi)發(fā)跨設(shè)備的應(yīng)用時(shí),就可以針對(duì)不同的設(shè)備對(duì)于窗口進(jìn)行單獨(dú)的裁剪,去適應(yīng)不同的設(shè)備。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-859750.html

到了這里,關(guān)于【HarmonyOS】Stage 模型 - 基本概念的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • HarmonyOS 自定義進(jìn)度條 Stage模型

    通過(guò)onTouch監(jiān)聽(tīng)滑動(dòng),動(dòng)態(tài)改變圓角

    2024年02月21日
    瀏覽(21)
  • HarmonyOS--ArkTS(1)--基本語(yǔ)法(1)

    HarmonyOS--ArkTS(1)--基本語(yǔ)法(1)

    目錄 基本語(yǔ)法概述 聲明式UI描述 自定義組件 創(chuàng)建自定義組件 自定義組件的結(jié)構(gòu)--struct ,@Component,build()函數(shù) 生命周期 裝飾器: 用于裝飾類、結(jié)構(gòu)、方法以及變量,并賦予其特殊的含義。如上述示例中@Entry、@Component和@State都是裝飾器,@Component表示自定義組件,@Entry表示該

    2024年01月21日
    瀏覽(24)
  • HarmonyOS Stage模型 UIAbility生命周期狀態(tài)

    HarmonyOS Stage模型 UIAbility生命周期狀態(tài)

    UIAbility的生命周期包括Create、Foreground、Background、Destroy四個(gè)狀態(tài) Create 狀態(tài),在UIAbility實(shí)例 創(chuàng)建 時(shí)觸發(fā),對(duì)應(yīng)onCreate回調(diào)??梢栽趏nCreate回調(diào)中進(jìn)行相關(guān)初始化操作 Foreground 狀態(tài),在UIAbility 切換至前臺(tái) 時(shí)觸發(fā)。對(duì)應(yīng)onForeground回調(diào),在UIAbility的UI頁(yè)面可見(jiàn)之前,即UIAbility切換至

    2024年01月16日
    瀏覽(59)
  • Stage模型HarmonyOS服務(wù)卡片開(kāi)發(fā)整體說(shuō)明

    Stage模型HarmonyOS服務(wù)卡片開(kāi)發(fā)整體說(shuō)明

    服務(wù)卡片(以下簡(jiǎn)稱“卡片”)是一種界面展示形式,可以將應(yīng)用的重要信息或操作前置到卡片,以達(dá)到服務(wù)直達(dá)、減少體驗(yàn)層級(jí)的目的??ㄆS糜谇度氲狡渌麘?yīng)用(當(dāng)前卡片使用方只支持系統(tǒng)應(yīng)用,如桌面)中作為其界面顯示的一部分,并支持拉起頁(yè)面、發(fā)送消息等基礎(chǔ)

    2024年02月15日
    瀏覽(25)
  • 鴻蒙HarmonyOS實(shí)戰(zhàn)-ArkTS語(yǔ)言(基本語(yǔ)法)

    鴻蒙HarmonyOS實(shí)戰(zhàn)-ArkTS語(yǔ)言(基本語(yǔ)法)

    ??1.簡(jiǎn)介 HarmonyOS的ArkTS語(yǔ)言是一種基于TypeScript開(kāi)發(fā)的語(yǔ)言,它專為HarmonyOS系統(tǒng)開(kāi)發(fā)而設(shè)計(jì)。ArkTS語(yǔ)言結(jié)合了JavaScript的靈活性和TypeScript的嚴(yán)謹(jǐn)性,使得開(kāi)發(fā)者能夠快速、高效地開(kāi)發(fā)出高質(zhì)量的HarmonyOS應(yīng)用程序。 ArkTS語(yǔ)言具有以下特點(diǎn): 靜態(tài)類型檢查:開(kāi)發(fā)者在編寫代碼時(shí)可以

    2024年01月18日
    瀏覽(39)
  • HarmonyOS/OpenHarmony(Stage模型)應(yīng)用開(kāi)發(fā)單一手勢(shì)(二)

    HarmonyOS/OpenHarmony(Stage模型)應(yīng)用開(kāi)發(fā)單一手勢(shì)(二)

    三、拖動(dòng)手勢(shì)(PanGesture) .PanGestureOptions(value?:{ fingers?:number; direction?:PanDirection; distance?:number}) 拖動(dòng)手勢(shì)用于觸發(fā)拖動(dòng)手勢(shì)事件,滑動(dòng)達(dá)到最小滑動(dòng)距離(默認(rèn)值為5vp)時(shí)拖動(dòng)手勢(shì)識(shí)別成功,擁有三個(gè)可選參數(shù): fingers:非必選參數(shù),用于聲明觸發(fā)拖動(dòng)手勢(shì)所需要的最少手指數(shù)

    2024年02月09日
    瀏覽(31)
  • HarmonyOS/OpenHarmony(Stage模型)卡片開(kāi)發(fā)AbilityStage組件容器

    AbilityStage是一個(gè)Module級(jí)別的組件容器,應(yīng)用的HAP在首次加載時(shí)會(huì)創(chuàng)建一個(gè)AbilityStage實(shí)例,可以對(duì)該Module進(jìn)行初始化等操作。 AbilityStage與Module一一對(duì)應(yīng),即一個(gè)Module擁有一個(gè)AbilityStage。 DevEco Studio默認(rèn)工程中未自動(dòng)生成AbilityStage,如需要使用AbilityStage的能力,可以手動(dòng)新建一個(gè)

    2024年02月11日
    瀏覽(22)
  • 鴻蒙HarmonyOS實(shí)戰(zhàn)-Stage模型(應(yīng)用上下文Context)

    鴻蒙HarmonyOS實(shí)戰(zhàn)-Stage模型(應(yīng)用上下文Context)

    應(yīng)用上下文(Context)是應(yīng)用程序的全局信息的接口。它是一個(gè)抽象類,提供了訪問(wèn)應(yīng)用程序環(huán)境的方法和資源的方法。應(yīng)用上下文可以用于獲取應(yīng)用程序的資源、啟動(dòng)Activity、發(fā)送廣播等。每個(gè)應(yīng)用程序都有一個(gè)應(yīng)用上下文對(duì)象,它在整個(gè)應(yīng)用程序的生命周期內(nèi)都是唯一的。

    2024年02月20日
    瀏覽(21)
  • HarmonyOS/OpenHarmony(Stage模型)應(yīng)用開(kāi)發(fā)單一手勢(shì)(三)

    HarmonyOS/OpenHarmony(Stage模型)應(yīng)用開(kāi)發(fā)單一手勢(shì)(三)

    RotationGesture (value?:{ fingers ? :number ; angle ? :number }) 旋轉(zhuǎn)手勢(shì)用于觸發(fā)旋轉(zhuǎn)手勢(shì)事件,觸發(fā)旋轉(zhuǎn)手勢(shì)的最少手指數(shù)量為2指,最大為5指,最小改變度數(shù)為1度,擁有兩個(gè)可選參數(shù): fingers:非必選參數(shù),用于聲明觸發(fā)旋轉(zhuǎn)手勢(shì)所需要的最少手指數(shù)量,最小值為2,最大值為5,默認(rèn)值

    2024年02月09日
    瀏覽(25)
  • HarmonyOS/OpenHarmony應(yīng)用開(kāi)發(fā)-Stage模型應(yīng)用/組件級(jí)配置

    HarmonyOS/OpenHarmony應(yīng)用開(kāi)發(fā)-Stage模型應(yīng)用/組件級(jí)配置

    在開(kāi)發(fā)應(yīng)用時(shí),需要配置應(yīng)用的一些標(biāo)簽,例如應(yīng)用的包名、圖標(biāo)等標(biāo)識(shí)特征的屬性。本文描述了在開(kāi)發(fā)應(yīng)用需要配置的一些關(guān)鍵標(biāo)簽。圖標(biāo)和標(biāo)簽通常一起配置,可以分為應(yīng)用圖標(biāo)、應(yīng)用標(biāo)簽和入口圖標(biāo)、入口標(biāo)簽,分別對(duì)應(yīng) app.json5配置文件 和 module.json5配置文件 文件中的

    2024年02月13日
    瀏覽(21)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包