Android input处理机制(二)改键机制

本文深入探讨了Android系统的改键机制,主要涉及EventHub、KeyMap、InputReader等类以及驱动层面。关键步骤包括加载KeyLayoutMap中的键盘布局文件,通过KeyLayoutMap::load解析kl文件,或在InputReader中重定义按键行为。改键方法包括修改键盘布局文件、KeyCodeLabels数组,以及在驱动文件中直接调整。
摘要由CSDN通过智能技术生成

本文主要总结一下Android平台的改键机制,从三个层次 驱动  键盘布局文件  InputReader

所涉及的类:

   class EventHub;

   struct Device;

   class KeyMap;

   KeylayoutMap;

   class InputReader;

所涉及的文件:

frameworks \

EventHub.h;

EventHub.cpp;

KeyBoard.h;

KeyBoard.cpp;

KeyLayoutMap.h

KeyLayoutMap.cpp

KeycodeLabel.h

InputReader.cpp

kernel \

具体的驱动文件

涉及流程:

从EventHub入手,EventHub::openDeviceLocked->  EventHub::loadKeyMapLocked   ->    KeyMap::load -> KeyMap::loadKeyLayout  -> KeyLayoutMap::load -> KeyLayoutMap::Parser::parse() ->  KeyLayoutMap::Parser::parseKey() -> getKeyCodeByLabel     -> lookupValueByLabel (KeyCodeLabels.h)

实施改键的关键位置

1.KeyLayoutMap::load 此处加载 (驱动名.kl) 文件,从而加载键盘布局,如设备不提供键盘布局文件,则默认加载usr/keylayout/qwerty.kl

根据键盘布局文件提供的scanCode和关

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值