原始输入事件处理
 流程图

InputDevice
 InputDevice相对于EventHub的Device多了一个InputMapper列表。
 
void InputReader::addDeviceLocked(nsecs_t when, int32_t deviceId){
     //1 从EventHub 中获取厂商信息与设备类别
     //2 通过createDeviceLocked()函数创建InputDeveice
     InputDevice* device = createDeviceLocked(deviceId, identifier, class);
     //3 使用InputRead中保存的策略配置信息对新建的InputDeveice进行策略配置,并通过reset()进行设备重置
     deveice->configure(when, &mConfig, 0);
     deivece-> reset(when);
     //4 将设备放入mDeviecs字典中
     mDevices.add(deviceId,device);
 }
 mConfig的类型是InputReaderConfiguration,来自InputReaderPolicy的配置信息使得IMS以及应用程序得以在一定程度上影响输入事件的处理过程。

 keyboard类型事件的加工处理
 在Android中扫描码到虚拟按键值的映射便是由KeyboardInputMapper完成的。
touch事件
 多条原始输入事件描述一次点击事件,把多次原始输入事件的信息整合后,交给InputDispatch而进行分发。
TouchInputMapper的体系











