Android输入事件之InputReader 处理事件

原始输入事件处理
流程图

在这里插入图片描述
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的体系

在这里插入图片描述

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值