122736c2fSopenharmony_ci# inputmethod_imf
222736c2fSopenharmony_ci
322736c2fSopenharmony_ci#### 介绍
422736c2fSopenharmony_ci输入法框架,主要作用是拉通应用和输入法,保证应用可以通过输入法进行文本输入
522736c2fSopenharmony_ci
622736c2fSopenharmony_ci**图 1**  子系统架构图<a name="fig143011012341"></a>  
722736c2fSopenharmony_ci![](figures/subsystem_architecture_zh.png "子系统架构图")
822736c2fSopenharmony_ci
922736c2fSopenharmony_ci#### 仓路径
1022736c2fSopenharmony_ci/base/inputmethod/imf
1122736c2fSopenharmony_ci
1222736c2fSopenharmony_ci## 目录
1322736c2fSopenharmony_ci
1422736c2fSopenharmony_ci```
1522736c2fSopenharmony_ci/base/inputmethod/imf
1622736c2fSopenharmony_ci├── figures                                     # 构架图
1722736c2fSopenharmony_ci├── frameworks
1822736c2fSopenharmony_ci│   └── js/napi                                 # 输入法框架napi接口
1922736c2fSopenharmony_ci│   └── native
2022736c2fSopenharmony_ci│       └──inputmethod_ability                  # 对输入法客户端提供的接口
2122736c2fSopenharmony_ci│       └──inputmethod_controller               # 对客户端提供的接口
2222736c2fSopenharmony_ci├── interfaces                                  # 组件对外提供的接口代码
2322736c2fSopenharmony_ci│   └── inner_api                               # innerApi接口
2422736c2fSopenharmony_ci├── profile                                     # 组件包含的系统服务的配置文件和进程的配置文件
2522736c2fSopenharmony_ci├── services                                    # 输入法框架服务
2622736c2fSopenharmony_ci├── test                                        # 接口的Fuzz测试和js单元测试
2722736c2fSopenharmony_ci└── unitest                                     # 接口的单元测试
2822736c2fSopenharmony_ci```
2922736c2fSopenharmony_ci
3022736c2fSopenharmony_ci## 框架代码介绍
3122736c2fSopenharmony_ci输入法框架目前有四大模块,具体如下:
3222736c2fSopenharmony_ci
3322736c2fSopenharmony_ci1.  应用客户端
3422736c2fSopenharmony_ci
3522736c2fSopenharmony_ci路径:/base/inputmethod/imf/frameworks/native/inputmethod_controller
3622736c2fSopenharmony_ci
3722736c2fSopenharmony_ci作用:实现应用和输入法框架服务交付,包括应用与输入法服务的绑定、应用对输入法的显示和隐藏请求等等
3822736c2fSopenharmony_ci
3922736c2fSopenharmony_ci2.  输入法客户端
4022736c2fSopenharmony_ci
4122736c2fSopenharmony_ci路径:/base/inputmethod/imf/frameworks/native/inputmethod_ability
4222736c2fSopenharmony_ci
4322736c2fSopenharmony_ci作用:实现输入法框架服务与输入法交付的中间桥梁,包括监听输入法当前的状态等等
4422736c2fSopenharmony_ci
4522736c2fSopenharmony_ci3.  输入法服务
4622736c2fSopenharmony_ci
4722736c2fSopenharmony_ci路径:/base/inputmethod/imf/services
4822736c2fSopenharmony_ci
4922736c2fSopenharmony_ci作用:作为输入法框架的核心,输入法的主要处理逻辑都是在这里完成
5022736c2fSopenharmony_ci
5122736c2fSopenharmony_ci4.  输入法Js接口
5222736c2fSopenharmony_ci
5322736c2fSopenharmony_ci路径:/base/inputmethod/imf/frameworks/js
5422736c2fSopenharmony_ci
5522736c2fSopenharmony_ci作用:暂时对外暴露的js接口,主要是留给输入法进行调用使用的
5622736c2fSopenharmony_ci
5722736c2fSopenharmony_ci
5822736c2fSopenharmony_ci## 本框架编译调试方法
5922736c2fSopenharmony_ci
6022736c2fSopenharmony_ci1.   编译命令
6122736c2fSopenharmony_ci
6222736c2fSopenharmony_ci./build.sh --product-name (填写具体的产品名,如:Hi3516DV300) --build-target imf
6322736c2fSopenharmony_ci
6422736c2fSopenharmony_ci2.  推送so文件
6522736c2fSopenharmony_ci
6622736c2fSopenharmony_ci将工程目录下out\ohos-arm-release\inputmethod\imf 下的libinputmethod_client.z.so libinputmethod_ability.z.so 
6722736c2fSopenharmony_cilibinputmethod_service.z.so libinputmethod_para.z.so推送到system/lib,将libinputmethodengine.z.so libinputmethod.z.so 推送到system/lib/module下,并确保六个so至少为可读状态。
6822736c2fSopenharmony_ci
6922736c2fSopenharmony_ci3.  重启设备
7022736c2fSopenharmony_ci
7122736c2fSopenharmony_ci## 参与贡献
7222736c2fSopenharmony_ci
7322736c2fSopenharmony_ci1.  Fork 本仓库
7422736c2fSopenharmony_ci2.  提交代码
7522736c2fSopenharmony_ci3.  新建 Pull Request
7622736c2fSopenharmony_ci4.  commit完成即可
7722736c2fSopenharmony_ci
78