几句话总结Android输入系统

IM输入事件系统

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

  • 底层
    两条线程,一条读事件,一条向上发事件,
    读取输入事件,采用epoll / poll机制去读取输入节点
  • 框架层
    InputManagerService只是个包装类,所有工作都是本地的InputManager在做,包括跟更底层的那两个读与派发线程交互。当然,IMS也不是一无是处,它在框架层跟其它模块交互,比如WMS啦
    WMS, 与IMS交互,获得最早的input事件,决定派发的根
    PWM, 处理特殊输入事件,如电源键,HOME
    InputChannel, IM与View客户端窗口类的交互通道,PIPE机制,只有在WMS确定让某个窗口接收输入事件时,才接上
    ViewRootImpl,真是一把手,输入事件在客户窗口的派发,由它开始
  • 应用层
    关注下Key / Touch在View树的传递与处理机制,无非就是个责任链模式 + 模板方法模式

你可能感兴趣的:(几句话总结Android输入系统)