Android release notes

Android release notes

Wednesday, October 29, 2014 - 14:45 Download

Fixes

  • 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.
Wednesday, October 22, 2014 - 15:05 Download

Fixes

  • 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.
Wednesday, October 8, 2014 - 00:01 Download

Improvements

  • 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.

Fixes

  • 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.
Friday, August 22, 2014 - 17:45 Download

Improvements

  • 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.

Thursday, July 24, 2014 - 00:01 Download

Improvements

  • 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 setInteractionName().

  • 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.

  • New @SkipTrace annotation 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.

Thursday, June 12, 2014 - 00:01 Download

Notes

Improvements

  • API methods now check for bad values and throw IllegalArgumentException

    Previously, our API methods would silently discard bad data without recording errors or metrics. We've changed this behavior to be more informative by throwing an exception when bad arguments are passed.

Fixes

  • Android Gradle plugin 0.10 compatibility

    Version 0.10.0 of the plugin introduced a subtle change that caused errors during build time that would produce ClassCastException errors at runtime. We’ve fixed this issue and verified we're also compatible with 0.11.

    • Improved thread safety in the API

    Some API methods exhibited race conditions under heavy utilization. These race conditions are now solved.

    • Summary metrics occasionally exhibited bad values

    You may have noticed strange numbers in your application overview chart. We've isolated the cause of these numbers and fixed the underlying issue in the agent.

Thursday, May 15, 2014 - 21:39 Download

Improvements

  • CPU vitals in Interaction traces.

    We've added CPU vitals in interaction traces. You'll now be able to see your application's usage of the device's CPU(s) as a percentage of the total CPU time.

Fixes

  • Restore compatibility for building with Java 7u55 and support Java 8.

    Java 7u55 introduced a slight change that broke our build process. We've corrected this issue and added support for Java 8.

  • Applications without version numbers crashed the agent.

    Strangely, it's possible to build an Android application without a version number defined in the manifest. We now detect this case and shut down the agent cleanly with an error message indicating we require a version number.

  • Encode custom Http(s) error response bodies.

    Http(s) error response bodies are normally encoded to ease escaping. However, errors reported via the API were not encoded. We've fixed this so all errors should appear properly in the UI.

Monday, April 7, 2014 - 17:21 Download

Improvements

  • Better auto-naming support for Fragments.

    Previously, separating fragments from the calling Activity required renaming the running interaction. Now, Fragments have first class treatment and will show up alongside Activities.

  • OkHttp instrumentation.

    If you're using Square’s OkHttp library, you'll now see your HTTP transactions automatically appear on RPM. There’s no longer any need to use the agent API to track these transactions.

Fixes

  • Clear all metric caches after a failed harvest cycle.

    In rare cases where the agent is unable to connect to New Relic's servers, some metric caches persisted and caused unusually large metric numbers. Now, all these caches are cleared at the end of the cycle to prevent compounding aggregation.

  • Improved inflight interaction naming.

    There are some cases in which renaming a running interaction did not fully rename the metric scope. This fix ensures all aspects of the interaction bear the new name.

  • Fixed an issue in Proguard bytecode handling.

    While compiling Android apps with Proguard's optimizations turned on is discouraged, the agent does its best to support such optimizations. However, we mishandled one such case and have fixed it in this release.

Tuesday, March 11, 2014 - 23:51 Download

Fixes

  • Ensure interactions complete when an app leaves the foreground.

    Previously, it was possible for an interaction to persist across application foreground/background lifecycles if a trace segment was still in flight. This resulted in interaction traces extending past the default 60-second limit. Now, interactions are stopped when the app leaves the foreground regardless of segment states.

  • Machine metrics continue generation upon app restore.

    Machine metrics now continue to generate after an app has been in the background and enters the foreground. Previously, they were only generated from launch until the app entered the background.

  • Improve BitmapFactory instrumentation scoping.

    BitmapFactory’s static method instrumentation is now scoped to more tightly to its package and class to prevent instrumentation of similar but unrelated method signatures.

  • Added more instrumentation to summary metrics.

    Now all instrumented methods are included in summarized category metrics including those only present in background threads.

  • Added missing methods to HttpsUrlConnection instrumentation.

    Several missing proxy methods have been added to our HttpsUrlConnection shim. This restores the ability to override default HTTPS behavior.

