1# 输入法框架子系统
2
3-   [简介](#简介)
4-   [系统架构](#系统架构)
5-   [目录](#目录)
6-   [使用说明](#使用说明)
7-   [相关仓](#相关仓)
8
9## 简介
10
11负责建立编辑框所在应用与输入法应用之间的通信通道,确保两者可以共同协作提供文本输入功能,也为系统应用提供管理输入法应用的能力。
12
13输入法框架目前有四大模块,具体如下:
14
151. 应用客户端
16
17   路径:/base/inputmethod/imf/frameworks/native/inputmethod_controller
18
19   作用:提供应用请求使用输入法应用、与输入法应用交互的能力。
20
212. 输入法客户端
22
23   路径:/base/inputmethod/imf/frameworks/native/inputmethod_ability
24
25   作用:提供输入法应用实现框架,基于该框架输入法应用可以被正确拉起,并与编辑框应用进行协作完成文本输入。
26
273. 输入法服务
28
29   路径:/base/inputmethod/imf/services
30
31   作用:输入法管理服务,负责建立安全可靠的输入法连接,同时提供了输入法切换查询等功能。
32
334. 输入法Js接口实现
34
35   路径:/base/inputmethod/imf/frameworks/js
36
37   - 主要提供给输入法应用调用的相关js接口实现:/base/inputmethod/imf/frameworks/js/napi/inputmethodability38
39   - 主要提供给自绘控件调用的相关js接口实现:/base/inputmethod/imf/frameworks/js/napi/inputmethodclient40
41   作用:输入法实现框架、自绘编辑框控件使用输入法的NAPI接口,为TS相关接口提供具体实现。
42
43## 系统架构
44
45**图 1**  子系统架构图
46
47
48![输入法框架子系统架构图](./figures/输入法框架子系统架构图.PNG)
49
50## 目录
51
52```
53/base/inputmethod/imf
54├── figures                                     # 架构图
55├── frameworks
56│   └── js/napi                                 # 输入法框架napi接口
57│       └──inputmethod_extention_ability        # 对输入法应用,InputMethodExtentionAbility相关接口
58│       └──inputmethod_extention_context        # 对输入法应用,InputMethodExtentionContext相关接口
59│       └──inputmethodability                   # 对输入法应用提供的接口
60│       └──inputmethodclient                    # 对系统应用、自绘控件提供的接口
61│   └── native
62│       └──inputmethod_ability                  # 对输入法客户端提供的接口
63│       └──inputmethod_controller               # 对客户端提供的接口
64├── interfaces                                  # 组件对外提供的接口代码
65│   └── inner_api                               # innerApi接口
66├── profile                                     # 组件包含的系统服务的配置文件和进程的配置文件
67├── services                                    # 输入法框架服务
68├── test                                        # 测试
69│   └── fuzztest                                # 接口的Fuzz测试
70│   └── unitest                                 # 接口的单元测试
71│       └──cpp_test                             # 接口的cpp单元测试
72│       └──napi_test                            # 接口的js单元测试
73```
74
75## 使用说明
76
77* [InputMethodExtentionAbility开发指南](../application-dev/application-models/inputmethodextentionability.md)
78* [@ohos.inputMethod (输入法框架)](../application-dev/reference/apis-ime-kit/js-apis-inputmethod.md)
79* [@ohos.inputMethodEngine (输入法服务)](../application-dev/reference/apis-ime-kit/js-apis-inputmethodengine.md)
80
81## 相关仓
82
83输入法框架:
84
85[inputmethod_imf](https://gitee.com/openharmony/inputmethod_imf)
86