Android input输入系统
文章平均质量分 83
Kbattery
这个作者很懒,什么都没留下…
展开
-
Andorid 11 InputDispatcher FocusedApplication设置过程分析
在Input ANR中,有一类ANR打印的reason 为 “xx does not have a focused window” ,表明 输入事件 5s 内,只有FocusedApplication,而没找到focused window。本文分析下FocusedApplication的设置过程。key事件的传输过程中,去查找焦点app时,就是在该容器中查找。setFocusedApp被几处地方调用,最常见的就是打开应用时,在realStartActivityLocked方法里面调用。原创 2024-07-08 15:07:22 · 368 阅读 · 0 评论 -
Android11 monitorInput 介绍
接收触摸事件真的一定需要窗口吗原创 2024-05-23 17:24:35 · 929 阅读 · 1 评论 -
Android11重复事件上报流程
可以看出,这里取出的是上次保存的事件,并根据上次事件的各个参数的值,重新生成KeyEntry,去重复上报。后续的上报处理流程就和之前的流程是一样的。需要注意的是,后续重复事件上报的间隔默认为50ms。大多数的按键驱动,即使按键一直按着,也不会一直上报事件,而是只上报一个down事件,那对于事件的重复上报,自然而然就交给了Android 的输入子系统。上面的方法只是保存了当前事件,并设置了下次上报的时间间隔是400ms,那再次上报是在哪里上报的呢?原创 2024-05-23 11:19:03 · 551 阅读 · 0 评论 -
Android11 事件分发流程
dispatchTransformedTouchEvent的含义是如果child是ViewGroup的话,就继续调用ViewGroup的dispatchTouchEvent方法继续向下分发,如果child是view的话,则调用view的dispatchTouchEvent来处理事件。deliver方法的原理就是输入事件会经过这些InputStage依次处理(调用onProcess方法),如果事件已经被上一个消费处理了,后面的stage就不会处理了。原创 2024-05-21 12:19:42 · 1268 阅读 · 0 评论 -
Android 11 触摸小圆点显示流程
当SHOW_TOUCHES 这个key的值有改变时,调用updateShowTouchesFromSettings方法,在updateShowTouchesFromSettings方法中,是调用nativeSetShowTouches这个native方法,直接来看下这个方法。小圆点的图片资源已经被加载,并将其保存在相应的变量中了,接下来就需要将其显示出来了。在开发者选项中,打开 “显示点按操作反馈” 开关,当我们在触摸屏幕时,会显示一个小圆点,来分析下小圆点的显示流程。原创 2024-05-21 10:10:55 · 931 阅读 · 0 评论 -
Android 触摸事件分离原理
查找到window2窗口后,因为window2也支持分离事件,所以也是进入注释2处的分支将isSplit 设为true,然后就是window2加入到tempTouchState中,该事件可分发至window2窗口。屏幕上存在多个窗口时,多指触摸的情况下,多个手指的触摸事件可以分给不同的窗口,以下面的图为例,第一个手指按下,window1可以响应这个事件,第二个手指按下(第一个手指不松开),window2同样也可以响应第二个手指按下的事件,两个手指的触摸事件被分离到了不同的窗口,这就是触摸事件分离。原创 2024-05-16 11:43:05 · 601 阅读 · 0 评论 -
Andorid Input事件 注入方法及原理介绍
如果APP不是放在系统源码中编译,直接使用这个方法的话,肯定是编译不过的,这时候我们可以借助Instrumentation类来实现模拟一个输入事件,例如注入一个MotionEvent 的down事件。3,对于自己应用内的事件注入,是有权限的,但是如果想注入事件到其它的应用,是需要申请INJECT_EVENTS权限的,而这个权限是需要系统签名的应用才能申请。在Android系统中,除了真实的输入设备可以产生事件之外,我们也可以通过软件的方式,模拟一个输入事件,比如模拟一个点击事件,模拟一个按键事件等等。原创 2024-05-14 12:14:05 · 349 阅读 · 0 评论 -
Android finishInputEvent 流程分析
事件处理完成之后,InputDispatcher将事件从wq移除的逻辑原创 2024-05-13 09:46:41 · 495 阅读 · 0 评论 -
Android11 InputDispatcher 分发事件流程分析
介绍对应触摸事件,InputDispatcher的处理流程原创 2024-05-10 16:05:07 · 888 阅读 · 1 评论 -
Android 11 输入系统之InputDispatcher和应用窗口建立联系
本文介绍InputDispatcher和客户端进程建立联系的过程,核心是通过socketpair产生两个fd原创 2024-05-09 17:07:34 · 1292 阅读 · 1 评论 -
Android11 InputReader分析
多指触摸类型InputReader线程情景分析原创 2024-05-08 16:07:48 · 998 阅读 · 0 评论 -
Android11 InputManagerService启动流程分析
InputManagerService的启动流程原创 2024-05-06 17:04:15 · 804 阅读 · 1 评论 -
Liunx input子系统框架
调用input_register_device或者input_register_handler 都会导致 判断是否匹配,匹配成功,调用input_handler 的 connect 函数在connect 函数中,会分配设置 input_handle 结构体,用于保存它们之间的联系,并分别放入input_handler 和 input_dev 的 h_list 链表中。最终可以通过 h_list 链表找到 input_handle,进而找到与之匹配的 hander/input_dev。原创 2021-11-10 17:44:00 · 460 阅读 · 0 评论 -
Android getevent命令详细分析
介绍getevent读取内核输入数据的原理原创 2024-05-06 14:11:26 · 583 阅读 · 0 评论