Android输入法的显示逻辑

所有记录的一切,都是为了备忘,并无他意
一,几个重点关注的类:
InputMethodManagerService,负责管理系统的所有输入法,包括输入法service(InputMethodService简称IMS)加载及切换。
InputMethodManager,控件获取焦点之后,通过InputMethodManager向 InputMethodManagerService 发出请求绑定自己到当前输入法上
InputMethodService,输入法apk的service,与IMMS进行交互,用来显示输入法的dialog及通过IInputContext绑定到控件上
IInputMethodWrapper,IMMS和输入法之间的交互的aidl接口,它会把所有的调用转到主线程去执行
IInputContext,控件与输入法之间的通讯aidl接口,例如当前输入法输入的文本回调到控件显示
InputConnectionWrapper,他是InputConnection的代理,代理IInputContext,同时也是输入法控件和编辑控件之间的纽带
IInputMethodClient,代表客户端的aidl接口,他会被传输到WindowManagerService里面进行通讯
IInputConnectionWrapper,用户端的IInputContext的实现,最终会被传入到输入法中,进行交互,就是上面提到的IInputContext;
二,输入法显示流程
1,窗口添加的时候,都会绑定一个ViewRootImpl,在ViewRootImpl初始化的时候,会通过Windo

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值