Selective Replay Replay with user specified input devices

All Android phones are not created equal. Android phones have many different manufacturers, e.g., Motorola, HTC, Samsung, and many different models within each manufacturer, e.g., Galaxy series. Each model has its own capbabilities, e.g., touchscreen, accelerometer, physical keyboard. For each phone, the mapping of hardware input devices to software event devices is different. RERAN uses this mapping to send the individual events captured in the recording back into the software event devices. The mapping, in turn, allows RERAN to ignore certain event devices during replay.

Ignoring certain event devices can be beneficial during testing. For example, developers can isolate bugs in their app if it will also create less overhead by ignoring event devices that are constantly reporting data, e.g., the light sensor, and are not vital to the app's functionality.

Event Mapping

The phone's hardware to software device mapping can be viewed using the getevent tool in the Android SDK.

  ./adb shell getevent

The first set of output displays the mapping of the hardware input devices of the phone. An example output is below:

  add device 1: /dev/input/event7
    name:     "sensors"
  add device 2: /dev/input/event6
    name:     "lm3530_led"
  add device 3: /dev/input/event5
    name:     "proximity"
  add device 4: /dev/input/event4
    name:     "sholes-keypad"
  add device 5: /dev/input/event3
    name:     "qtouch-touchscreen"
  add device 6: /dev/input/event2
    name:     "cpcap-key"
  add device 7: /dev/input/event1
    name:     "accelerometer"
  add device 8: /dev/input/event0
    name:     "compass"

The above phone has 8 input devices listed. Usually, the devices are obvious, e.g., qtouch-touchscreen is the touchscreen, but not always e.g., lm3530_led is the light sensor. Each phone will have its own mapping and may have different devices and device ordering.

Using Selective Replay

Selective replay can be used by providing the event number mapping you want to keep during the replay. For example, below we use the "-e" flag of the Translate program to specify the events we want to keep in the above phone, namely, 2,3,4,5,6,8. This will ignore events 1 and 7, the "sensors" device and the "accelerometer" device, respectively. The ignored events will not be replayed.

  java -jar translate.jar recordedEvents.txt translatedEvents.txt -e 2,3,4,5,6,8

Download RERAN
Number of Downloads: 12416
Contains the Replay cross-compiled executable
and the Translate jar file. See Software for usage. No compile needed.

Download Paper
ICSE 2013

For questions or feedback:
androidreran (at) gmail (dot) com