成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Openharmony IPC通信(L2)

原創(chuàng)
系統(tǒng) OpenHarmony
Openharmony的IPC通信,幾乎所有模塊都有用到。對IPC通信流程的理解,為熟悉了解其他模塊有很重要的幫助。

??想了解更多內(nèi)容,請訪問:??

??51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)??

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

一、簡介

Openharmony的IPC通信,幾乎所有模塊都有用到。

對IPC通信流程的理解,為熟悉了解其他模塊有很重要的幫助。

IPC通信(倉庫:communication_ipc)與safwk系統(tǒng)服務(wù)框架(倉庫:distributedschedule_safwk)和samgr系統(tǒng)服務(wù)管理(倉庫:distributedschedule_samgr)有很緊密的聯(lián)系。

二、IPC通信

2.1 IPC通信注冊流程

以foundation\communication\ipc\ipc\test\auxiliary\native為例,對IPC進(jìn)行梳理。

IPC通信包括客戶端(client)和服務(wù)端(service)。

  • 服務(wù)端TestService繼承自IPCObjectStub。
  • 客戶端TestServiceClient通過iface_cast(object)獲取到一個TestServiceProxy對象。TestServiceProxy繼承自PeerHolder,里面包含指向IPCObjectProxy的指針。
  • 客戶端的IPCObjectProxy和服務(wù)端IPCObjectStub是對應(yīng)關(guān)系。

流程圖:

流程圖解釋

服務(wù)端以IPC_TEST_SERVICE為saId,將繼承自IPCObjectStub的對象經(jīng)dbinder驅(qū)動,注冊到samgr系統(tǒng)服務(wù)管理進(jìn)程中去。

binder_translate_binder有一個將標(biāo)志為BINDER_TYPE_BINDER轉(zhuǎn)換成BINDER_TYPE_HANDLE的過程。samgr響應(yīng)注冊消息,通過BinderInvoker::UnflattenObject解析對象,實際上是根據(jù)注冊的IPCObjectStubnew一個IPCObjectProxy對象存儲在samgr的map中。

客戶端以IPC_TEST_SERVICE去samgr中取IPCObjectProxy對象。并通過iface_castnew一個包含取的IPCObjectProxy的TestServiceProxy對象。這樣客戶端和服務(wù)端就建立起了關(guān)系,可以進(jìn)行下一步相互通信。

2.2 IPC通信交互

Openharmony的IPC通信,有點類似http協(xié)議:客戶發(fā)送數(shù)據(jù)==>服務(wù)端響應(yīng)處理數(shù)據(jù)==>服務(wù)端回復(fù)==>客戶端獲取到回復(fù)數(shù)據(jù)

流程圖如下:

客戶端與服務(wù)端的交互

客戶端通過: Remote()->SendRequest向服務(wù)端發(fā)消息,等待結(jié)果。

服務(wù)端通過: xxxServiceStub::OnRemoteRequest處理客戶端消息,并回復(fù)。

三、samgr系統(tǒng)服務(wù)管理進(jìn)程

主要管理各個模塊服務(wù)端注冊的saId和IPCObjectProxy對象鍵值對。

四、safwk系統(tǒng)服務(wù)框架

IPC客戶端服務(wù)端注冊拉起框架。

4.1 服務(wù)端的注冊

xxxInterface是客戶端和服務(wù)端都需要實現(xiàn)的接口繼承類。

注冊方式1,基本上自己有main函數(shù)入口:

xxxService繼承IPCObjectStub 和 xxxInterface

auto saMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
sptr<IRemoteObject> newInstance = new xxxService();
int result = saMgr->AddSystemAbility(xxxSaId, newInstance);

注冊方式2, 本身沒有main函數(shù)入口,需要借助safwk的main入口:

xxxService繼承IPCObjectStub,xxxInterface 和 SystemAbility

// 注冊方式2的第一種方式
REGISTER_SYSTEM_ABILITY_BY_ID(xxxService, xxxSaId, true);
// 注冊方式2的第二種方式
SystemAbility::MakeAndRegisterAbility

