我正在尝试将文件中的触摸事件添加到当前应用程序(根据文件中找到的数据构建新的触摸事件),并且我正在尝试了解“真实”触摸事件时的调用链被触发。
从我进行的所有搜索中,我发现 Activity.dispatchTouchEvent(ev)
是我们有触摸事件时调用的第一个方法,然后它被转发给 ViewGroup.dispatchTouchEvent
然后到 View.dispatchTouchEvent
。
我想找到在 Activity.dispatchTouchEvent(ev)
之前调用的内容以及事件如何从 HW 传输到此方法。
最佳答案
也许您想要的是 android 输入框架的工作原理。以下有关 android 输入框架架构的博客可能会对您有所帮助。
Android Input Framework Architecture[Part 1] : Introduction to InputReader & InputDispatcher
输入过程可以简单的表示为:
输入硬件------> 内核/驱动(输入协议(protocol))-----> EventHub(framework/base/libs/ui) getevent------> InputReader ----> inputDispatcher ----> 窗口管理器。
- 首先,InputReader 将元输入事件转换为 android 事件(等 MotionEvent/KeyEvent)。
- 然后,InputDispatcher 将事件分发给 WindowManager
- WindowManager 调用 Window.Callback.dispatchTouchEvent(***)。
关于android - 谁调用 Activity.dispatchTouchEvent( event )?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20617921/