• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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/inputmethod_ability       # 对输入法客户端提供的接口
18├── frameworks/inputmethod_controller    # 对客户端提供的接口
19├── interfaces/kits/js                   # 组件对外提供的接口代码
20│   └── napi                             # 输入法框架napi接口
21├── profile                              # 组件包含的系统服务的配置文件和进程的配置文件
22├── services                             # 输入法框架服务
23├── test                                 # 接口的Fuzz测试和js单元测试
24└── unitest                              # 接口的单元测试
25```
26
27## 框架代码介绍
28输入法框架目前有四大模块,具体如下:
29
301.  应用客户端
31
32路径:/base/inputmethod/imf/frameworks/inputmethod_controller
33
34作用:实现应用和输入法框架服务交付,包括应用与输入法服务的绑定、应用对输入法的显示和隐藏请求等等
35
362.  输入法客户端
37
38路径:/base/inputmethod/imf/frameworks/inputmethod_ability
39
40作用:实现输入法框架服务与输入法交付的中间桥梁,包括监听输入法当前的状态等等
41
423.  输入法服务
43
44路径:/base/inputmethod/imf/services
45
46作用:作为输入法框架的核心,输入法的主要处理逻辑都是在这里完成
47
484.  输入法Js接口
49
50路径:/base/inputmethod/imf/interfaces/kits/js
51
52作用:暂时对外暴露的js接口,主要是留给输入法进行调用使用的
53
54
55## 本框架编译调试方法
56
571.   编译命令
58
59./build.sh --product-name (填写具体的产品名,如:Hi3516DV300) --build-target imf
60
612.  推送so文件
62
63将工程目录下out\ohos-arm-release\inputmethod\imf 下的libinputmethod_client.z.so libinputmethod_ability.z.so
64libinputmethod_service.z.so libinputmethod_para.z.so推送到system/lib,将libinputmethodengine.z.so libinputmethod.z.so 推送到system/lib/module下,并确保六个so至少为可读状态。
65
663.  重启设备
67
68## 参与贡献
69
701.  Fork 本仓库
712.  提交代码
723.  新建 Pull Request
734.  commit完成即可
74
75