4.2 服務(wù)拉起

  • 注冊方式1:有main入口,是一個獨立進(jìn)程。直接運行即可。
  • 注冊方式2:編譯出來是一個動態(tài)庫,

通過: /system/bin/sa_main /system/profile/xxx_sa.xml拉起來,xml文件中配置了動態(tài)庫信息。可以參考文檔

??【OpenHarmony SA 動態(tài)庫服務(wù) 拉起的main入口】??了解拉起流程

4.3 客戶端類定義

xxxServiceProxy繼承PeerHolder 和 xxxInterface

客戶端類中定義一個靜態(tài)變量:

// 定義靜態(tài)變量,才能通過iface_cast創(chuàng)建一個包含IPCObjectProxy的xxxServiceProxy對象
static inline BrokerDelegator<xxxServiceProxy> delegator_;

4.4 客戶端獲取注冊信息

auto saMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
sptr<IRemoteObject> object = saMgr->GetSystemAbility(SaId);
client = iface_cast<xxxInterface >(object);

以foundation\communication\ipc\ipc\test\auxiliary\native為例繼承圖:

??想了解更多內(nèi)容,請訪問:??

??51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)??

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

責(zé)任編輯:jianghua 來源: 鴻蒙社區(qū)
相關(guān)推薦

2022-07-04 16:41:16

IPC通信HiTrace

2022-07-14 19:03:33

IPC服務(wù)鴻蒙

2022-02-21 15:38:57

Openharmon操作系統(tǒng)鴻蒙

2022-06-22 09:14:23

事件打點HiSysEvent

2022-06-14 15:07:04

IPC客戶端服務(wù)端

2022-04-06 11:27:05

harmonyeTS 開發(fā)NAPI開發(fā)

2021-10-20 19:14:30

緩存CacheCPU

2015-01-20 13:19:52

OpenStack網(wǎng)絡(luò)層數(shù)據(jù)鏈路層

2022-01-06 16:16:21

鴻蒙HarmonyOS應(yīng)用

2023-02-20 08:00:00

2023-01-31 09:12:16

CPU芯片緩存

2023-10-10 15:33:55

機器學(xué)習(xí)相似性度量

2022-08-26 14:58:43

區(qū)塊鏈比特幣架構(gòu)

2022-01-14 09:57:14

鴻蒙HarmonyOS應(yīng)用

2019-07-30 13:18:25

自動駕駛L2駕駛

2014-11-25 13:28:17

openstackneutronDVR

2022-02-14 13:52:04

OpenHarmor系統(tǒng)鴻蒙

2024-08-08 15:46:34

2022-03-21 15:42:36

智能家居物聯(lián)網(wǎng)MQTT

2022-03-28 15:40:34

harmony鴻蒙操作系統(tǒng)
點贊
收藏

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

主站蜘蛛池模板: 粉嫩一区二区三区性色av | 国产成人av一区二区三区 | 亚洲一区二区三 | 精品久久精品 | 久久精品国产v日韩v亚洲 | 欧美成年人视频在线观看 | 亚洲国产精品一区二区久久 | 日韩欧美网 | av在线电影网| 日韩精品成人在线 | 亚洲国产精品一区二区三区 | 国产精品久久久久婷婷二区次 | 日本欧美国产在线 | 午夜免费网 | 国产精品久久国产精品 | 午夜精品久久久久久久久久久久久 | 国产成人综合在线 | 国产高清视频一区 | 国产精品观看 | 天堂一区在线观看 | 欧美国产日韩在线观看 | 国产成人一区二区三区精 | 欧美一区二区在线 | av资源中文在线 | 91成人在线视频 | 少妇诱惑av | 国产激情福利 | 日韩高清国产一区在线 | 九色porny自拍视频 | 国产精品久久久久aaaa樱花 | 北条麻妃av一区二区三区 | 欧美精品在欧美一区二区少妇 | 毛片免费观看 | 伊人狠狠干 | 中文精品视频 | 欧美日韩一区二区三区在线观看 | 91精品国产综合久久精品图片 | 精品国产亚洲一区二区三区大结局 | 欧美视频成人 | 一区二区三区国产精品 | 欧美一区二区三区在线观看 |