android input子系統之-常用命令及技巧


1).      getevent  :動態查看event輸入事件
getevnet -l

getevent –h  (查看支持的參數,有時候藉助不同的參數有很大幫助)

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

getevent命令能獲取數據,說明input驅動層OK,且Eventhub.cpp層也能獲取到數據

getevent命令打印數據格式:type=%d, code=%d, value=%d

 

2).      dumpsysinput  可查看各個輸入設備信息,包括設備對應的kl kcm等信息,
以及當前指定的app信息
3).      catproc/bus/input/devices  查所有input device信息

       @EventHub.cpp –new 首先new一個設備結構,然後存放上述設備的信

4).      catproc/bus/input/handlers 查看支持的所有handlers信息
5).      catsys/class/input/eventX/device/XX

egcat sys/class/input/event0/device/capabilities/key

6).      ll dev/input/  查看所有註冊的input設備節點及它們的主,次設備號

crw-rw-rw- root    input     13,  64 2013-01-01 08:00 event0

crw-rw-rw- root     input    13,  65 2013-01-01 08:00 event1

7).      查看系統中存在的佈局文件:

ls system/usr/keylayout  --XX.kl文件

ls system/usr/keychars --XX.kcm文件

ls system/usr/idc ??

 

8).      Input 調試命令

    input text <string>   eg:輸入字符串 如:input textmy_string

    input keyevent <key code number orname> 

eg:模擬power鍵輸入inputkeyevent KEYCODE_POWER inputkeyevent 26

    input [touchscreen|touchpad] tap <x><y>

    input [touchscreen|touchpad] swipe<x1> <y1> <x2> <y2>

    input trackball press  //按下確認

input trackball roll <dx> <dy>

9).      logcat過濾信息 tag WindowManager EventHub

系統攔截鍵值PhoneWindowManager.java-interceptKeyBeforeDispatching函數

增加logcat信息 ,打印keycode scancode

PhoneWindowManager.java  logcat -s WindowManager

interceptKeyBeforeQueueing(){

。。。。。。。

final int keyCode =event.getKeyCode();       

final int scanCode = event.getScanCode();

Log.e(TAG, "andy@----> keycode :" + event.keyCodeToString(keyCode) + " " + keyCode + " ,scanCode " + scanCode);

。。。。。

}

 

…………………………………………………………………………………………………………………………………………………

getevent 命令: (以音量+按鍵爲例)

格式:type=%d, code=%d, value=%d

/dev/input/event0: 0001 0073 00000001   // 73 十六進制,對應十進制115 ,爲scancode

/dev/input/event0: 0000 0000 00000000

/dev/input/event0: 0001 0073 00000000

/dev/input/event0: 0000 0000 00000000

 

對應的getevent –l 命令:

/dev/input/event0: EV_KEY       KEY_VOLUMEUP         DOWN              

/dev/input/event0: EV_SYN       SYN_REPORT           00000000            

/dev/input/event0: EV_KEY       KEY_VOLUMEUP         UP                 

/dev/input/event0: EV_SYN       SYN_REPORT           00000000 

其中KEY_VOLUMEUPscancode 115的宏定義,要在getevent中顯示這個紅名字,需要在內核的input.hJB\system\core\toolbox\getevent.c

 

通過/dev/input/event0 可找到對應的輸入設備,看當前是使用的哪個設備,如紅外還是RC遙控器等,對應dumpsys input信息,可以找到對應的kl文件

…………………………………………………………………………………………………………………………………………………

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章