- This release adds instrumentation for versions 2.1+ of Square's OkHttp library. 1.x versions continue to be supported.
- This release also adds support for the Retrofit (1.8+) and Picasso (2.4+) libraries from Square.
- With this release, the Android SDK will require a minimum version of Android 2.3. Apps requiring Android 2.2 can still use the legacy version of the New Relic Mobile Android SDK, 4.244.0 (instructions here). The legacy version will only receive critical updates if necessary.
- Please note that versions 2.x of the OkHttp library require Android 2.3+ and Java 7. (see https://github.com/square/okhttp/blob/master/CHANGELOG.md#version-200)
- A custom application version can now be set using the new method
- Added the method
NewRelic.recordMetric(String name, String category)to allow recording a custom metric with just a name and category, the value defaulted to 1.
- This release supports Android 2.2+. Future releases will require 2.3+.
- Improved instrumentation of the OkHttp library v1.6 to include support for OkURLFactory
- This will be the last release of the Android SDK to support Android 2.2. Future versions will require 2.3+.
- Addresses an issue that may have caused an upgraded application to continue reporting the older version of the application to New Relic.
- Corrects a potential RuntimeException when the HEAD method was used in an HTTP request.
- Resolves an IllegalArgumentException that could have occurred in the edge case where the start or end time of an HTTP transaction was invalid.
- You can now disable the capture of the HTTP response body for requests by calling
- You can now disable crash reporting by calling
- The SDK was updated to accept the HTTP method in
NewRelic.noticeNetworkFailure()allowing more detailed information to be collected.
- Resolves an issue related to recording a URL that could have potentially resulted in a Null Pointer Exception.
- Resolves a crash in InputStream instrumentation when chunked transfer encoding is used.
- Custom interaction names, when specified, are now used in Crash interaction history trails.
- Corrects an issue where the agent may crash under certain concurrent access of instrumented InputStream implementations.
- Corrects an issue where a thread pool was not properly getting destroyed upon application background-to-foreground transitions.
- Crash Reporting
- This release introduces crash reporting for mobile apps. Crash reporting supports capture and reporting of unhandled Java runtime exceptions.
- Crashes include interaction trails: a history of automatically instrumented actions that occurred during the app session leading up to the crashing event. No breadcrumbs needed.
- The SDK includes a
NewRelic.crashNow()method to trigger a test crash quickly and easily.
- You can also disable crash reporting via the runtime API.
- When building an app with Proguard enabled, the Proguard mapping file is sent to New Relic to automatically provide human readable crash reports in the UI.
- Session improvements
- The SDK now more consistently records MobileSession events in Insights when users use various app switchers on Android 4.x.
- Improve reported traffic accuracy
- Corrects an issue where the SDK could continue to report an app as active when it had entered the background. This fix will reduce the traffic reported for an app to more accurately reflect actual usage.
- Improve thread naming accuracy
- Corrects an issue where the SDK reported some metrics with an incorrect display name. This fix will more accurately reflect thread breakdown data in interactions.
New Gradle Plugin
We've rewritten the New Relic Gradle plugin from the ground up to impose a smaller footprint on your build and improve compatibility with the new Gradle Daemon.
Naming changes to Interaction Traces
We've changed the naming scheme for Interaction Traces to be more clear. Instead of "ActivityClass#onCreate", you'll see "Display ActivityClass". If you want to change the name of a running Interaction, just call
New API methods for starting and stopping Interaction Traces
We've added two new methods to the NewRelic class API to give you greater control over starting and stopping Interaction Traces. The
startInteraction()method now just takes a string, no context needed. Use
endInteraction()to stop a running interaction.
@SkipTraceannotation to exclude methods from default instrumentation
While automatic instrumentation is one of the more convenient features of the agent, there are a few cases where it can get in the way. Should you encounter one of these cases, simply add this annotation to the method in question, and the agent will skip it during compile time instrumentation.