几句话总结Android输入系统

IM输入事件系统

这里的输入事件指,触摸屏、按键,不包括传感器

  • 底层
    两条线程,一条读事件,一条向上发事件,
    读取输入事件,采用epoll / poll机制去读取输入节点
  • 框架层
    InputManagerService只是个包装类,所有工作都是本地的InputManager在做,包括跟更底层的那两个读与派发线程交互。当然,IMS也不是一无是处,它在框架层跟其它模块交互,比如WMS啦
    WMS, 与IMS交互,获得最早的input事件,决定派发的根
    PWM, 处理特殊输入事件,如电源键,HOME
    InputChannel, IM与View客户端窗口类的交互通道,PIPE机制,只有在WMS确定让某个窗口接收输入事件时,才接上
    ViewRootImpl,真是一把手,输入事件在客户窗口的派发,由它开始
  • 应用层
    关注下Key / Touch在View树的传递与处理机制,无非就是个责任链模式 + 模板方法模式
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,726评论 25 709
  • InputManagerService(IMS) Linux内核,接受输入设备的中断,并将原始事件的数据写入设备节...
    傀儡世界阅读 4,082评论 1 2
  • 1:InputChannel提供函数创建底层的Pipe对象 2: 1)客户端需要新建窗口 2)new ViewRo...
    自由人是工程师阅读 5,403评论 0 18
  • 什么是增长黑客 “增长黑客”这一说法源于硅谷,增长黑客是介于极客、发明家和广告狂人之间的角色,是一群以数据驱动营销...
    丰子恒阅读 488评论 0 2
  • 性价比很高的一款纸膜水,没有特别的味道,质地是完全水状,适合夏天使用,清爽保湿的类型,去除油光,皮肤会很舒服,美白...
    earlymolly阅读 193评论 0 0