android 本地input key事件
来源:互联网 发布:java项目业绩怎么写 编辑:程序博客网 时间:2024/06/15 22:45
1. 按键映射的初始化 (文件Framework/base/libs/ui/EventHub.cpp )
EventHub::openDevice()
-----> // snprintf(keylayoutFilename, sizeof(keylayoutFilename),
// "%s/usr/keylayout/%s.kl", root, tmpfn); 确定按键映射文件名,按键映射文件在 (qwerty.kl全键盘的定义)
// a. 根文件系统中的ANDROID_ROOT/usr/keylayout/目录下的*.kl
// b.源码中的的各自工程目录下,如device/product/*.kl
KeyLayoutMap::load() 解析按键映射配置文件,完成按键的映射初始化等操作,
并生成按键映射keylayoutMap 中的Vector成员m_keys
主要流程是:
a. 解析*.kl的每一行,得出底层keycode 和其映射到android系统按键的映射字串.
b. 通过android 字串,从KEYCODES[]中获取其对应的android keycode.(KeycodeLabels.h)
c. 将原始的keycode 和得到的android keycode 绑定添加到Vector成员m_keys中.
2. 事件的获取 (文件Framework/base/libs/ui/EventHub.cpp )
EventHub::getEvent()
---> //从input文件中读取input 数据
KeyLayoutMap::map() 解析读取到的input数据,并从初始化的keylayoutMap 中的Vector成员m_keys中获取到android需要的按键keycode
解析代码如下:
ssize_t index = m_keys.indexOfKey(scancode); //通过input数据得到的keycode,获取其对应于vector中的索引
const Key& k = m_keys.valueAt(index); //通过索引找到其映射对应的android keycode
- android 本地input key事件
- android key 事件派发
- Android模拟input事件
- Android 中input学习--取得input事件
- 用getevent 获取input子系统的上报,例如KEY事件
- Android input输入事件处理
- Android input输入事件处理
- Android Webview解决input事件
- Android Input 事件系统Kitkat
- Android 2.3 input输入事件处理
- Android 2.3 input输入事件处理
- Android 4.0 事件输入(Event Input)系统
- Android 2.3 input输入事件处理
- Android 4.0 事件输入(Event Input)系统
- Android 用户界面---输入事件(Input Events)
- Android 4.0 事件输入(Event Input)系统
- Android 4.0 事件输入(Event Input)系统
- Android 4.0 事件输入(Event Input)系统
- 算法导论 10.4-5 O(n)时间非递归遍历二叉树
- 画皮2--遵从内心,心无旁骛
- 强直性脊柱炎的症状都哪些呢
- Android 设置全屏 获得屏幕大小 显示Log
- xml格式
- android 本地input key事件
- 数据挖掘
- 算法导论第七章例题——快速排序
- 创建dll方法
- gstreamer插件工作原理与流程分析
- 二叉树
- Lisp语言:二维数组和多维数组
- FreeThreadedDOMDocument、XSLTemplate的使用
- Linux程序存储结构与进程结构