Android InputMonitor
来源:互联网 发布:闪电网络测速工具 编辑:程序博客网 时间:2024/06/08 03:38
InputMonitor是InputManagerService和WMS之间的纽带,SystemServer.java中 startOtherServices()方法下进行初始化:
inputManager = new InputManagerService(context); Trace.traceEnd(Trace.TRACE_TAG_SYSTEM_SERVER); traceBeginAndSlog("StartWindowManagerService"); wm = WindowManagerService.main(context, inputManager, mFactoryTestMode != FactoryTest.FACTORY_TEST_LOW_LEVEL, !mFirstBoot, mOnlyCore); ServiceManager.addService(Context.WINDOW_SERVICE, wm); ServiceManager.addService(Context.INPUT_SERVICE, inputManager); Trace.traceEnd(Trace.TRACE_TAG_SYSTEM_SERVER); traceBeginAndSlog("StartVrManagerService"); mSystemServiceManager.startService(VrManagerService.class); Trace.traceEnd(Trace.TRACE_TAG_SYSTEM_SERVER); mActivityManagerService.setWindowManager(wm); inputManager.setWindowManagerCallbacks(wm.getInputMonitor());//互相关联 inputManager.start();
其中 wm.getInputMonitor()方法在WindowManagerService.java中如下:
public InputMonitor getInputMonitor() { return mInputMonitor; } final InputMonitor mInputMonitor = new InputMonitor(this);
当IMS接收到相应输入事件后,会通过mWindowManagerCallbacks 来调用mInputMonitor对象方法:
return mWindowManagerCallbacks.notifyConfigurationChanged();
return mWindowManagerCallbacks.notifyLidSwitchChanged(whenNanos, lidOpen);
return mWindowManagerCallbacks.notifyCameraLensCoverSwitchChanged(whenNanos, lensCovered);
return mWindowManagerCallbacks.notifyInputChannelBroken(inputWindowHandle);
return mWindowManagerCallbacks.notifyANR(
return mWindowManagerCallbacks.interceptKeyBeforeQueueing(event, policyFlags);
return mWindowManagerCallbacks.interceptMotionBeforeQueueingNonInteractive(
return mWindowManagerCallbacks.interceptKeyBeforeDispatching(focus, event, policyFlags);
return mWindowManagerCallbacks.dispatchUnhandledKey(focus, event, policyFlags);
return mWindowManagerCallbacks.getPointerLayer();
- Android InputMonitor
- Android
- android
- Android
- android
- android
- Android
- Android
- android
- android
- android
- Android
- Android
- android!!!
- android
- android
- android
- android
- php搭建环境
- Nginx反向代理以伪装站点登录
- OkHttp源码分析
- iOS/Swift3.0 终端命令自动打包
- Maven实践---导航
- Android InputMonitor
- StructuredStreaming官方文档翻译
- TCP/IP协议、socket及socket简单实现网络通讯
- php mysql数据库操作类
- socket之UDP通信
- HBase的RowKey设计原则
- Rails之关于时间(时区)
- Node.js学习之Telnet
- ZooKeeper伸缩性