- InputManager.cpp
- InputManager::InputManager( const sp<EventHubInterface>& eventHub, const sp<InputReaderPolicyInterface>& readerPolicy, const sp<InputDispatcherPolicyInterface>& dispatcherPolicy) {
- mDispatcher = new InputDispatcher(dispatcherPolicy);
- mReader = new InputReader(eventHub, readerPolicy, mDispatcher);
- initialize();
- }void InputManager::initialize() {
- mReaderThread = new InputReaderThread(mReader);
- mDispatcherThread = new InputDispatcherThread(mDispatcher);
- }
至此,InputManagerService对象的初始化就完成了,根据开首说的,接下来就会调用InputManagerService的start()办法。
监听线程InputReader和InputDispatcher的启动
在start()办法中,做了以下工作:
- 调用nativeStart办法,其实就是调用InputManager的start()办法
- 将InputManagerService交给WatchDog监控
- 注册触控点速度、显示触控的不雅察者,并注册广播监控它们
- 主动调用updateXXX办法更新(初始化)
- InputManagerService.javapublic void start() {
- Slog.i(TAG, "Starting input manager");
- nativeStart(mPtr); // Add ourself to the Watchdog monitors.
- Watchdog.getInstance().addMonitor(this);
- registerPointerSpeedSettingObserver();
- registerShowTouchesSettingObserver();
- registerAccessibilityLargePointerSettingObserver();
- mContext.registerReceiver(new BroadcastReceiver() { @Override
- public void onReceive(Context context, Intent intent) {
- updatePointerSpeedFromSettings();
- updateShowTouchesFromSettings();
- updateAccessibilityLargePointerFromSettings();
- }
- }, new IntentFilter(Intent.ACTION_USER_SWITCHED), null, mHandler);
- updatePointerSpeedFromSettings();
- updateShowTouchesFromSettings();
- updateAccessibilityLargePointerFromSettings();
推荐阅读
51CTO诚邀您9月23号和秒拍/国美/美团元专家一路聊智能CDN的优化之路,抓紧时光哦! 以前几个月,安然界见证了多起重大年夜云数据泄漏事宜。6月份1.97亿美国选平易近的泄漏事宜,震动全球。>>>详细阅读
本文标题:Android Input子系统:Input进程的创建,监听线程的启动
地址:http://www.17bianji.com/lsqh/37309.html
1/2 1