Android(安卓)按键流程分析笔记
16lz
2022-05-22
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这个目录下面
更多相关文章
- Android(安卓)之 事件
- 【转】Android中对json的解析和处理
- Android(安卓)编程下 Touch 事件的分发和消费机制
- android中的Touch研究
- Android中设计具有背景图的按钮—ImageButton的焦点及事件处理
- Android中使用WebView, WebChromeClient和WebViewClient加载网页
- webViewJavascriptBridge踩坑【页面刚开始bridge失效一阵】
- Android重写OnTouchListener实现双击事件的监听
- Android实现TextView部分文本监听单击事件