图解Android - Android GUI 系统 (5) - Android的Event Input System - 漫天尘沙 - 博客园.htm // 关注里面的Dispatcher处理流程
http://www.cnblogs.com/samchen2009/p/3368158.html
Dispatcher线程框架:
分发
问:发什么?发给谁?
Dispatcher流程如下:
获得事件:
(1)放入队列前先稍加处理:分类(Global输入/System输入/User输入)、处理紧急事件(比如来电、按音量、静音)
(2)InputReader线程放入mInboundQueue
稍加处理(先从mInboundQueue取出数据):
(3)对于Global/System按键处理:放入mcommandQueue,依次处理,不会传给应用程序
(4)对于User按键放入队列,查找目标APP,得到connection,放人APP里面的outboundQueue
(5)从outboundQueue取出事件,通过connection发给APP
应用程序在创建的时候会通过connection和Dispatcher线程产生联系,connection由WM(windowManager)管理