Android平台输入法开发解析Android平台自1
5版本之后开放了输入法框架(InputMethodFramework,IMF),IMF是Android平台的特色设计
它的出现,为诞生不带实体键盘的设备提供了可能
同时,IMF开放了Android平台输入法的开发接口,为Android平台的输入法提供了可扩展性
本文首先介绍Android平台IMF的构成、工作机制和流程,以便广大开发者能够更好的理解Android平台是如何实现文字输入
接下来,将以一个简单的例子,介绍如何进行简单的输入法开发,开发者应该可以对Android平台的输入法开发形成一个初步的认识
1.Android平台IMF简介Android平台的IMF按照功能分为三个主要模块,分别为:客户端控件,输入法服务(IMMS),以及输入法应用(IME)
如果要深刻的理解和掌握Android平台的输入法开发技巧,那么必须要了解Android平台IMF内部各个模块之间的工作机制
客户端控件,是指具有文字编辑功能的系统控件(如EditText),是平台内部输入法应用人机交互的起点
输入法服务,是Android平台的底层基础服务之一,负责管理输入法,包括输入法的安装、注册、激活等
输入法应用,则是指平台内预置,或者后续安装的输入法程序
三个模块间的交互关系如下:下面我们将分别介绍以上三个模块,并简要介绍各模块内主要使用的对象和服务
1客户端控件Android平台的客户端控件主要是TextView及其子类
客户端控件是输入法人机交互的起点
客户端控件与输入法服务和输入法应用都有交互操作
以EditText为例,当客户端控件接受到焦点时,控件启动输入法应用并显示键盘;而失去焦点时,则隐藏键盘
另外,EditText控件收到长按事件时,弹出输入法选择菜单
这类操作属于客户端控件与输入法服务间的交互
此外,客户端控件还可以向输