android 添加按键(一) kl文件 kcm文件

原创 2015年11月19日 11:41:40

  在Android 系统中定义了大量的物理和虚拟按键,比如返回键,home键,数字键等。

  在添加按键之前,需要了解Andorid 系统的按键软件架构,以物理按键为例。


  1. 驱动层 


      将物理按键的键值上报给按键框架层。在手机的文件系统中,有这样的一个目录 /dev/input,按键框架层,就是通过检测这个目录,看是否有按键值上报。


  2. 按键框架层


   2.1 将驱动中定义个的按键值映射成按键码.(*.kl)

   按键值映射文件 *.kl
   如Generic.kl,qwerty.kl 等。

   key 123 BACK
这句话的意思是 将驱动上报的键值 123  映射城按键码  BACK,BACK 有自己的值(KeycodeLabel.h).


   2.2 将按键码映射成用户可见的字符.(*.kcm)

   按键字符映射文件 *.kcm
   将按键码映射成多个可显示的用户可以看到的字符。
   如 qwerty.kcm(全键盘)
   META Keys:就是ALT、SHIFT、CAPS_LOCK 这几个键。

   key A {
    label:                              'A'
    number:                             '2'
    base:                               'a'
    shift, capslock:                    'A'
    alt:                                '#'
    shift+alt, capslock+alt:            none
   }


   label 表示显示的字符 'A"
   number 表示这个按键码对应的数字,如在 九宫格中,按下包含a的那个键时,对应的数字键就是2
   base 表示,ALT,SHIFT,CAPS_LOCK 这些按键没有被按下时,需要显示的字符
   shift,capslock 表示shift或者capslock 被按下时,需要显示的字符
   其他的类似。


  3. 按键应用层


      应用层在onKeyUp,onKeyDown 中识别的就是keyCode.
 


版权声明:本文为博主原创文章,未经博主允许不得转载。

android kl文件

android kl(key layout)文件是一个映射文件,是标准linux与anroid的键值映射文件,kl文件可以有很多个,但是它有一个使用优先级:/system/usr/keylayout/...

理解kcm文件的意义

理解kcm文件的意义# keycode display number base caps fn caps_fn ...

kcm文件(不知道干啥用的)

find -name *.kcm ./frameworks/base/data/keyboards/Virtual.kcm ./frameworks/base/data/keyboards/qwe...

Android系统-按键字符表(*.kcm)

上节讲android的Window Manager将内核按键码通过按键映射表转换成android按键码, 这节讲的是android按键码向android字符的转换,转换也是通过Window Mana...

android Generic.kcm的使用

最近项目要用到组合键打开一个apk的功能,大家都知道,如果是单个键盘打开APK,那就很简单了,比如按F11打开浏览器,或者其他,自己 Generic.kl中增加,并在上层做简单的修改就行了,但是组合键...

Android6.0 按键kl文件加载过程分析

在之前按键过程分析的几篇博客中,我分析过关于按键kl文件的加载,但是讲的不是非常详细,这篇博客主要把kl文件加载过程单独拉出来分析下。 1. 获取InputDeviceIdentifier的nam...

Android下添加新的自定义键值和按键处理流程

Android下添加新的自定义键值和按键处理流程     说出来不怕大家笑话,我写这篇博客的原因在于前几天去一个小公司面试Android系统工程师,然后在面试的时候对方的技术总监问了我一个问题,请你...
  • tkwxty
  • tkwxty
  • 2015年01月31日 09:37
  • 17003

android 添加新的键值,自定义按键

在android中,上层可使用的键值默认情况下是92个,从0-91;一般情况下,这些键值是够用的,但是如果想扩充的话,还是需要添加新的键值的,那么如何将一个新的键值从驱动的设置映射到上层,使应用可以对...

android kl 文件的作用

首先看touchscreen的kl文件 # Copyright (c) 2014, The Linux Foundation. All rights reserved. # # Redistrib...

FTxxxx系列-----home按键失灵(kl没有加载正确)

今天遇到一个问题,home按键失灵 通常这种情况都会看kl文件有没有加载对 果然 dumpsys input出来的结果是 6: ft5x06_ts       Classes: 0x00000015 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android 添加按键(一) kl文件 kcm文件
举报原因:
原因补充:

(最多只允许输入30个字)