input在应用端的分发流程分支情况

input的处理细节比较复杂,在app端时,是通过监听input channel的fd,把事件接入到主线程的looper中,所以我们可以看到,相关的处理是在主线程中进行的,

再进行一个试验,在onTouchEvent方法中,对MOTION_DOWN和MOTION_MOVE 事件处理分别打印堆栈,大家觉得会是一样的么?

试一下,就会发现,处理流程不一样,头尾是相同的,但是中间出现了分支,

同样的touch事件,分成了2种流程,一种相思两处闲愁,这样的处理确实让人发愁。

move事件的处理调用到choreographer相关处理。

为什么会这样,在哪里进行的区分呢?

这里大致看一下,

在注册input的fd到主线程loopper的时候,设置了回调方法,当有数据到来的时候,会调用到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值