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

Wednesday, May 30, 2012

Convert bytes array to string

String str = new String(byte[] byteArray);

Full explanation to build apk and install it on android device using command line

1. make sure JDK is installed instead of JRE, and JAVA_HOME variable is pointing to JDK installation path

2. make sure you have ant and android sdks installed, and there is android.bat inside android sdks

3. go to the android project directory

4. under this directory, use command: /path/to/android.bat/android.bat update project -p /path/to/project folder/       =======> this will create build.xml for building apk file

5. use this command: /path/to/ant directory/bin/ant debug      ========> this will generate debug version apk

6. now you have an apk file ready for installation, use this command first: adb devices to test if a device is connected

7. after making sure you have a valid device connected, use this command: adb -d install path/to/your/app.apk     ========> this will install the apk to your android device

8. after installing the app, we want to open the app, use this command: adb shell am start -n com.zhoubo/.AppName  note: com.zhoubo represents the app source   ==========> this will open the app named AppName from source com.zhoubo