android Input架构

事件的传入是从EventHub开始的,EventHub是事件的抽象结构,维护着系统设备的运行情况,设备类型包括Keyboard、TouchScreen、TraceBall。它在系统启动的时候会通过open_device方法将系统提供的输入设备都增加到这个抽象结构中,并维护一个所有输入设备的文件描述符,如果输入设备是键盘的话还会读取/system/usr/keylayout/目录下对应键盘设备的映射文件,另外getEvent方法是对EventHub中的设备文件描述符使用poll操作等侍驱动层事件的发生,如果发生的事件是键盘事件,则调用Map函数按照映射文件转换成相应的键值并将扫描码和键码返回给KeyInputQueue,详见Android中Key Event流程

input调试工具:getevent 源代码:system/core/toolbox/getevent.c

框架:

android Input架构_第1张图片

详细结构:

android Input架构_第2张图片

源代码路径:frameworks/base/libs/ui/EventHub.cpp


参考:

Android 中input event的分析

Android 4.0 事件输入(Event Input)系统

Android Input系统之触摸屏

Android 【真机】与【模拟器】触摸屏事件的模拟差异分析

应用层的代码分析:

Android FrameWork——Touch事件派发过程详解


你可能感兴趣的:(android,input)