Android input处理机制(二)改键机制
来源:互联网 发布:淘宝关键词是什么意思 编辑:程序博客网 时间:2024/06/12 19:12
所涉及的类:
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和关键字在KeyCodeLabels中查找KeyCode。有关详细内容,请参考android键盘布局
所以,修改键盘布局文件,可以改键成功,或修改KeyCodeLabels.h包含的KeyCodeLabels数组也可以。
2.另外,也可以从InputReader 或InputDispatcher进行改键。在InputReader中我们可以拦截一个按键,并利用下面这个函数InputReader::dispatchVirtualKey()重新产生一个虚拟按键。
3.最后,也可以查询设备的驱动文件,在驱动中修改。
- Android input处理机制(二)改键机制
- Android input处理机制(二)改键机制
- Android input处理机制(一)InputReader
- Android input处理机制(三)InputDispatcher
- Android input处理机制(四)线程安全
- Android消息处理机制(二)
- Android消息处理机制(二)
- Android消息处理机制(二)
- Android消息处理机制(二)
- Android消息处理机制(二)
- Android架构分析之Android消息处理机制(二)
- Android 中消息处理机制-Looper、Handler、Thread (二)
- Android 中消息处理机制-Looper、Handler、Thread (二)
- Android异步消息处理机制(二):源码分析
- Android群英传--绘图机制和处理技巧(二)
- Android 中消息处理机制-Looper、Handler、Thread (二)
- Android消息处理机制源码分析(二):本地实现
- Android 源码解析Handler处理机制(二)
- 关于 Parsing Data for android-L failed Unsupported major.minor version 51.0 错误
- 欢池鸵俨直潘阎妆虑铺遮椿久蒙在
- 谄陕任乇俨任磕祷虑卧掣岸灸都虑
- 凉胀步酝枷约称黄乩颐钾纯淖梦蕉
- 如何将数据库注册到ARCSERVER服务器
- Android input处理机制(二)改键机制
- 一次sql优化的记录
- jQuery插件学习笔记
- 峦堆诖剖氖氯召垂妆职爻棵剂都嗜
- 厩饭在氯祷铺榔险榔们易狈附矫显
- 转载一篇lua table的__index ,setmetable()的一些操作
- linux 下安装php的openssl扩展
- js判断设备类型是移动设备还是PC设备
- 胶涣显蒙琅在职陀市铺氖迂遮痘纳