Android SDK - Frequently Asked Questions

On this page you will find some of the questions we are most frequently asked by new and prospective clients. Please look at the answers below before contacting suport as it is more than likely your question has already been answered here.

The SDK

How big is the SDK?
The sizes of the raw SDKs are as follows, although these numbers decrease significantly once implemented within an app. Unfortunately this reduction is difficult to pinpoint on Android since it would depend on your use of proguard and other techniques to remove unwanted methods. The base size of the SDK on disk is approximately 1MB.

What’s the method count of the SDK?
The Android SDK has a method count of 4725. To keep this count low, we require that you reference a small number of dependencies.

How does the survey adapt for Tablet and Phone?
The survey is an adaptive webview that fits to both tablet and phone, adjusting controls to fit. The size of the invitation also adjusts to be a good fit for the screen size while still remaining unobtrusive. Screenshots can be provided for both tablet and phone on request.

Are there some test credentials to use to see an example survey?
Yes, please use the folowing credentials in your configuration file:

clientId: FSRTESTINGCODECID12345==
surveyId: android_app_QA

On-device Data Storage

How long will the videos of user activity be persisted on the device before being transmitted to ForeSee?
Videos are stored until the user receives an invitation. If the user accepts, the videos are sent to ForeSee when the user quits the app, or the next time the user opens the app and is online. If the user declines the invite, the videos are deleted.

What information is cached on the devices?
There is nothing stored on the device apart from the replay data and the counts for eligibility criteria (days since first launch, launch count, significant events)

Is the survey information directly posted onto Foresee’s site after users have taken the survey or is it temporarily persisted on the mobile device?
Surveys are presented as a web page which submits the information to ForeSee as soon as it is completed. The survey data is never stored on the device.

What happens to Replay session data if the app crashes?
If the app crashes, the data for that session is still available. The session will be stored on the device until the user accepts an invite (when it is transmitted), declines an invite (when it is deleted), or when session data approaches the storage limit and it is selected for deletion.

Security

Are survey results secure? What kind of transmission method and encryption is used?
The survey information is sent over a secure channel using an HTTPS connection. The connection uses 128-bit encryption under the TLS 1.2 protocol and is encrypted using AES_128_CBC, with SHA1 for message authentication and RSA as the key exchange mechanism.

Performance

How are CPU and memory usage affected by the SDK?
The SDK will have an impact on CPU and memory usage, although the user experience is not affected. We perform as much work as possible on background threads and only take captures in the brief periods when the user is not interacting with the app. This restricts use of the main thread to preserve a smooth user experience. Memory use is of course increased, with natural spikes during captures, but persistent increases in memory use are limited, with the main increase associated with the storage of a single screenshot downsampled by 2x, which uses 1/4 the memory of a screen-sized bitmap.

Compatibility

What versions of Android are supported by the ForeSee SDK?
We support Android 4.0 and up.

Note: if you are using Replay in a security-sensitive app that contains webViews, you should consider limiting the compatibility of your app to Android 4.2 and above since the Replay product uses parts of the Android API which could be exploited via unrestricted webViews. From Veracode’s guidelines:

“Use of the android.webkit.WebView.addJavascriptInterface() method before Android SDK revision 17 (Android 4.2) is dangerous, as this allows remote attackers to execute arbitrary methods of Java objects (using the inherited .getClass()) within JavaScript code that is loaded into the WebView.”

Please get in contact if you’d like more information on this.

Do you support cross platform development languages like Titanium or PhoneGap?
Sorry, we don’t officially support these languages, although we have had clients who have had some success. We would be happy to work with you to provide workarounds to problems you encounter, or offer a more limited functionality to ensure a smooth implementation. Unfortunately, we cannot guarantee the same level of bug-free operation and level of support as with native implementations so you will need to run more extensive testing on your app to make sure it works in all situations before submitting to the play store.

Third party analytics services

Can I integrate the ForeSee SDK with my third party analytics package or vice versa?
ForeSee has the ability to interact with a number of third-party analytics services to provide integrations and data sharing between those services and our SDK. The following services are currently supported:

  • Adobe Omniture
  • Web Trends
  • Google Analytics

Note: It may also be possible to add other integrations if the required data is available from within your app code.

Of the above, support for Omniture is the most advanced; we have a fully developed API which allows seamless integration with the Omniture service, allowing our data (satisfaction scores and survey responses) to be viewed in Omniture and vice versa.

Implementation usually requires very little configuration on your part, although the complexity of the implementation is dependent on the notification method you use within the ForeSee SDK. In-session or local notification methods are the simplest – we add a hidden link in our survey thank you page to send our data to your service once the survey is complete. The on-exit notification method requires a CPP to be passed containing whatever code your service requires to uniquely identify a session. From there, we handle the passing of our information to your analytics service.

Disabling the SDK

Is there a way to stop the SDK showing anything at all?
Yes. You can ask us to set the sampling percentage to zero. This will mean that no invites will be shown, and therefore no surveys.

Is there a way to disable Replay?
Yes. There is a system called a blacklist check which we use to disable Replay on its own. The Trigger portion of the SDK will still function, so invitations will be shown and surveys completed, but no replay data will be collected. This can help us deal with unexpected compatibility issues between your app and our SDK, or the SDK and the OS. We can disable replay for an OS (iOS 8.1 for example), for a single version of our SDK, or for a range of either of these. If you experience a problem with a particular OS or SDK version, simply let us know and we will update your blacklist.

Other articles in this section:

  1. SDK Overview
  2. Quick Start
  3. Configuration
  4. Trigger
  5. Replay
  6. Proguard
  7. Frequently Asked Questions (current article)
  8. Troubleshooting