多HAP運(yùn)行機(jī)制及數(shù)據(jù)通信方式

2024-01-25 11:54 更新

多HAP機(jī)制主要是為方便開(kāi)發(fā)者進(jìn)行模塊化管理。HAP和應(yīng)用運(yùn)行時(shí)的進(jìn)程并不是一一對(duì)應(yīng)的,具體運(yùn)行機(jī)制如下:

  • 默認(rèn)情況下,應(yīng)用中(同一包名)的所有UIAbility、ServiceExtensionAbility、DataShareExtensionAbility運(yùn)行在同一個(gè)獨(dú)立進(jìn)程中,其他同類(lèi)型ExtensionAbility分別運(yùn)行在單獨(dú)的進(jìn)程。

  • HAP支持在module.json5(Stage模型)或者config.json(FA模型)中通過(guò)process標(biāo)簽配置單獨(dú)的進(jìn)程(僅系統(tǒng)應(yīng)用支持,三方應(yīng)用不支持)。配置了process的HAP,其組件運(yùn)行在單獨(dú)的process進(jìn)程中,多個(gè)HAP可以配置相同的process,則這些HAP運(yùn)行在相同進(jìn)程中,process配置的詳細(xì)說(shuō)明請(qǐng)參見(jiàn)module.json5配置文件。

  • 應(yīng)用運(yùn)行時(shí),同一進(jìn)程中的UIAbility組件被啟動(dòng)時(shí),才加載對(duì)應(yīng)HAP的資源和代碼。

基于上述機(jī)制,多HAP數(shù)據(jù)通信方式如下:

  • 同一進(jìn)程內(nèi)的數(shù)據(jù)通信,請(qǐng)參見(jiàn)線程間通信。

  • 跨進(jìn)程的數(shù)據(jù)通信,請(qǐng)參見(jiàn)進(jìn)程間通信。

  • 多HAP如果運(yùn)行在同一進(jìn)程,則多HAP間組件的通信方式與同一HAP內(nèi)組件的通信方式相同。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)