android键盘映射
Android bottom and middle tier common learning series Androidkeyboard mapping collection
(reprinted please explain from the largest Android communityin China, androidin bottom drive forum branch, the largestLinux community in the country, Linuxforum embedded Linuxbranch)
(Email: hongj iuj ing@gmail.com)
This article is suitable for beginners, say wrong place,welcome to correct and perfect. Daniel can bypass ^ ^)introducefunction
Key layout mapping
Selection of key mappingsf ile format
Key layout mapping file example
Key character mapping
Selection of key character mappingsf ile format
Resource binary file format
Improve your own drive
Listed
Introduce:
This paper describes how the key input is translated into thebehavior information of the Android application layer and howto customize the layout of keys and key character mapping tablesto meet the needs of the equipment.
Note:
The application of Android is not just a tablet computer, MID,phone, you can also put the STB set-top boxes, smart hometerminal to the above, so the key is to map custom, regardlessof whether the button is fixed on the equipment, or throughwireless or Bluetooth remote control equipment, mapping allneed keys.
Android is also the core of Linux, and most of the time it isthe operating system that performs tasks in scheduling tasks.Accordingly, the Android input system also follows the LINUXinput input and output subsystem, and the analysis of this partcan be Google, and there are many fundamental aspects of theanalysis. Android uses the standard Linux input event device(/dev/event0) , and the driver description allows you to viewthe kernel tree header file include/linux/input.h. If you want
to go further into Linux input subsystem, you can access:http://git.kernel.org/, p=linux/k, /linux-2.6.24.y.git,a=blob, f=Documentation/input/input. txt
Note: event0 is your keypad/gpio-keyregistration to the kernelnode number, if there are other input devices registered intothe kernel, you can also be event1.
Functionality
Android inputs event devices, using interrupts (hardwaretriggers) or polling structures (software simulations) tocapture device specific scan codes and translate them intostandard kernel acceptable events via input_event () .The other main driving driving key mapping is to construct aprobe function for polling function, simulation registerinterrupt your software or hardware initialization, usinginput_register_device () registered driver/ equipment to theinput and output system.
Note: about the probe belongs to the Linux device driver modelknowledge, you can read the LDD3 or LINUX device driverPrinciple and practice, described in great detail.
The following table describes the conversion steps from thekeyboard input to the corresponding application behaviorStep behavior interpretation
The 1 window manager from Linux keyboard keyboard event key
messages do not specifyany logic event, which is only connectedwith the hardware related to the location, that is to say, thekey code of the keyboard software without any meaning, mappingthe keyboard code
The 2 window manager scans the scan code as key. When the windowmanager reads a key from the driver, it uses the key layoutmapping file to map the scan code to the key value. In particular,this key is the bar code displayed on the screen. for exampleKEYCODE_DPAD_CENTER is a five bit key intermediate navigationkeys, even if ALTG produces a "?" character, the fact thatKEYCODE_G is the key.
The 3 window manager sends a scan code and key code to theapplication, scan code and key code is the current focus ofinterface processing, specific "translation" depends on thespecific application.
Key layout mapping
How do I select a key layout mapping file?
The key layout mapping file is usually placed in
/system/usr/keylayout and /data/usr/keylayout
For each keyboard device XXX, set the system propertyandroid.keylayout.xxx, if you do not create a specific devicefor their own hardware, Android will read the configurationf ile /system/usr/keylayout/qwerty.kl.
Note: if you set system properties, seettp://www.kandroid.org/android_pdk/build_new_device.htmlFile format:
The keymapping file is usually stored in aUTF8 text file format,usually with the following characteristics:
Note: the initial content will be ignored.
Blank: all blank lines are ignored
Key definition: the key definition follows the following formatkey, SCANCODE, KEYCODE, [FLAGS, . . . ] when the scan code is anumber, the key code is defined in the layout fileandroid.keylayout.xxx you describe, and you can also set therelevant FLAGS:
SHIFT: when pressed, the SHIFT key is automatically addedALT: when pressed, automatically add ALT
CAPS: when pressed, automatically bring CAPS capitalsWAKE: when pressed, when the device goes to sleep, press thisbutton to wake up,
And send messages to the application layer.
WAKE_DROPPED:when pressed and the device is asleep, the deviceis awakened, but does not send messages to the application
layer.
Keyboard mapping file example:
Android/src/device/product/generic/tuttle2.kl2007 The Android Open Source Copyright # ProjectKey 21
Key 32
Key 43
Key 54
Key 65
Key 76
Key 87
Key 98
Key 109
Key 110
Key 158, BACK, WAKE_DROPPED
Key 230, SOFT_RI GHT, WAKE
Key 60, SOFT_RIGHT, WAKE
Key 107, ENDCALL, WAKE_DROPPEDKey 62, ENDCALL, WAKE_DROPPED
Key 229, MENU, WAKE_DROPPED
Key 59, MENU, WAKE_DROPPED
Key 228, POUND
Key 227, STAR
Key 231, CALL, WAKE_DROPPED
Key 61, CALL, WAKE_DROPPED
Key 232, DPAD_CENTER, WAKE_DROPPEDKey 108, DPAD_DOWN, WAKE_DROPPEDKey 103, DPAD_UP, WAKE_DROPPEDKey 102, HOME, WAKE
Key 105, DPAD_LEFT, WAKE_DROPPEDKey 106, DPAD_RI GHT, WAKE_DROPPED
Key 115, VOLUME_UPKey 114, VOLUME_DOWNKey 116, POWER, WAKEKey 212, SLASH
Key 16, Q
Key 17, W
Key 18, E
Key 19, R
Key 20, T
Key 21, Y
Key 22, U
Key 23, I
Key 24, O
Key 25, P
Key 30, A
Key 31, S
Key 32, DKey 33, FKey 34, GKey 35, HKey 36, JKey 37, KKey 38, LKey 14, DELKey 44, ZKey 45, XKey 46, CKey 47, VKey 48, BKey 49, NKey 50, M
青云互联怎么样?青云互联是一家成立于2020年6月份的主机服务商,致力于为用户提供高性价比稳定快速的主机托管服务,目前提供有美国免费主机、香港主机、香港服务器、美国云服务器,让您的网站高速、稳定运行。目前,美国洛杉矶cn2弹性云限时七折,美国cera机房三网CN2gia回程 13.3元/月起,可选Windows/可自定义配置。点击进入:青云互联官网青云互联优惠码:七折优惠码:dVRKp2tP (续...
公司成立于2021年,专注为用户提供低价高性能云计算产品,致力于云计算应用的易用性开发,面向全球客户提供基于云计算的IT解决方案与客户服务,拥有丰富的国内BGP、三线高防、香港等优质的IDC资源。公司一直秉承”以人为本、客户为尊、永续创新”的价值观,坚持”以微笑收获友善, 以尊重收获理解,以责任收获支持,以谦卑收获成长”的行为观向客户提供全面优质的互...
ShockHosting商家在前面文章中有介绍过几次。ShockHosting商家成立于2013年的美国主机商,目前主要提供虚拟主机、VPS主机、独立服务器和域名注册等综合IDC业务,现有美国洛杉矶、新泽西、芝加哥、达拉斯、荷兰阿姆斯特丹、英国和澳大利亚悉尼七大数据中心。这次有新增日本东京机房。而且同时有推出5折优惠促销,而且即刻使用支付宝下单的话还可获赠10美金的账户信用额度,折扣相比之前的常规...