本文 我們來說harmonyos中的一種應(yīng)用模型
Stage模型
官方提供了兩種模型 一種是早期的 FA模型 另一種就是就是 harmonyos 3.1才開始的新增的一種模型 Stage模型
目前來講 Stage 會(huì)成為現(xiàn)在乃至將來 長期推進(jìn)的一種模型
也就是 無論是 現(xiàn)在的harmonyos 4.0 乃至 之后要發(fā)布的 harmonyos next 都會(huì)建議我們通過 Stage模型開發(fā)
本文呢 我們先來看一下Stage模型基本的一個(gè)概念
首先 我們項(xiàng)目里都會(huì)有一個(gè) entry 子模塊
模塊是應(yīng)用的基本單元
它里面就會(huì)包含源代碼 還有一些資源 以及一些配置文件之類的
那其實(shí)想這樣的模塊 我們在一個(gè)應(yīng)用中還可以創(chuàng)建很多很多
但模塊基本來講,還是就分成兩大類
第一類就像我們 entry這樣 用來開發(fā)我們應(yīng)用的一些能力的
像這樣的 我們就稱作 Ability Module
顧名思義 能力模塊
一個(gè)應(yīng)用的內(nèi)部它的能力有很多很多,我們就可以把不同的能力 放到不同的模塊開發(fā)
比如 大家很熟悉的微信
一個(gè)社交類的應(yīng)用 它的核心功能其實(shí)就是社交嘛
那其中 聊天啊 朋友圈啊 好友啊 其實(shí)這些都可以分成一個(gè)社交類
這部分能力就可以放到同一個(gè)模塊中
那后來 隨著微信的發(fā)展 它有出來了一些新的功能 例如小程序呀 視頻號(hào)呀等等
這些能力相互之間也都是獨(dú)立的
所以 他們也都可以放在獨(dú)立的 Ability Module 里面去
這樣一來 我們整個(gè)應(yīng)用的能力就都清晰的劃分出來了
管理起來也非常的方便
這些屬于一類 Ability Module
這些過程當(dāng)中呢 他們就會(huì)有一些通用的 工具 資源 或者組件等等
那如果這些模塊,大家都各自去開發(fā),顯然是一種重復(fù)和浪費(fèi)
所以 我們就可以把重用的東西抽取出來,放到一個(gè)單獨(dú)的模塊里去
這種模塊我們就稱作 Library Module
顧名思義 就是 一種共享的依賴模塊
那么 他們之間 Ability Module 就可以去引用 Library Module
然后 我們回到編輯器
我們選擇根目錄右鍵 選擇New 就可以看到 module 模塊選項(xiàng)了
點(diǎn)擊之后 我們這里就會(huì)有這種 module 的各種模板
其實(shí)這么多 無法就是分成 Ability和Library
那么 這就是Stage模型創(chuàng)建的一個(gè)基本的項(xiàng)目結(jié)構(gòu)了
但這是源碼 最后整個(gè)項(xiàng)目還是會(huì)被打包成一個(gè)安裝包
只是在Stage模型中 為了降低不同模塊之間的耦合 每一個(gè)模塊都可以獨(dú)立編譯或運(yùn)行的
那么之后所有Ability類型的模塊,將來就會(huì)被編譯成 .HAP 格式的文件
但我們一個(gè)App那肯定只能有一個(gè)入口呀,對(duì)不對(duì)?
那么 當(dāng)我們有多個(gè)HAP文件時(shí) 那么就要設(shè)置一個(gè)入口文件 我們將它稱之為 Entry 類型的HAP文件
其他就可以理解為一些拓展功能 叫 Feature類型的 HAP
簡單說 一個(gè)項(xiàng)目只能有一個(gè) Entry類型的HAP 因?yàn)槟銢]辦法給一個(gè)app多個(gè)入口,但是呢 可以有多個(gè)Feature 拓展功能可以一直往后加呀
最終 我們所有的HAP 肯定還是都要合并到一個(gè)app中的
合并到一起之后 我們稱之為 Bundle
那么 我們可以設(shè)置一個(gè) Bundle
Bundle 會(huì)有一個(gè)name屬性 我們可以給它一個(gè)獨(dú)立標(biāo)識(shí)
最后 Bundle 合并在一起 就是一個(gè)app安裝包
而且 最大的好處是 首先 Entry 肯定是要的 跑不掉 但其他模塊 可以選擇性的安裝
這樣 你就可以讓應(yīng)用沒那么大 以及提高安裝效率
首先,我們知道,每一個(gè)HAP都是可以獨(dú)立運(yùn)行的,它在運(yùn)行時(shí) 為了展示我們的界面和一些邏輯
它都會(huì)創(chuàng)建一個(gè) AbilityStage 實(shí)例 AbilityStage 在這里 被我們翻譯為應(yīng)用組件能力的舞臺(tái)
這個(gè)舞臺(tái)的意思就很明顯了,應(yīng)用展示自己能力的地方。
AbilityStage 最常見的就是
ExtensionAbility和UIAbility
UIAbility 它是 包含UI界面的應(yīng)用組件,是系統(tǒng)調(diào)度的基本單元。文章來源:http://www.zghlxwxcb.cn/news/detail-834071.html
UIAbility內(nèi)部會(huì)先有一個(gè)Windowstage 簡單說 就是一個(gè)窗口 在這個(gè)窗口中展示我們的UI界面文章來源地址http://www.zghlxwxcb.cn/news/detail-834071.html
到了這里,關(guān)于HarmonyOS Stage模型基本概念講解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!