一、多HAP機(jī)制設(shè)計(jì)目標(biāo)
方便開(kāi)發(fā)者模塊化的管理應(yīng)用,好的應(yīng)用一般都是模塊化管理,模塊之間屬于松耦合關(guān)系。多HAP方便了開(kāi)發(fā)者將業(yè)務(wù)劃分成多個(gè)模塊,每個(gè)模塊放到獨(dú)立的HAP中。例如支付類應(yīng)用,有統(tǒng)一的主界面,主界面管理“掃一掃”、“收付款”、“消息”、“理財(cái)”等各個(gè)模塊。其中主界面管理其他模塊的邏輯在Entry包中實(shí)現(xiàn),而“掃一掃”、“收付款”、“消息”和“理財(cái)”等模塊在不同的Feature包中實(shí)現(xiàn)??梢酝瑫r(shí)開(kāi)發(fā)多個(gè)Feature包,能夠?qū)崿F(xiàn)Feature包單獨(dú)的開(kāi)發(fā)測(cè)試,最終由Entry包統(tǒng)一集成Feature包的特性。
方便開(kāi)發(fā)者將多HAP合理地組合并部署到不同的設(shè)備上。例如應(yīng)用程序包含一個(gè)Entry包和兩個(gè)Featrue包(Feature1和Feature2)。其中Entry包可以部署到設(shè)備A和設(shè)備B,F(xiàn)eature1只能部署到設(shè)備A,F(xiàn)eature2包只部署到設(shè)備B上,那么開(kāi)發(fā)者就可以方便的組合Entry和Feature1部署到設(shè)備A上,組合Entry和Feature2部署到設(shè)備B上。
方便開(kāi)發(fā)者按需加載所需模塊,減少包大小。開(kāi)發(fā)者可以將一個(gè)應(yīng)用的某些HAP配置成按需加載。應(yīng)用在啟動(dòng)階段初始用不到的特性,可以配置暫不加載,當(dāng)用戶用到這些特性的時(shí)候,可由應(yīng)用自動(dòng)下載這些特性HAP,一定程度上減少應(yīng)用包的大小。
方便應(yīng)用資源共享,減少程序包大小。多個(gè)HAP都需要用到的資源(包括公共資源文件、公共頁(yè)面等)以及so(shared object)文件可以放到單獨(dú)的HAP中,其他HAP可以到該HAP中訪問(wèn)資源和so文件,也一定程度上可以減少應(yīng)用程序包大小。
二、多HAP構(gòu)建視圖
IDE支持在一個(gè)應(yīng)用工程中進(jìn)行多個(gè)HAP的開(kāi)發(fā)與構(gòu)建,如下圖所示。
圖1?多HAP構(gòu)建視圖
1.IDE開(kāi)發(fā)態(tài)視圖
AppScope目錄
app.json5:配置應(yīng)用全局描述信息,例如應(yīng)用包名、版本號(hào)、應(yīng)用圖標(biāo)、應(yīng)用名稱和依賴的SDK版本號(hào)等。resources目錄:放置應(yīng)用的圖標(biāo)資源和應(yīng)用名稱字符串資源。說(shuō)明:該目錄由IDE自動(dòng)生成,名稱不可更改。AppScope目錄下面的文件名與Entry、Feature模塊下面的文件名不能重復(fù),否則IDE會(huì)報(bào)錯(cuò)。
entry或者feature目錄(名稱可由開(kāi)發(fā)者自定義)
由IDE引導(dǎo)開(kāi)發(fā)者創(chuàng)建的Module,在該Module中實(shí)現(xiàn)應(yīng)用的業(yè)務(wù)邏輯;可以創(chuàng)建多個(gè)Module,圖中entry和feature即是創(chuàng)建的兩個(gè)Module。
resources目錄:放置該Module中所使用到的資源。
ets目錄:開(kāi)發(fā)者的業(yè)務(wù)邏輯。
module.json5:配置該Module的描述信息,如:Module的名稱、Module的入口代碼路徑、包含的組件信息等。
2.編譯打包后的視圖
一個(gè)開(kāi)發(fā)態(tài)的Module編譯后生成一個(gè)部署態(tài)的HAP,Module和HAP一一對(duì)應(yīng)。
HAP中的module.json由開(kāi)發(fā)視圖中的app.json5和module.json5合成。
所有的HAP最終會(huì)編譯到一個(gè)App Pack中(以.app為后綴的包文件),用于發(fā)布到應(yīng)用市場(chǎng)。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-552286.html
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-552286.html
到了這里,關(guān)于HarmonyOS/OpenHarmony應(yīng)用開(kāi)發(fā)-程序包多HAP機(jī)制(上)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!