- Deno v1.9.2+ (std v0.60.0)
- Yota v0.0.1
- VirtualXposed (if you'd like to use dx on physical device), or Xposed (if emulator)
- Install Deno: dx is tested on Deno v1.9.2 with std v0.60.0
- Download and install Yota
- Install VirtualXposed if you'd like to use dx on a physical device, or Xposed if you'd like to use it on an emulator (must be a rooted emulator, see here)
- Install dx's recmod (Virtual)Xposed module to the phone by issuing
$ cd dxrec && ./gradlew assembleDebug && adb install -r app/build/outputs/apk/debug/app-debug.apk && cd ..
- Activate the recmod from (Virtual)Xposed's module list
- Put the package name of the app you'd like to record and replay into
dxrec.config.json
'swhitelist
field - Push the config file (
dxrec.config.json
) to the phone by issuing$ adb shell mkdir -p /data/local/tmp/directorx && adb shell push dxrec.config.json /data/local/tmp/directorx/
- Start recording and replaying
The record module will record a sequence of user actions in to a .dxpk
file that is defined by dx.
$ ./dx rec --help
Usage: rec <app>
Version: v0.2.1
Description:
Record as a dxpk
Options:
-h, --help - Show this help.
-s, --serial <type:string> - serial no
-o, --output <type:string> - output dxpk (Default: out.dxpk)
-v, --verbose - output verbose information
-L, --lhook <type:string> - path of the lifecycle hook used
-G, --mylog <type:string> - path of the custom logger
The replay module will replay a user sequence recorded in a .dxpk
.
$ ./dx play --help
Usage: play <dxpk>
Version: v0.2.1
Description:
Replay an dxpk
Options:
-h, --help - Show this help.
-s, --serial <type:string> - serial no
-p, --player <type:string> - which player to use, one of [px, pt, wdg, res] (Default: px)
-K, --lookahead <type:number> - Look ahead constant (Default: 1)
-H, --nohide - do not automatically hide soft keyboard before firing each event
-L, --lhook <type:string> - path of the lifecycle hook used
-P, --plugin <type:string> - path of the plugin used
-U, --uinorm <type:string> - path of the ui normalizer used
-S, --segnorm <type:string> - path of the segment normalizer used
-M, --matcher <type:string> - path of the segment matcher used
-R, --recogn <type:string> - path of the pattern recognizer used
-G, --mylog <type:string> - path of the custom logger
-t, --topleft - input at topleft instead of center of a view
-v, --verbose - output verbose information