Input的Move事件相关的深入疑问/getHistorical剖析/批处理事件

背景:

近期有学员朋友在群里提出了关于input模块中的一个批处理相关的疑问点。说批处理这块网络的资料很少,基本上没有地方可以参考,求助马哥是否可以分享一下触摸事件批处理这块知识点。
针对这个批处理这块知识点,马哥不打算直接给大家blog输出干货给大家,即不准备直接给大家喂相关的知识点,而是采用给大家布置几个作业疑问点方式,让大家积极参与进来思考的方式。

布置的几个思考点:

问题1

请问MotionEvent中有关于getHistorical相关的方法,请问你知道这个方法的作用是什么吗?为什么会需要有这个方法?

   public final int getHistorySize() {
        return nativeGetHistorySize(mNativePtr);
    }
 	public final float getHistoricalX(int pos) {
        return nativeGetAxisValue(mNativePtr, AXIS_X, 0, pos);
    }
   public final float getHistoricalY(int pos) {
        return nativeGetAxisValue(mNativePtr, AXIS_Y, 0, pos);
    }

请实战打印验证等方式说明这个getHistory相关的方法的作用。

问题2

经常在看systrace或者perfetto时候,发现每次app层面收到vsync后,都需要处理3个大块的逻辑部分

input、animation、traversal

这里animation、traversal都和显示画面有关系,大家可能都比较能理解每次vsync更新,但请问一下为啥这个input也要跟着vsync呢?
在这里插入图片描述

问题3

如果针对move事件不采用批处理方式,也和down事件一样,有事件来了就直接进行相关的派发主线程处理,那么可能会造成什么样的后果呢?

这里提示一下大家哈,手机屏幕其实分为显示屏幕和触摸屏幕,大家经常会发现触摸的采样频率会很可能大于刷新频率的好几倍。

在这里插入图片描述

好了上面就是留给大家关于input相关的思考作业哈,后续马哥这边会给大家进行剖析解答,更新到相关的vip群中。

更多framework干货知识,请关注下面“千里马学框架”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千里马学框架

帮助你了,就请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值