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

OpenHarmony IPC 服務的動態加載(拉起)流程(L2)

系統 OpenHarmony
此文章介紹服務的另外一種拉起方式動態加載:服務不配置成開機拉起,在客戶端運行的時候,去拉起對應的服務。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

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

簡介

IPC通信,通常包括客服端和服務端。服務端的拉起: 通常都配置成開機啟動拉起,開機的時候init進程把服務拉起。此文章介紹服務的另外一種拉起方式動態加載:服務不配置成開機拉起,在客戶端運行的時候,去拉起對應的服務。示例以openharmony 3.1版本為基礎實現的。

動態加載數據流程解析

動態加載涉及到4個進程間的數據流轉。對于init的數據處理到拉起服務端過程進行大致梳理,如果發現有問題的的可以交流,把這個流程做更正確更精準一些。流程可以參考下圖+結合后面的示例分析。

#夏日挑戰賽# OpenHarmony IPC服務的動態加載(拉起)流程(L2)-開源基礎軟件社區

  • 客戶端(myappclient) 發起拉起 服務命令,最后init拉起服務端(myappservice_sa)。
  • 服務拉啟之后,客戶端和服務端 進行IPC通信。
    流程圖工具vscode+plantUML(插件)。
    init拉起服務的日志:hilog -t kmsg。

動態加載示例

子系統配置

build\subsystem_config.json:

"myapp": {
"path":"myapptest",
"name": "myapp"
}

#夏日挑戰賽# OpenHarmony IPC服務的動態加載(拉起)流程(L2)-開源基礎軟件社區

產品配置

productdefine\common\products\Hi3516DV300.json:

"myapp:myappservice_test":{}

#夏日挑戰賽# OpenHarmony IPC服務的動態加載(拉起)流程(L2)-開源基礎軟件社區

代碼

代碼目錄結構

#夏日挑戰賽# OpenHarmony IPC服務的動態加載(拉起)流程(L2)-開源基礎軟件社區

myapptest放在代碼根目錄,代碼見附件。

服務ID的添加

服務ID有統一的頭文件。

foundation\distributedschedule\samgr\interfaces\innerkits\samgr_proxy\include\system_ability_definition.h:

MY_APP_SERVICE_ID                                = 9000,
...
{ MY_APP_SERVICE_ID, "MyAppService"},

#夏日挑戰賽# OpenHarmony IPC服務的動態加載(拉起)流程(L2)-開源基礎軟件社區

#夏日挑戰賽# OpenHarmony IPC服務的動態加載(拉起)流程(L2)-開源基礎軟件社區

客戶端動態加載服務的關鍵代碼段,見附件:

// 加載動態庫服務
sptr<CallBack> callback(new CallBack());
saMgr->LoadSystemAbility(MY_APP_SERVICE_ID, callback);

// 阻塞,等待isload傳入值
bool laodResult = callback->getLoadResult();
(void)laodResult;

編譯

要全量編譯9000.xml 才能生產myappservice_sa.xml。

編譯命令:./build.sh --product-name Hi3516DV300 --ccache。

修改開發板的讀寫權限

進入終端:hdc_std.exe shell
修改權限:mount -o remount,rw /
添加test目錄:mkdir /data/test/

#夏日挑戰賽# OpenHarmony IPC服務的動態加載(拉起)流程(L2)-開源基礎軟件社區

將編譯文件發送到開發板對應目錄:

動態服務庫:libmyappservice.z.so 發送到開發板目錄:/system/lib/
動態庫的xml文件:myappservice_sa.xml 發送到開發板目錄:/system/profile/
啟動配置:myappservice_sa.cfg 發送到開發板目錄:/system/etc/init/
客戶端:myappclient 發送到開發板目錄:/data/test/

#夏日挑戰賽# OpenHarmony IPC服務的動態加載(拉起)流程(L2)-開源基礎軟件社區

修改客戶端可執行權限(其他文件權限不夠也需要對于修改,這里只以客戶端為例)。

切到對應的目錄:cd /data/test/
修改成可執行:chmod 0755 myappclient

#夏日挑戰賽# OpenHarmony IPC服務的動態加載(拉起)流程(L2)-開源基礎軟件社區

測試

第一步:重啟開發板

終端1:

第二步:查詢服務是否啟動ps -A | grep myappservice_sa, 沒有啟動。

終端2:

第三步:運行客戶端/data/test/myappclient。

終端1:

第四步:查詢服務是否啟動ps -A | grep myappservice_sa, 啟動,并且客戶端和服務端的交互結果也已經輸出。

#夏日挑戰賽# OpenHarmony IPC服務的動態加載(拉起)流程(L2)-開源基礎軟件社區

??動態加載的官網??。

文章相關附件可以點擊下面的原文鏈接前往下載。

https://ost.51cto.com/resource/2112。

https://ost.51cto.com/resource/2113。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??。

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2022-02-17 16:47:40

OpenharmonIPC通信鴻蒙

2022-07-04 16:41:16

IPC通信HiTrace

2022-06-14 15:07:04

IPC客戶端服務端

2022-06-22 09:14:23

事件打點HiSysEvent

2022-02-21 15:38:57

Openharmon操作系統鴻蒙

2021-12-27 10:21:18

鴻蒙HarmonyOS應用

2022-04-06 11:27:05

harmonyeTS 開發NAPI開發

2021-10-20 19:14:30

緩存CacheCPU

2015-01-20 13:19:52

OpenStack網絡層數據鏈路層

2022-01-06 16:16:21

鴻蒙HarmonyOS應用

2023-10-10 15:33:55

機器學習相似性度量

2023-01-31 09:12:16

CPU芯片緩存

2022-08-26 14:58:43

區塊鏈比特幣架構

2023-02-20 08:00:00

2014-11-25 13:28:17

openstackneutronDVR

2022-01-14 09:57:14

鴻蒙HarmonyOS應用

2019-07-30 13:18:25

自動駕駛L2駕駛

2022-02-14 13:52:04

OpenHarmor系統鴻蒙

2022-03-21 15:42:36

智能家居物聯網MQTT

2022-02-08 15:07:45

OpenHarmor鴻蒙操作系統
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲一区视频在线 | 999热精品 | 亚洲福利在线视频 | 97色伦网 | 国产伦精品一区二区三区照片91 | 99中文字幕| 久久久激情 | 亚洲永久字幕 | 国产精品我不卡 | avav在线看 | 亚洲成年影院 | 玖玖玖在线 | 欧美综合一区 | 91国内产香蕉 | 日韩免费激情视频 | 九九在线视频 | 亚洲综合中文字幕在线观看 | 青青久草 | 午夜欧美一区二区三区在线播放 | 日韩三级电影一区二区 | 欧美一区在线视频 | 国产一区二区在线91 | 91av视频| 日本精品一区二区三区视频 | 亚洲一区二区久久久 | 国产精品美女久久久久久久久久久 | 国产成人一区二区三区 | 日韩毛片免费看 | 日韩中文字幕 | 懂色一区二区三区免费观看 | 中文字幕在线播放第一页 | 天天操操 | 久久久精品亚洲 | 午夜影院黄 | 精品婷婷| 成人欧美一区二区三区黑人孕妇 | 国产九一精品 | 中文在线一区二区 | 国产亚洲精品久久久久久豆腐 | 日本中文字幕日韩精品免费 | 成人一区二区视频 |