openharmony_ci 2ab1726be2 !52 merge fws into master
llt test构建配置修改

Created-by: qq_35037212
Commit-by: fangwusheng
Merged-by: openharmony_ci
Description: ### 一、内容说明(相关的Issue)

https://gitcode.com/openharmony/communication_communication_cangjie_wrapper/issues/33

### 二、建议测试周期和提测地址  
  建议测试完成时间:xxxx.xx.xx  
  投产上线时间:xxxx.xx.xx  
  提测地址:CI环境/压测环境  
  测试账号:  无

### 三、变更内容
  * 3.1 关联PR列表
https://gitcode.com/openharmony/communication_communication_cangjie_wrapper/pull/52
  * 3.2 数据库和部署说明  
    1. 常规更新 
    2. 重启unicorn
    3. 重启sidekiq
    4. 迁移任务:是否有迁移任务,没有写 "无"
    5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无"
无
  * 3.4 其他技术优化内容(做了什么,变更了什么)
  
    根据仓上对应分支修改用例工程构建配置,Dev/Trunk分支修改为6.1.0-APILevel23,Cangjie-build-support同样匹配对应版本构建方式
	主要修改:
		hvigor-config.json5文件
		test目录下build-profile.json5文件
		检查module.json5中的设备类型HarmonyOS工程为"phone",OpenHarmony工程对应为"default"


  * 3.5 废弃通知(什么字段、方法弃用?)
不涉及




  * 3.6  后向不兼容变更(是否有无法向后兼容的变更?)
不涉及



  
### 四、研发自测点(自测哪些?冒烟用例全部自测?)
  自测测试结论:
测试通过



### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
  检查点:

| 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 |
|------|------------|----------|---------------|
| xxx  | 否          | 需要       | 不需要           |
|      |            |          |               |

  接口测试:不涉及

  性能测试:不涉及

  并发测试:不涉及

  其他:



See merge request: openharmony/communication_communication_cangjie_wrapper!52
2026-04-07 21:25:36 +08:00
2025-09-27 17:56:27 +08:00
2025-10-07 17:52:55 +08:00
2026-01-27 11:40:11 +08:00
2026-01-06 10:02:59 +08:00
2025-08-08 14:53:03 +08:00
2025-11-22 18:11:59 +00:00
2025-11-28 15:00:39 +08:00
2025-08-13 14:57:59 +08:00
2025-08-14 15:37:20 +08:00
2025-10-07 17:52:55 +08:00
2025-10-07 17:52:55 +08:00

Inter-Process Communication Cangjie Wrapper(beta feature)

Introduction

In the OpenHarmony platform, the Inter-Process Communication Cangjie wrapper provides developers with cross-process communication capabilities needed for application development using the Cangjie language. IPC (Inter-Process Communication) and RPC (Remote Procedure Call) mechanisms are used to implement cross-process communication. The former uses the Binder driver for cross-process communication within a device, while the latter uses the soft bus driver for cross-device cross-process communication. Typical IPC scenarios are in background services, where the application's background service provides cross-process service invocation capabilities through the IPC mechanism. Typical RPC usage scenarios are in multi-end collaboration, where multi-end collaboration provides remote interface invocation and data transmission capabilities through the RPC mechanism. Currently, the open distributed soft bus Cangjie interface only supports standard devices.

System Architecture

Figure 1 Inter-process Communication Cangjie Architecture Diagram

Inter-process Communication Cangjie Architecture Diagram

As shown in the architecture diagram:

Interface layer:

Interprocess Communication function interface: API capabilities for cross-process communication provided to developers, mainly including the following functions:

  • Anonymous shared memory objects: Provide methods related to anonymous shared memory objects, including creating, closing, mapping and unmapping Ashmem, reading data from and writing data to Ashmem, obtaining the size of Ashmem, and setting Ashmem protections.

  • Message sequence: During RPC or IPC processes, the sender can use the write methods provided by MessageSequence to write the data to be sent into the object in a specific format. The receiver can use the read methods provided by MessageSequence to read data in the specific format from the object. The data formats include: basic types and their corresponding arrays, file descriptors (fd), interface descriptors, anonymous shared memory objects, and custom serialized objects.

Framework layer:

  • Cross-process communication function encapsulation: Implementation encapsulation of Cangjie cross-process communication, providing message sequence and anonymous shared memory object capabilities.

Explanation of dependent components introduced in the architecture diagram:

  • IPC/RPC component: Responsible for providing basic RPC functions, encapsulating C language interfaces for Cangjie interoperability.

  • cangjie_ark_interop: Responsible for providing Cangjie annotation class definitions for API annotation, and providing BusinessException exception class definitions thrown to users.

  • hiviewdfx_cangjie_wrapper: Responsible for providing log interfaces for printing logs at critical paths.

Directory Structure

The main code directory structure of the Inter-Process Communication Cangjie is as follows:

foundation/communication/communication_cangjie_wrapper
├── figures                             # architecture pictures
├── kit                                 # Cangjie IPC Kit interface
│   └── IPCKit
├── ohos                                # Cangjie IPC code
│   └── rpc
│       ├── message_sequence.cj         # The interface for MessageSequence
│       └── ashmem.cj                   # The interface for Ashmem
└── test                                # Cangjie test cases
    └── rpc                             # rpc test cases

Usage

The current distributed soft bus Cangjie interface provides the following functions:

  • Provides methods related to anonymous shared memory objects, including creating, closing, mapping and unmapping Ashmem, reading data from and writing data to Ashmem, obtaining the size of Ashmem, and setting Ashmem protection.

  • Provides basic types (signed integer, single-precision float, double-precision float, boolean, character, string) and arrays of basic types, file descriptors (fd), interface descriptors, anonymous shared memory objects, and custom serialized objects for communication purposes.

See Camera APIsRPC Communication.For guidance, please refer toRPC Development Guide.

Constraints

  • When communicating across processes on a single device, the maximum amount of data that can be transmitted is 200KB. For data exceeding 200KB, please use anonymous shared memory.

  • Compared with the API capabilities provided by ArkTS, the following functions are currently not supported:

    • Remote object communication.
    • OneWay

Code Contribution

Developers are welcome to contribute code, documentation, etc. For specific contribution processes and methods, please refer to Code Contribution.

Repositories Involved

arkcompiler_cangjie_ark_interop

communication_ipc

hiviewdfx_hiviewdfx_cangjie_wrapper

S
Description
RPC模块仓颉封装层
Readme 2.5 MiB
Languages
Python 43.9%
TypeScript 41.4%
HTML 14.7%