Replay - Limitations
Most of the standard Android UI components can be recorded. Some of the known exceptions include the following components:
Generally, UI components that cannot be captured appear as blank areas in the replay.
In addition to the components listed above, there are some other aspects of a user’s session that cannot be captured on Android. These include:
- Dialogs, e.g., AlertDialogs
- Toast messages
- On screen keyboard
- Actionbar menus
Touches on all standard Android widgets are captured automatically by adding an ‘onTouchListener’ for each touch-enabled view. If the client is using custom views in their app which do not respond in the same way as standard Android widgets, the touch capture system may not gather touches from the view, or it may interfere with the operation by preventing them from receiving touches correctly.
ForeSee has included a number of options to work around these issues as part of the SDK. For details on implementation, please refer to the Common Errors section.
Pauses in capture
To improve performance, Replay will not make captures during user interactions. Pauses in a replay happen during:
- Scrolling of any view
- User touches or drags
- Device rotations
Views that cannot be captured
Due to the limitations of the OS, there are some views that it is not possible to capture. These are generally modal views such as:
- The Keyboard
- AlertDialogs (including web alerts)
- Picker contents (including web pickers)
All session data (screen captures, as well as meta-data) are stored on the device until transmission occurs. The SDK imposes limits to the amount of space this data may occupy. The SDK begins purging sessions when the session data exceeds 80Mb or 50% of the free space on the device. Sessions are purged based on age. Middle-aged sessions are purged first and the oldest and newest are preferentially saved. The first session is never purged.
When transmitting sessions, if the user is on a mobile data network, the amount of data that can be transmitted is capped at 20Mb. If the transmission cap is reached, transmission can still continue, but only occurs when the user is connected via WiFi. On WiFi, the SDK does not enforce any caps on transmission.