AndroidInput分析Androidinput子系统框架图:Androidinput主要模块:访问慕 课大巴获取更多安卓教程:www.mukedaba.com1:WindowManagerService:管理窗口,收集input 事件和分发input事件;2:InputManager:接收和分发输入事件;3:EventHub:打开所有的输入设备,输入事件 映射;4:InputReader:InputReader收集到input事件并进行判断处理;5:InputDispatcher :事件过滤(home,Volume+/-,Power),将事件发送给上层;6:其他模块例如上层事件分发,输入法等;Andr oidinputManager对象关系图:AndroidEventHub分析:1:监听/dev/input目录(包括 热插拔设备:蓝牙键鼠等)2:扫描并打开/dev/input下的输入设备3:根据配置文件和键值映射文件对设备进行配置和键值映射 4:将所有设备添加到本地列表中5:捕获输入事件,并根据相应设备类型进行处理AndroidEventHub和InputRe ader处理不同输入设备:1:得到设备输入类型:按键,手柄,触摸(单点,多点);2:根据设备类型和prop做键值布局(.kl) 和映射(.kcm);3:将设备添加到InputReader对象中;4:根据设备类型添加不同mapper;5:InputRea der做一次按键收集,EventHub获取一次底层键值,并对键值进行处理;6:将收集到的键值发送给监听对象Android inputReader对象依赖图:AndroidinputEvent数据流程图: |
|