• 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
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