输入是一个操作系统的重要组成部分,没有输入,用户就无法向系统发送指令,也就没法完成人机交互。在Android系统中,输入系统是不可缺少的,下面简单介绍输入系统的整体框架,以下内容参考清华出版社出版的《Android图形显示系统》。
输入管理框架
输入管理框架解析如下。
(1)输入管理服务是一个系统服务,运行于system server进程。
(2)输入管理服务主要分为java层和native层两部分,java层部分为InputManagerService,native层部分为InputManager。
(3)InputManager主要成员包括InputReader和InputDispatcher,前者负责从驱动层读取输入事件,后者负责把输入事件传给目标窗口。
(4)应用进程的NativeInputEventReceiver负责接收InputDispatcher发送过来的输入事件,收到事件后传递到java层的WindowInputEventReceiver。
(5)WindowInputEventReceiver收到输入事件后交给ViewRootImpl处理。
(6)ViewRootImpl收到输入事件后传给视图。
图中带箭头的连线表示输入事件的传递路径