1,Android 事件处理的主要对象:java 层的InputManager和c++层的InputManager,C++层的InputManager主要包括InputReader,InputDispatcher。InputReader主要是打开设备驱动,然后读取/input/event0事件,并交给InputDispatcher


2,事件分发的主要流程(在分发前会先给PhoneWindowManager进行过滤和处理,Home键等就是这里处理的):

KeyboardInputMapper::processKey -->InputDispatcher::notifyKey  -->PhoneWindowManager::interceptKeyBeforeQueueing-->Looper::wake------...>唤醒 -->

InputDispatcher::dispatchOnce-->InputDispatcher::dispatchOnceInnerLocked-->InputDispatcher::dispatchKeyLocked-->InputDispatcher::dispatchEventLocked-->InputDispatcher::doInterceptKeyBeforeDispatchingLockedInterruptible-->PhoneWindowManager::interceptKeyBeforeDispatching


3,InputReader,InputDispatcher 等都放在frameworks/native/services/inputflinger这个目录下面

更多相关文章

  1. Android(安卓)之 事件
  2. 【转】Android中对json的解析和处理
  3. Android(安卓)编程下 Touch 事件的分发和消费机制
  4. android中的Touch研究
  5. Android中设计具有背景图的按钮—ImageButton的焦点及事件处理
  6. Android中使用WebView, WebChromeClient和WebViewClient加载网页
  7. webViewJavascriptBridge踩坑【页面刚开始bridge失效一阵】
  8. Android重写OnTouchListener实现双击事件的监听
  9. Android实现TextView部分文本监听单击事件

随机推荐

  1. android 记得用mkdirs不要用mkdir
  2. android 创建快捷方式 删除快捷方式 不重
  3. android读取网络图片
  4. Android(安卓)手机号码格式验证
  5. Android(安卓)判断SIM卡属于哪个移动运营
  6. 【AS-AndroidX】迁移AndroidX带来的问题
  7. Android实现网络音乐播放器
  8. android 调用系统自带录音实现,语音录制与
  9. Android中Java反射技术的使用示例
  10. 设置 Android(安卓)wifi连接 samples【转