• Home
  • History
  • Annotate
Name
Date
Size
#Lines
LOC

..--

src/com/android/commands/monkey/22-Nov-2023-6,2484,040

Android.mkD22-Nov-2023423 159

MODULE_LICENSE_APACHE2D22-Nov-20230

NOTICED22-Nov-202310.4 KiB191158

README.NETWORK.txtD22-Nov-20234.1 KiB13090

example_script.txtD22-Nov-2023731 5849

monkeyD22-Nov-2023217 97

README.NETWORK.txt

1 SIMPLE PROTOCOL FOR AUTOMATED NETWORK CONTROL
2 
3 The Simple Protocol for Automated Network Control was designed to be a
4 low-level way to programmability inject KeyEvents and MotionEvents
5 into the input system.  The idea is that a process will run on a host
6 computer that will support higher-level operations (like conditionals,
7 etc.) and will talk (via TCP over ADB) to the device in Simple
8 Protocol for Automated Network Control.  For security reasons, the
9 Monkey only binds to localhost, so you will need to use adb to setup
10 port forwarding to actually talk to the device.
11 
12 INITIAL SETUP
13 
14 Setup port forwarding from a local port on your machine to a port on
15 the device:
16 
17 $ adb forward tcp:1080 tcp:1080
18 
19 Start the monkey server
20 
21 $ adb shell monkey --port 1080
22 
23 Now you're ready to run commands
24 
25 COMMAND LIST
26 
27 Individual commands are separated by newlines.  The Monkey will
28 respond to every command with a line starting with OK for commands
29 that executed without a problem, or a line starting with ERROR for
30 commands that had problems being run.  For commands that return a
31 value, that value is returned on the same line as the OK or ERROR
32 response.  The value is everything after (but not include) the colon
33 on that line.  For ERROR values, this could be a message indicating
34 what happened.  A possible example:
35 
36 key down menu
37 OK
38 touch monkey
39 ERROR: monkey not a number
40 getvar sdk
41 OK: donut
42 getvar foo
43 ERROR: no such var
44 
45 The complete list of commands follows:
46 
47 key [down|up] keycode
48 
49 This command injects KeyEvent's into the input system.  The keycode
50 parameter refers to the KEYCODE list in the KeyEvent class
51 (http://developer.android.com/reference/android/view/KeyEvent.html).
52 The format of that parameter is quite flexible.  Using the menu key as
53 an example, it can be 82 (the integer value of the keycode),
54 KEYCODE_MENU (the name of the keycode), or just menu (and the Monkey
55 will add the KEYCODE part).  Do note that this last part doesn't work
56 for things like KEYCODE_1 for obvious reasons.
57 
58 Note that sending a full button press requires sending both the down
59 and the up event for that key
60 
61 touch [down|up|move] x y
62 
63 This command injects a MotionEvent into the input system that
64 simulates a user touching the touchscreen (or a pointer event).  x and
65 y specify coordinates on the display (0 0 being the upper left) for
66 the touch event to happen.  Just like key events, touch events at a
67 single location require both a down and an up.  To simulate dragging,
68 send a "touch down", then a series of "touch move" events (to simulate
69 the drag), followed by a "touch up" at the final location.
70 
71 trackball dx dy
72 
73 This command injects a MotionEvent into the input system that
74 simulates a user using the trackball. dx and dy indicates the amount
75 of change in the trackball location (as opposed to exact coordinates
76 that the touch events use)
77 
78 flip [open|close]
79 
80 This simulates the opening or closing the keyboard (like on dream).
81 
82 wake
83 
84 This command will wake the device up from sleep and allow user input.
85 
86 tap x y
87 The tap command is a shortcut for the touch command.  It will
88 automatically send both the up and the down event.
89 
90 press keycode
91 
92 The press command is a shortcut for the key command.  The keycode
93 paramter works just like the key command and will automatically send
94 both the up and the down event.
95 
96 type string
97 
98 This command will simulate a user typing the given string on the
99 keyboard by generating the proper KeyEvents.
100 
101 listvar
102 
103 This command lists all the vars that the monkey knows about.  They are
104 returned as a whitespace separated list.
105 
106 getvar varname
107 
108 This command returns the value of the given var.  listvar can be used
109 to find out what vars are supported.
110 
111 quit
112 
113 Fully quit the monkey and accept no new sessions.
114 
115 done
116 
117 Close the current session and allow a new session to connect
118 
119 OTHER NOTES
120 
121 There are some convenience features added to allow running without
122 needing a host process.
123 
124 Lines starting with a # character are considered comments.  The Monkey
125 eats them and returns no indication that it did anything (no ERROR and
126 no OK).
127 
128 You can put the Monkey to sleep by using the "sleep" command with a
129 single argument, how many ms to sleep.
130