Wednesday, February 26, 2014 - 21:29 Download

Improvements

  • New API methods for adding cross application tracing headers to noticeHttpTransaction().

    In case the New Relic agent doesn't support the HTTP API you're using, you can manually submit a transaction via the noticeHttpTransaction() method. With this release, this method now allows you to set the NR cross application tracing header for tracking purposes.

Fixes

  • Fixed a rare build crash where newly constructed objects go unused and are later optimized down by ProGuard.
Thursday, January 16, 2014 - 21:58 Download

Improvements

  • New API method for configuring logging verbosity.

    You can now choose how verbose the agent will be at boot by chaining withLogLevel() before your NewRelic start() call. The default level is INFO.

  • New API method for renaming inflight interactions.

    Call NewRelic.setInteractionName() at the beginning of your onCreate() method to set a custom name for your interaction. This usually defaults to the name of the Activity subclass.

  • Method tracing optimizations.

    We’ve carefully reviewed the code involved in tracing instrumented methods and reduced its CPU and memory overhead substantially.

Tuesday, December 17, 2013 - 00:37 Download

Fixes

  • Call checkcast before invoking NR instrumentation.

    This fixes an issue where the Dalvik VM refuses to load a class with our instrumentation in cases where the inbound object is not the expected type as determined by static code analysis.

  • Don't attempt to instrument constructors in subclasses of classes we normally instrument.

    While we support instrumenting constructors by replacing the call to , we don't support doing this in subclasses. For now, we ignore these cases but may return to adding inline instrumentation to constructors in the future.

  • Java 7u60 (pre-release) refactored the class in which we were storing our invocation dispatcher.

    We've future proofed the agent by storing the dispatcher in another core class.

Sunday, December 1, 2013 - 13:37 Download

Improvements

  • End to end instrumentation for your mobile applications.

  • Automatic instrumentation of important system objects and methods.

  • Customizability to allow for instrumentation of your most important objects and methods.

For a complete breakdown of new features visit: New Relic For Mobile Apps v2

Thursday, November 21, 2013 - 23:40 Download

Fixes

  • Fixed rare bug in Eclipse where all projects are built with New Relic regardless of agent jar presence.
Wednesday, September 25, 2013 - 17:00 Download

Improvements

  • Added support for ProGuard with Ant builds.
  • Clarified naming of unknown carriers on Android
Wednesday, September 11, 2013 - 15:00 Download

Improvements

  • Added support for ProGuard with Ant builds. *Note: Version 2.426.0 of the Android agent already works with ProGuard and other build systems (Gradle, Maven, and Eclipse).
Thursday, June 27, 2013 - 17:29 Download

Improvements

  • The agent now detects if the app was instrumented properly and displays an error message if otherwise.
  • The Eclipse plugin now refreshes your project after installing/updating New Relic.
  • Improved post installation messaging in Eclipse.

Fixes

  • Fixes an issue in Eclipse on Windows where Eclipse is installed in a location with a space in the path.
  • Repackaged the agent with JarJar to prevent class space collisions.
  • Fixes an issue where a re-used HttpRequest object would have multiple X-NewRelic-ID headers added.
Friday, June 7, 2013 - 17:25

Gradle and Android Studio support

  • Now you can add New Relic to your Gradle builds
  • Android Studio support via Gradle/Maven
Friday, May 31, 2013 - 17:23 Download

New Install Process

  • Eclipse plugin support
  • Maven Sonatype repository
  • Simplified Ant installation

Eclipse

  • Install via Eclipse plugin or Eclipse Marketplace
  • Debug in Eclipse with New Relic

Maven

  • Reference New Relic in pom.xml

Updated Agent API

Wednesday, May 8, 2013 - 17:46 Download

Notes

New Relic for Android is now compatible with Android 2.2 (API Level 8)

  • Fixes a scenario where the New Relic SDK could cause Android apps to crash when running on Android 2.2
  • Fully supports network activity instrumentation and reporting on Android 2.2

Pages