android物理按键输入法,Android输入法框架中按键消息的处理流程

最近研究了一下Android输入法,发现Android输入法框架中按键消息的处理流程和一般应用程序的处理流程有很大的不同,故在此做个总结。

一、一些名词缩写

IMF(Input MethodFramework):输入法框架

IM(Input Method):输入法

IMS(Input Method Service):输入法服务,一般指一个具体输入法对应的服务

IMMS(Input Method ManagerService):输入法管理器服务,系统进程的一部分,系统中只有一个该服务的实例

IMM(Input Method Manager):输入法管理器,每个客户进程中都包含一个

IME(Input Method Engine/InputMethod Editor):指一个具体的输入法,包括其内部的IMS和Binder对象

CA(Client Application):客户端进程,这里指使用输入法的进程。

二、输入法框架

1、  客户端进程(CA):在每个CA中都存在唯一一个IMM,UI控件(View,TextView,EditText等)可以通过它来访问IMMS,用来操作输入法,比如,打开,关闭,切换输入法等。可以通过Context.getSystemService()来获取一个InputMethodManager的实例。

IMM中有2个Binder对象,一个是可编辑UI控件对应的Binder对象(InputContext),输入法进程可以通过InputContext将虚拟按键事件(即通过触屏消息转换而来的按键事件)传递给UI控件;另一个是InputMetho

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值