framework添加按键及基本定位

适配添加按键修改文件:
  • framework层配置文件:

    frameworks/base/core/java/android/view/KeyEvent.java

    frameworks/base/core/res/res/values/attrs.xml

  • native层配置文件:

    frameworks/native/include/android/keycodes.h

    frameworks/native/include/input/InputEventLabels.h

  • kl文件:***.kl
       添加后整编报错尝试make update-api
 
调试方法:

1getevent命令

Usage: getevent [-t] [-n] [-s switchmask] [-S] [-v [mask]] [-d] [-p] [-i] [-l] [-q] [-c count] [-r] [device]

    -t: show time stamps

    -n: don't print newlines

    -s: print switch states for given bits

    -S: print all switch states

    -v: verbosity mask (errs=1, dev=2, name=4, info=8, vers=16, pos. events=32, props=64)

    -d: show HID descriptor, if available

    -p: show possible events (errs, dev, name, pos. events)

    -i: show all device info and possible events

    -l: label event types and names in plain text

    -q: quiet (clear verbosity mask)

    -c: print given number of events then exit

    -r: print rate events are received

例如:getevent -l 

2、获取输入设备的详细信息

cat /proc/bus/input/devices

3、输入系统信息

dumpsys input

4、logcat

5、input 命令

Usage: input [<source>] [-d DISPLAY_ID] <command> [<arg>...]

 

The sources are:

      dpad

      keyboard

      mouse

      touchpad

      gamepad

      touchnavigation

      joystick

      touchscreen

      stylus

      trackball

 

-d: specify the display ID.

      (Default: -1 for key event, 0 for motion event if not specified.)

The commands and default sources are:

      text <string> (Default: touchscreen)

      keyevent [--longpress] <key code number or name> ... (Default: keyboard)

      tap <x> <y> (Default: touchscreen)

      swipe <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen)

      draganddrop <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen)

      press (Default: trackball)

      roll <dx> <dy> (Default: trackball)

      event <DOWN|UP|MOVE> <x> <y> (Default: touchscreen)

原文地址:https://www.cnblogs.com/lping/p/14703541.html