输入法框架子系统

简介

负责建立编辑框所在应用与输入法应用之间的通信通道,确保两者可以共同协作提供文本输入功能,也为系统应用提供管理输入法应用的能力。

输入法框架目前有四大模块,具体如下:

  1. 应用客户端

    路径:/base/inputmethod/imf/frameworks/native/inputmethod_controller

    作用:提供应用请求使用输入法应用、与输入法应用交互的能力。

  2. 输入法客户端

    路径:/base/inputmethod/imf/frameworks/native/inputmethod_ability

    作用:提供输入法应用实现框架,基于该框架输入法应用可以被正确拉起,并与编辑框应用进行协作完成文本输入。

  3. 输入法服务

    路径:/base/inputmethod/imf/services

    作用:输入法管理服务,负责建立安全可靠的输入法连接,同时提供了输入法切换查询等功能。

  4. 输入法Js接口实现

    路径:/base/inputmethod/imf/frameworks/js

    • 主要提供给输入法应用调用的相关js接口实现:/base/inputmethod/imf/frameworks/js/napi/inputmethodability。

    • 主要提供给自绘控件调用的相关js接口实现:/base/inputmethod/imf/frameworks/js/napi/inputmethodclient。

    作用:输入法实现框架、自绘编辑框控件使用输入法的NAPI接口,为TS相关接口提供具体实现。

系统架构

图 1 子系统架构图

输入法框架子系统架构图

目录

/base/inputmethod/imf
├── figures                                     # 架构图
├── frameworks
│   └── js/napi                                 # 输入法框架napi接口
│       └──inputmethod_extention_ability        # 对输入法应用,InputMethodExtentionAbility相关接口
│       └──inputmethod_extention_context        # 对输入法应用,InputMethodExtentionContext相关接口
│       └──inputmethodability                   # 对输入法应用提供的接口
│       └──inputmethodclient                    # 对系统应用、自绘控件提供的接口
│   └── native
│       └──inputmethod_ability                  # 对输入法客户端提供的接口
│       └──inputmethod_controller               # 对客户端提供的接口
├── interfaces                                  # 组件对外提供的接口代码
│   └── inner_api                               # innerApi接口
├── profile                                     # 组件包含的系统服务的配置文件和进程的配置文件
├── services                                    # 输入法框架服务
├── test                                        # 测试
│   └── fuzztest                                # 接口的Fuzz测试
│   └── unitest                                 # 接口的单元测试
│       └──cpp_test                             # 接口的cpp单元测试
│       └──napi_test                            # 接口的js单元测试

使用说明

相关仓

输入法框架:

inputmethod_imf