RERAN is capable of time-warping portions of a recording to make the replay slower or faster. Time-warping can be used for numerous reasons. For example, in debugging, developers can fast-forward through a trace to track down the bug in less time than the original recording. In our current implementation, time-warping can occur at two different times during the replay, (a) during data entry and (b) during long pauses.
Data-entry on smartphones occurs via the virtual or physical keyboard. Even at our fastest, human typing has a lot of room for improvement. In our experiments we used this opportunity to speed up the data-entry by making short time intervals even shorter. In many apps, there are long pauses of idle time when the user is reading the content on the screen or thinking about where to navigate to next. In our experiements, we used this opportunity to create a maximum wait time limit. If the time interval between events is longer than our maximum time limit, we cut the time interval down to our max.
The time-warping feature of RERAN can be used by specifying the time values of when to time warp, i.e., during data entry and long pauses. The values are specified as parameters into the Translate program. The flag "-t" is reserved for the time-warping values to be used. Four values need to be given in the form "MIN,LOW,NEW,MAX" (without quotes) on the command line afer the "-t" flag. All the time interval values are to be given in seconds.
MIN - is the minimum value of data-entry (any interval less than this value will run normally, usually gestures)
LOW - is the upper range value detecting data entry
NEW - is the new value to replace the time interval captured in the range above (between MIN and LOW)
MAX - is the maximum value to wait before cutting off the time interval and continuing
for all intervals if(MIN < interval < LOW) => change interval to NEW else if(interval > MAX) => change interval to MAX otherwise => leave interval unchanged (gestures and intervals under MAX)
for all intervals if(.09sec < interval < .7sec) => change interval to .001sec else if(interval > 3sec) => change interval to 3sec otherwise => leave interval unchanged (gestures and intervals under 3sec)
Specify the above example values to the Translate program:
java -jar translate.jar recordedEvents.txt translatedEvents.txt -t .09,.7,.001,3
For questions or feedback:
androidreran (at) gmail (dot) com