• Home
Name Date Size #Lines LOC

..--

docs/12-May-2024-671453

examples/12-May-2024-3111

figures/12-May-2024-

service-gen/12-May-2024-2,1201,622

service_IntelliJ_plugin/12-May-2024-1,8041,150

service_vs_plugin/12-May-2024-1,3211,035

FAQ.mdD12-May-2024481 136

README_ZH.mdD12-May-20244.7 KiB10967

README_ZH.md

1# SERVICE框架生成工具
2
3## 简介
4
5当开发者为OpenHarmony系统框架开发某些功能时,有时需要将这个功能包装成一个独立的服务进程运行在系统中,为了其它应用进程能够调用此服务,开发人员需要基于系统IPC通信框架编写一套远程接口调用实现。实现Service远程调用接口需要开发人员熟悉IPC通信框架,了解proxy/stub的继承与实现方式,掌握C++类型转为MessageParcel数据包的各种API方法,有一定的学习成本。而Service代码生成工具能够帮助使用者生成框架代码,提升开发效率。用户只需提供一个定义远程方法的.h头文件,工具会自动生成整个Service框架的代码,包含Ability注册、proxy/stub类实现、MessageParcel数据包构造、Service子系统编译及开机自启动相关配置文件。目前工具支持可执行文件、VS Code插件两种入口。
6
7更多工具的架构和实现原理详情,可以左键单击以下链接了解:
8
9[工具使用说明](https://gitee.com/openharmony/napi_generator/tree/master/hdc/service/docs/INSTRUCTION_ZH.md)
10
11	├── napi_generator                               # NAPI框架代码生成工具
12	│   ├── ...                                      # 其他文档
13	│   ├── hdc
14	│   │   ├── ...                                  # 其他工具
15	│   │   ├── service                              # service框架代码生成工具
16	│   │   |   ├── service_vs_plugin                # VS Code插件源码
17	│   │   |   ├── service-gen
18	│   │   |   |   ├── src
19	│   │   |   |   |   ├── gen
20	│   │   |   |   |   |   ├── analyze.js           # 解析json文件
21	│   │   |   |   |   |   ├── fileTemplate.js      # service框架代码文件模板
22	│   │   |   |   |   |   ├── generate.js          # 生成service框架
23	│   │   |   |   |   |   ├── header_parser.py     # 解析.h文件并输出jscon文件
24	│   │   |   |   |   |   ├── main.js              # 工具入口
25	│   │   |   |   |   ├── tools
26	│   │   |   |   |   |   ├── FileRW.js            # 读写文件
27	│   │   |   |   |   |   ├── NapiLog.js           # 日志
28	│   │   |   |   |   |   ├── common.js            # 工具支持数据类型
29	│   │   |   |   |   |   ├── re.js                # 正则表达式转换
30	│   │   |   |   |   |   ├── tool.js              # 消息体校验
31
32## 约束
33系统:建议Ubuntu 20.04或者Windows 10
34
35依赖版本:VS Code 1.62.0
36
37## 使用方法
38
39### 使用对象
40
41系统开发者
42
43### 使用场景
44
451) 开发者为OpenHarmony系统框架开发某些功能,并将该功能包装成一个独立的服务进程运行在系统中。
46
47### 工具使用
48
49工具有两种类型,分别是可执行文件、VS Code插件。其中的可执行文件可根据工具使用者的开发环境选择,支持Windows,Linux和Mac。可执行文件、VS Code插件下载路径如下:
50
51[下载链接](暂无)
52
53具体的工具使用步骤,可以左键单击以下链接了解:
54
55[工具使用说明](https://gitee.com/openharmony/napi_generator/tree/master/hdc/service/docs/INSTRUCTION_ZH.md)
56
57### 工具输出
58
59根据使用者指定的.h头文件,工具会输出SERVICE框架代码。为了方便使用者快速上手工具,可供测试的.h文件如下所示:
60
61[test.h](https://gitee.com/openharmony/napi_generator/tree/master/hdc/service/examples/test.h)
62
63注意:.h文件中待生成的主class必须加注释:@brief service服务,提供IPC调用接口 ,如下所示:
64
65```
66/**
67 * @brief service服务,提供IPC调用接口
68 * @ServiceClass
69 */
70```
71
72在window环境下的,根据输入.h文件生成的输出文件,如下所示:
73
74![](./figures/service_framework.png)
75
76## 工具开发说明
77
78### 对象
79
80工具的开发者
81
82### 开发场景
83
84若当前工具的功能已经不能满足开发者的全部需求,则开发者可以基于已有的源码对工具进行二次开发,来增强工具的能力,编译打包生成自定义的可执行文件和插件。
85
86### 开发步骤
87
88开发者可以根据如下的步骤来完成对工具的开发:
89
90 [工具开发说明](https://gitee.com/openharmony/napi_generator/tree/master/hdc/service/docs/DEVELOP_ZH.md)
91
92## 版本说明
93
94[已支持特性](https://gitee.com/openharmony/napi_generator/blob/master/hdc/service/docs/Service-1.0.md)
95
96[待开发特性](https://gitee.com/openharmony/napi_generator/blob/master/hdc/service/docs/ROADMAP_ZH.md)
97
98## FAQ
99
100  [FAQ](https://gitee.com/openharmony/napi_generator/tree/master/hdc/service/FAQ.md)
101
102## 参与贡献
103
104暂无
105
106## 相关仓
107
108暂无
109