122736c2fSopenharmony_ci# inputmethod_imf 222736c2fSopenharmony_ci 322736c2fSopenharmony_ci#### 介绍 422736c2fSopenharmony_ci输入法框架,主要作用是拉通应用和输入法,保证应用可以通过输入法进行文本输入 522736c2fSopenharmony_ci 622736c2fSopenharmony_ci**图 1** 子系统架构图<a name="fig143011012341"></a> 722736c2fSopenharmony_ci 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