RERAN uses the events captured from the event stream during recording. We do not record state or API calls made by the underlying virtual machine. This trade-off allows for easier usage of recording and replaying, with less overhead for the developer or researcher. However, the trade-off has its disadvantages, for example, we can not currently replay apps that use random number generators or have random popup windows that did not occur in the original recording. RERAN will replay the exact input events that the user recorded in the original run, and so when randomnesss is introduced, replaying the original recording is no longer valid. Please see the paper for more details.
In addition, RERAN cannot currently replay apps that use system-protected sensors like the camera and GPS. These input devices are not handled in the same way as other input devices like the touchscreen or accelerometer. For example, in order to use the camera and GPS, the app must first have the system permission and then must call special system API's to retrieve the input data. These protected sensors are not accessible by the getevent tool.
We make no guarantees that the replay will always work 100% of the time. Aside from the above limitations, due to the 1% overhead from sending the events programatically, there may be some gestures that become muddled, i.e., do not hold true to the original recording. The longer the recording, the greater the chance of mistakes. In our testing, these types of problems were infrequent, although, we usually ran sessions under 10 minutes long.
For questions or feedback:
androidreran (at) gmail (dot) com