출처:
ADB(Android Debug Bridge)를 활용해 실제 단말에 터치 이벤트 전송하기:
먼저 탭 이벤트를 발생시키기 위해서는 해당 기기에 tab이라는 녀석이 있는지 확인해봐야합니다.
확인 방법은 다음과 같습니다:
adb shell getevent -l
add device 1: /dev/input/event7
name: "MHLRCP"
add device 2: /dev/input/event0
name: "pmic8xxx_pwrkey"
add device 3: /dev/input/event1
name: "keypad_8960"
add device 4: /dev/input/event4
name: "msm8960-snd-card Headset Jack"
add device 5: /dev/input/event3
name: "msm8960-snd-card Button Jack"
add device 6: /dev/input/event6
name: "hs_detect"
add device 7: /dev/input/event5
name: "suspend_autotest_pwrkey"
add device 8: /dev/input/event2
name: "synaptics_ts"
$ adb shell 입력 후
adb shell에서 아래 명령을 입력하면 touch가 가능합니다.
$ input tap 100 100
이런 경우에는 다음 명령을 입력한 후, 원하는 곳에 터치를 합니다:
adb shell getevent
화면 터치시에 아래와 같이 주루룩 뭔가가 쫙 나옵니다:
/dev/input/event2: 0003 0035 00000113
/dev/input/event2: 0003 0036 00000677
/dev/input/event2: 0003 003a 00000032
/dev/input/event2: 0003 0032 00000005
/dev/input/event2: 0003 0033 00000004
/dev/input/event2: 0003 0034 00000000
/dev/input/event2: 0003 0039 00000000
/dev/input/event2: 0000 0002 00000000
/dev/input/event2: 0000 0000 00000000
/dev/input/event2: 0003 0035 00000113
/dev/input/event2: 0003 0036 00000677
/dev/input/event2: 0003 003a 0000003a
/dev/input/event2: 0003 0032 00000005
/dev/input/event2: 0003 0033 00000004
/dev/input/event2: 0003 0034 00000000
/dev/input/event2: 0003 0039 00000000
/dev/input/event2: 0000 0002 00000000
/dev/input/event2: 0000 0000 00000000
/dev/input/event2: 0003 0035 00000113
/dev/input/event2: 0003 0036 00000677
/dev/input/event2: 0003 003a 0000003c
/dev/input/event2: 0003 0032 00000005
/dev/input/event2: 0003 0033 00000005
/dev/input/event2: 0003 0034 00000001
/dev/input/event2: 0003 0039 00000000
/dev/input/event2: 0000 0002 00000000
/dev/input/event2: 0000 0000 00000000
/dev/input/event2: 0003 0035 00000113
/dev/input/event2: 0003 0036 00000678
/dev/input/event2: 0003 003a 0000003d
/dev/input/event2: 0003 0032 00000005
/dev/input/event2: 0003 0033 00000005
/dev/input/event2: 0003 0034 00000001
/dev/input/event2: 0003 0039 00000000
/dev/input/event2: 0000 0002 00000000
/dev/input/event2: 0000 0000 00000000
/dev/input/event2: 0003 0035 00000113
/dev/input/event2: 0003 0036 00000678
/dev/input/event2: 0003 003a 0000003d
/dev/input/event2: 0003 0032 00000005
/dev/input/event2: 0003 0033 00000005
/dev/input/event2: 0003 0034 00000001
/dev/input/event2: 0003 0039 00000000
/dev/input/event2: 0000 0002 00000000
/dev/input/event2: 0000 0000 00000000
/dev/input/event2: 0003 0035 00000113
/dev/input/event2: 0003 0036 00000678
/dev/input/event2: 0003 003a 0000003c
/dev/input/event2: 0003 0032 00000005
/dev/input/event2: 0003 0033 00000005
/dev/input/event2: 0003 0034 00000001
/dev/input/event2: 0003 0039 00000000
/dev/input/event2: 0000 0002 00000000
/dev/input/event2: 0000 0000 00000000
/dev/input/event2: 0003 0035 00000113
/dev/input/event2: 0003 0036 00000678
/dev/input/event2: 0003 003a 0000003c
/dev/input/event2: 0003 0032 00000005
/dev/input/event2: 0003 0033 00000005
/dev/input/event2: 0003 0034 00000001
/dev/input/event2: 0003 0039 00000000
/dev/input/event2: 0000 0002 00000000
/dev/input/event2: 0000 0000 00000000
/dev/input/event2: 0003 0035 00000114
/dev/input/event2: 0003 0036 00000679
/dev/input/event2: 0003 003a 0000003a
/dev/input/event2: 0003 0032 00000005
/dev/input/event2: 0003 0033 00000004
/dev/input/event2: 0003 0034 00000000
/dev/input/event2: 0003 0039 00000000
/dev/input/event2: 0000 0002 00000000
/dev/input/event2: 0000 0000 00000000
/dev/input/event2: 0003 0035 00000115
/dev/input/event2: 0003 0036 00000679
/dev/input/event2: 0003 003a 00000035
/dev/input/event2: 0003 0032 00000005
/dev/input/event2: 0003 0033 00000004
/dev/input/event2: 0003 0034 00000000
/dev/input/event2: 0003 0039 00000000
/dev/input/event2: 0000 0002 00000000
/dev/input/event2: 0000 0000 00000000
/dev/input/event2: 0003 0035 00000115
/dev/input/event2: 0003 0036 00000679
/dev/input/event2: 0003 003a 0000002f
/dev/input/event2: 0003 0032 00000005
/dev/input/event2: 0003 0033 00000004
/dev/input/event2: 0003 0034 00000000
/dev/input/event2: 0003 0039 00000000
/dev/input/event2: 0000 0002 00000000
/dev/input/event2: 0000 0000 00000000
/dev/input/event2: 0003 0035 00000115
/dev/input/event2: 0003 0036 00000679
/dev/input/event2: 0003 003a 0000001e
/dev/input/event2: 0003 0032 00000005
/dev/input/event2: 0003 0033 00000003
/dev/input/event2: 0003 0034 00000000
/dev/input/event2: 0003 0039 00000000
/dev/input/event2: 0000 0002 00000000
/dev/input/event2: 0000 0000 00000000
/dev/input/event2: 0000 0002 00000000
/dev/input/event2: 0000 0000 00000000
각 줄의 앞부분을 보니 저의 터치 장비는 /dev/input/event2 네요.
/dev/input/event2: 0003 0035 00000113
/dev/input/event2: 0003 0036 00000677
[이벤트 보낼장치]: [type] [code] [value]
type:
자세한 내용은 링크 참조:
https://www.kernel.org/doc/Documentation/input/event-codes.txt
* EV_SYN: - 디바이스 이벤트끼리 동기화시기키 위해 사용 됨. -> 0x00
* EV_KEY: - 키 기반의 디바이스 이벤트를 처리하기 위해 사용 됨. -> 0x01 * EV_ABS: - 절대 좌표값을 처리하기 위해 사용 됨. -> 0x03
/dev/input/event2: 0003 0035 00000113
-> /dev/input/devnt2장치에서 EV_ABS라는 타입의 이벤트가 발생하였다는 것을 알 수 있음.
adb shell sendevent /dev/input/event2 3 53 564
adb shell sendevent /dev/input/event2 3 54 1448
adb shell sendevent /dev/input/event2 3 58 44
adb shell sendevent /dev/input/event2 3 50 4
adb shell sendevent /dev/input/event2 3 51 4
adb shell sendevent /dev/input/event2 3 52 1
adb shell sendevent /dev/input/event2 3 57 0
adb shell sendevent /dev/input/event2 0 2 0
adb shell sendevent /dev/input/event2 0 0 0
adb shell sendevent /dev/input/event2 0 2 0
adb shell sendevent /dev/input/event2 0 0 0
16진수를 10진수로 변경해주고 getevent 켜 놓고 터치했을 때 맨 마지막 패턴으로 제어하면 됨.
참고:
https://sites.google.com/site/sbobovyc/home/Programming/a/uinput