Openharmony 实现的一个IPC的客户端和服务端(L2)

系统 OpenHarmony
挺长时间没接触L2的设备开发,再看openharmony 3.1代码时候,发现3.1与3.0相比:编译的ohos.build已经去掉,取而代之的是bundle.json,有的目录结构也发生了变化。

​想了解更多关于开源的内容,请访问:​

​51CTO 开源基础软件社区​

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

简介

挺长时间没接触L2的设备开发,再看openharmony 3.1代码时候,发现3.1与3.0相比:

编译的ohos.build已经去掉,取而代之的是bundle.json,有的目录结构也发生了变化。

此文档:openharmony 3.1代码基础。

  • 3.1的编译配置(与3.0比,有些调整)
  • IPC动态库服务端工程。
  • IPC客户端。
  • safwk加载动态库服务端。
  • 客户端和服务端的通信.
    想对IPC通信了解深入,可以结合下面两篇文章和代码一起分析学习:
    ​Openharmony IPC通信(L2)​OpenHarmony SA 动态库服务 拉起的main入口
  • 本用例开发板(3516开发板:HiSpark_AI_Hi3516D_One_Light_VER.B开发板上测试)。

编译配置

子系统配置

build\subsystem_config.json:

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

#夏日挑战赛# Openharmony 实现的一个IPC的客户端和服务端(L2)-开源基础软件社区

产品配置

productdefine\common\products\Hi3516DV300.json:

"myapp:myappservice_test":{}

#夏日挑战赛# Openharmony 实现的一个IPC的客户端和服务端(L2)-开源基础软件社区

编译配置

myapp\myappservice\bundle.json:

#夏日挑战赛# Openharmony 实现的一个IPC的客户端和服务端(L2)-开源基础软件社区

myapp\myappservice\BUILD.gn:

#夏日挑战赛# Openharmony 实现的一个IPC的客户端和服务端(L2)-开源基础软件社区

代码

代码目录结构

#夏日挑战赛# Openharmony 实现的一个IPC的客户端和服务端(L2)-开源基础软件社区

myapp的代码见附件,关键部分有注释,方便对IPC交互的了解。

服务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)-开源基础软件社区

编译

要全量编译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)-开源基础软件社区

将编译文件发送到开发板对应目录:

#夏日挑战赛# Openharmony 实现的一个IPC的客户端和服务端(L2)-开源基础软件社区

修改客户端可执行权限。

切到对应的目录:cd /data/test/
修改成可执行:chmod 0755 myappclient

#夏日挑战赛# Openharmony 实现的一个IPC的客户端和服务端(L2)-开源基础软件社区

测试

终端1:抓取日志。

#夏日挑战赛# Openharmony 实现的一个IPC的客户端和服务端(L2)-开源基础软件社区

终端2:启动服务。

sa_main /system/profile/myappservice_sa.xml

#夏日挑战赛# Openharmony 实现的一个IPC的客户端和服务端(L2)-开源基础软件社区

终端3:启动客户端。

/data/test/myappclient

下图是客户端和服务端的交互输出结果。

#夏日挑战赛# Openharmony 实现的一个IPC的客户端和服务端(L2)-开源基础软件社区

注意:hdc_std.exe工具,如果3.1的编译不能连接设备。可以试一下最新主干代码来编译hdc工具。

编译命令:./build.sh --product-name ohos-sdk --ccache,参考​​​developtools_hdc​​。

​想了解更多关于开源的内容,请访问:​

​51CTO 开源基础软件社区​

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

责任编辑:jianghua 来源: 鸿蒙社区
相关推荐

2022-02-17 16:47:40

OpenharmonIPC通信鸿蒙

2021-10-14 08:39:17

Java Netty Java 基础

2018-12-20 08:50:53

TCPIP服务器

2022-07-14 19:03:33

IPC服务鸿蒙

2022-01-05 08:03:23

C#通信Rest

2010-03-01 16:10:32

Linux Samba

2010-03-19 09:26:34

Java Socket

2010-01-11 13:05:24

VNC server配

2009-08-21 15:54:40

服务端与客户端

2009-08-21 15:36:41

服务端与客户端

2018-11-19 15:30:23

ChronyLinux命令

2012-05-07 13:55:41

JavaJava Web

2022-07-04 16:41:16

IPC通信HiTrace

2024-03-06 14:58:52

客户端微服务架构

2010-11-19 14:22:04

oracle服务端

2011-09-09 09:44:23

WCF

2009-08-21 16:14:52

服务端与客户端通信

2009-08-21 15:59:22

服务端与客户端通信

2018-04-12 10:55:41

Android服务器数据

2011-03-28 17:24:26

点赞
收藏

51CTO技术栈公众号