1# inputmethod_imf 2 3#### 介绍 4输入法框架,主要作用是拉通应用和输入法,保证应用可以通过输入法进行文本输入 5 6**图 1** 子系统架构图<a name="fig143011012341"></a> 7![](figures/subsystem_architecture_zh.png "子系统架构图") 8 9#### 仓路径 10/base/inputmethod/imf 11 12## 目录 13 14``` 15/base/inputmethod/imf 16├── figures # 构架图 17├── frameworks 18│ └── js/napi # 输入法框架napi接口 19│ └── native 20│ └──inputmethod_ability # 对输入法客户端提供的接口 21│ └──inputmethod_controller # 对客户端提供的接口 22├── interfaces # 组件对外提供的接口代码 23│ └── inner_api # innerApi接口 24├── profile # 组件包含的系统服务的配置文件和进程的配置文件 25├── services # 输入法框架服务 26├── test # 接口的Fuzz测试和js单元测试 27└── unitest # 接口的单元测试 28``` 29 30## 框架代码介绍 31输入法框架目前有四大模块,具体如下: 32 331. 应用客户端 34 35路径:/base/inputmethod/imf/frameworks/native/inputmethod_controller 36 37作用:实现应用和输入法框架服务交付,包括应用与输入法服务的绑定、应用对输入法的显示和隐藏请求等等 38 392. 输入法客户端 40 41路径:/base/inputmethod/imf/frameworks/native/inputmethod_ability 42 43作用:实现输入法框架服务与输入法交付的中间桥梁,包括监听输入法当前的状态等等 44 453. 输入法服务 46 47路径:/base/inputmethod/imf/services 48 49作用:作为输入法框架的核心,输入法的主要处理逻辑都是在这里完成 50 514. 输入法Js接口 52 53路径:/base/inputmethod/imf/frameworks/js 54 55作用:暂时对外暴露的js接口,主要是留给输入法进行调用使用的 56 57 58## 本框架编译调试方法 59 601. 编译命令 61 62./build.sh --product-name (填写具体的产品名,如:Hi3516DV300) --build-target imf 63 642. 推送so文件 65 66将工程目录下out\ohos-arm-release\inputmethod\imf 下的libinputmethod_client.z.so libinputmethod_ability.z.so 67libinputmethod_service.z.so libinputmethod_para.z.so推送到system/lib,将libinputmethodengine.z.so libinputmethod.z.so 推送到system/lib/module下,并确保六个so至少为可读状态。 68 693. 重启设备 70 71## 参与贡献 72 731. Fork 本仓库 742. 提交代码 753. 新建 Pull Request 764. commit完成即可 77 78