Each string command from the network needs to be parsed, but some are executed directly in the parsing process, while others need to create the corresponding event class instance after parsing and add it to the command queue for execution. This part of the job is to command the translation class. So we're going to go down here. What is the Monkeycommand class in the Monkeysourcenetwork category:
Figure 6-3-1 Monkeycommand Genealogy
The Monkeycommand in the middle of the diagram is an interface that defines the Translatecommand method, which is a string command, a list of parameters, and a command queue that all implementation classes must implement to parse the command string:
- If the command string needs to establish a corresponding monkeyevent instance, the command string is translated into the corresponding Monkeyevent instance and added to the incoming command queue
- If the command string does not need to establish the corresponding Monkeyevent instance, then parse the command string directly and then return
command string format |
command Translation class |
MR support |
comments |
Touch down X Y |
Touchcommand |
Is |
x Representative x coordinates, y Representative y coordinates |
Touch Up X Y |
Touchcommand |
Is |
Ditto |
Touch Move x Y |
Touchcommand |
Is |
Ditto |
Tap x Y |
Tapcommand |
Is |
Ditto |
Press Name |
Presscommand |
Is |
Name represents a key name, such as "Menu", "HOME", "SEARCH" wait |
Key down Name |
Keycommand |
Is |
Ditto |
Key up Name |
Keycommand |
Is |
Ditto |
GetVar Name |
Getvarcommand |
Is |
name represents a property name |
Listvar |
Listviewscommand |
Is |
|
Type line |
Typecommand |
Is |
Line represents the input string |
Wake |
Wakecommand |
Is |
|
ListViews |
Listviewscommand |
Is |
|
QueryView |
Queryviewcommand |
Is |
|
Getrootview |
Getrootviewcommand |
Is |
|
Getviewwithtext |
Getviewswithtextcommand |
Is |
|
Done |
N/A |
Is |
test Complete, Monkey will stop when the command is received Socket Monitor |
Quit |
N/A |
Is |
test request exits, Monkey will not stop when received Socket Monitoring, |
Flip Open |
Monkeyflipevent |
Whether |
Monkeyrunner sending these two commands is not supported |
Flip Close |
Monkeyflipevent |
Whether |
Trackball DX dy |
|
Whether |
|
Deferredreturn |
Deferreturncommand |
Whether |
This command is more special, and the thing to do is to wait for one command to complete and then execute another command. However , there is no support in the Monkeyrunner framework. |
Note : MR Representative Monkeyrunner |
Table 6-3-1 command string and corresponding command translation class reference table
All the classes in Monkeycommand are actually internal classes, such as command translation classes related to network commands, or subclasses of Monkeysourcenetwork, or subclasses of Monkeysourcenetworkvars, Otherwise it is Monkeysourcenetworkviews's subclass:
Figure 6-3-2 Command translation class as the inner class of the event source
Once the event source gets to the string command it is convenient to call the internal command translation class through Command_map to translate the command, so we can also think that the event source relies on the corresponding command translation class to do things:
Figure 6-3-3 Event source Dependent command translation class
In the next section we go through an example to see how the event translation class translates the string commands sent by Monkeyrunner and translates them into event instances.
Note: More articles please pay attention to the public number: Techgogogo or personal blog http://techgogogo.com. Of course, you are also very welcome to pick up directly (ZHUBAITIAN1). This article by Heaven Zhuhai Branch Rudder original. Reproduced please consciously, whether the complaint rights to look at the mood.
6th Chapter 3 "Monkeyrunner Source Analysis" Monkey principle-Event Source-Event Source Overview-command translation class