关闭
当前搜索:

android事件处理,对事件的接收处理,(6)

六,对事件的接收,从ViewRootImpl.java 说起。        为什么要从ViewRootImpl说起呢?还记得前面说inputChannel通道的时候,是从添加一个窗口开始的,那么添加窗口就是从ViewRootImpl的setView开启的。        ViewRootImpl.java public void setView(View view,WindowManage...
阅读(106) 评论(0)

android事件处理,把事件通知到焦点窗口,(5)

五,接下来的问题是InputDispatch是怎么把事件通知到到焦点窗口InputTarget的呢? 先看下InputTarget的定义, InputDispatcher.h 一个inputtarget表明了怎样把一个输入事件分发给一个特定的窗口。 struct InputTarget {        enum{               //这个flag指示 事件应该发给前台应用...
阅读(108) 评论(0)

android事件处理,InputDispatch怎么处理事件的?(4)

四,InputDispatch怎么处理事件的? InputDispatch的循环同样是通过InputDispatchThread的ThreadLoop调用dispatchOnce实现的。 在分发事件的处理中,如果事件类型是TYPE_KEY,将分发给dispatchKeyLocked。 InputDispatcher.cpp voidInputDispatcher::dispatchOnce...
阅读(95) 评论(0)

Android事件处理过程,InputDispatchThread和InputReaderThread的协作,(3)

三、另一个线程InputDispatchThread,它的实现核心是InputDispatch。 InputDispatchThread和InputReaderThread是要协同工作的,那是怎么协作的呢? 前面说过这两个线程是在frameworks/native/services/inputflinger/InputManager.cpp中创建的。 InputManager::InputM...
阅读(99) 评论(0)

Android 事件处理过程,读取事件线程,(2)

二、InputReaderThread,        InputManager创建的两个主要线程之一InputReaderThread,它的主要工作是轮询设备节点是不是有新的事件发生,这是一个独立的循环线程。他的运行通过前面提到的 mReaderThread→run()这个run方法启动的,这个run方法接着调用_threadLoop,InputReaderThread的核心实现类是Input...
阅读(84) 评论(0)

Android 事件处理过程,(1)

Android 事件处理过程   一、事件主要包括按键-keyEvent,触屏-motionEvent, 事件投递的过程分为几个部分,源信息的采集->WindowManagerService分配->应用程序处理。 Android通过访问/dev/input节点来获知当前发生的事件。 WindowManagerService是窗口的管理者,记录了系统中所有窗口的状态信息,所以它能够判断应该...
阅读(77) 评论(0)
    个人资料
    • 访问:35684次
    • 积分:1711
    • 等级:
    • 排名:千里之外
    • 原创:132篇
    • 转载:38篇
    • 译文:0篇
    • 评论:9条
    最新评论