Monday, June 11, 2012

adb shell simulate touch screen click


Start button:
/dev/input/event8: 0003 0035 00000101
/dev/input/event8: 0003 0036 000000bc
/dev/input/event8: 0003 0030 00000028
/dev/input/event8: 0003 0032 00000006
/dev/input/event8: 0003 0039 00000000
/dev/input/event8: 0000 0002 00000000
/dev/input/event8: 0000 0000 00000000
Stop button:
/dev/input/event8: 0003 0035 00000104
/dev/input/event8: 0003 0036 000002af
/dev/input/event8: 0003 0030 00000028
/dev/input/event8: 0003 0032 00000006
/dev/input/event8: 0003 0039 00000000
/dev/input/event8: 0000 0002 00000000
/dev/input/event8: 0000 0000 00000000

click start button
./adb shell "sendevent /dev/input/event8 3 53 257;
           sendevent /dev/input/event8 3 54 188;
           sendevent /dev/input/event8 3 48 40;
           sendevent /dev/input/event8 3 50 6;
           sendevent /dev/input/event8 3 57 0;
           sendevent /dev/input/event8 0 2 0;
           sendevent /dev/input/event8 0 0 0;
           sendevent /dev/input/event8 1 330 1
   sendevent /dev/input/event8 0 0 0;
   sendevent /dev/input/event8 1 330 0;
   sendevent /dev/input/event8 0 0 0"
click stopbutton

./adb shell "sendevent /dev/input/event8 3 53 260;
           sendevent /dev/input/event8 3 54 687;
           sendevent /dev/input/event8 3 48 40;
           sendevent /dev/input/event8 3 50 6;
           sendevent /dev/input/event8 3 57 0;
           sendevent /dev/input/event8 0 2 0;
   sendevent /dev/input/event8 0 0 0;
   sendevent /dev/input/event8 1 330 1
   sendevent /dev/input/event8 0 0 0;
   sendevent /dev/input/event8 1 330 0;
   sendevent /dev/input/event8 0 0 0"


adb shell input keyevent

After entering adb shell environment, you can use "input keyevent" to simulate button clicks.

0 -->  "KEYCODE_UNKNOWN"
1 -->  "KEYCODE_MENU"
2 -->  "KEYCODE_SOFT_RIGHT"
3 -->  "KEYCODE_HOME"
4 -->  "KEYCODE_BACK"
5 -->  "KEYCODE_CALL"
6 -->  "KEYCODE_ENDCALL"
7 -->  "KEYCODE_0"
8 -->  "KEYCODE_1"
9 -->  "KEYCODE_2"
10 -->  "KEYCODE_3"
11 -->  "KEYCODE_4"
12 -->  "KEYCODE_5"
13 -->  "KEYCODE_6"
14 -->  "KEYCODE_7"
15 -->  "KEYCODE_8"
16 -->  "KEYCODE_9"
17 -->  "KEYCODE_STAR"
18 -->  "KEYCODE_POUND"
19 -->  "KEYCODE_DPAD_UP"
20 -->  "KEYCODE_DPAD_DOWN"
21 -->  "KEYCODE_DPAD_LEFT"
22 -->  "KEYCODE_DPAD_RIGHT"
23 -->  "KEYCODE_DPAD_CENTER"
24 -->  "KEYCODE_VOLUME_UP"
25 -->  "KEYCODE_VOLUME_DOWN"
26 -->  "KEYCODE_POWER"
27 -->  "KEYCODE_CAMERA"
28 -->  "KEYCODE_CLEAR"
29 -->  "KEYCODE_A"
30 -->  "KEYCODE_B"
31 -->  "KEYCODE_C"
32 -->  "KEYCODE_D"
33 -->  "KEYCODE_E"
34 -->  "KEYCODE_F"
35 -->  "KEYCODE_G"
36 -->  "KEYCODE_H"
37 -->  "KEYCODE_I"
38 -->  "KEYCODE_J"
39 -->  "KEYCODE_K"
40 -->  "KEYCODE_L"
41 -->  "KEYCODE_M"
42 -->  "KEYCODE_N"
43 -->  "KEYCODE_O"
44 -->  "KEYCODE_P"
45 -->  "KEYCODE_Q"
46 -->  "KEYCODE_R"
47 -->  "KEYCODE_S"
48 -->  "KEYCODE_T"
49 -->  "KEYCODE_U"
50 -->  "KEYCODE_V"
51 -->  "KEYCODE_W"
52 -->  "KEYCODE_X"
53 -->  "KEYCODE_Y"
54 -->  "KEYCODE_Z"
55 -->  "KEYCODE_COMMA"
56 -->  "KEYCODE_PERIOD"
57 -->  "KEYCODE_ALT_LEFT"
58 -->  "KEYCODE_ALT_RIGHT"
59 -->  "KEYCODE_SHIFT_LEFT"
60 -->  "KEYCODE_SHIFT_RIGHT"
61 -->  "KEYCODE_TAB"
62 -->  "KEYCODE_SPACE"
63 -->  "KEYCODE_SYM"
64 -->  "KEYCODE_EXPLORER"
65 -->  "KEYCODE_ENVELOPE"
66 -->  "KEYCODE_ENTER"
67 -->  "KEYCODE_DEL"
68 -->  "KEYCODE_GRAVE"
69 -->  "KEYCODE_MINUS"
70 -->  "KEYCODE_EQUALS"
71 -->  "KEYCODE_LEFT_BRACKET"
72 -->  "KEYCODE_RIGHT_BRACKET"
73 -->  "KEYCODE_BACKSLASH"
74 -->  "KEYCODE_SEMICOLON"
75 -->  "KEYCODE_APOSTROPHE"
76 -->  "KEYCODE_SLASH"
77 -->  "KEYCODE_AT"
78 -->  "KEYCODE_NUM"
79 -->  "KEYCODE_HEADSETHOOK"
80 -->  "KEYCODE_FOCUS"
81 -->  "KEYCODE_PLUS"
82 -->  "KEYCODE_MENU"
83 -->  "KEYCODE_NOTIFICATION"
84 -->  "KEYCODE_SEARCH"
85 -->  "TAG_LAST_KEYCODE"

Friday, June 8, 2012

adb shell quit app


You can use adb shell kill to kill the process, but first you need to find the process id. To do this you can use adb shell ps and parse the output. Here is a sample (assuming your development PC is Unix):
adb shell kill $(adb shell ps | grep YOUR.PACKAGE.NAME | awk '{ print $2 }')

Wednesday, June 6, 2012