OpenHarmony IDL工具规格及使用说明书
IDL接口描述语言简介
当客户端和服务器进行IPC通信时,需要定义双方都认可的接口,以保障双方可以成功通信,OpenHarmony IDL(OpenHarmony Interface Definition Language)则是一种定义此类接口的工具。OpenHarmony IDL先把需要传递的对象分解成操作系统能够理解的基本类型,并根据开发者的需要封装跨边界的对象。
图1 IDL接口描述
创建idl文件
例如,此处构建一个名为IIdlTestService.idl的文件,文件内具体内容如下:
interface OHOS.IIdlTestService {int TestIntTransaction([in] int data);void TestStringTransaction([in] String data);void TestMapTransaction([in] Map<int, int> data);int TestArrayTransaction([in] String[] data);}
在idl的可执行文件所在文件夹下执行命令 idl -gen-ts -d dir -c dir/IIdlTestService.idl。
-d后的dir为目标输出目录,以输出文件夹名为IIdlTestServiceTs为例,在idl可执行文件所在目录下执行
idl -gen-ts -d IIdlTestServiceTs -c
IIdlTestServiceTs/IIdlTestService.idl,将会在执行环境的dir目录(即IIdlTestServiceTs目录)中生成接口文件、Stub文件、Proxy文件。
注意:生成的接口类文件名称和.idl文件名称保持一致,否则会生成代码时会出现错误
。
以名为IIdlTestService.idl的.idl文件、目标输出文件夹为IIdlTestServiceTs为例,其目录结构应类似于:
├── IIdlTestServiceTs # idl代码输出文件夹
│ ├── i_idl_test_service.ts # 生成文件
│ ├── idl_test_service_proxy.ts # 生成文件
│ ├── idl_test_service_stub.ts # 生成文件
│ └── IIdlTestService.idl # 构造的.idl文件
└── idl.exe # idl的可执行文件
如下图所示: