Your data. Anywhere you go.

New Relic for iOS or Android


Download on the App Store    Android App on Google play


New Relic Insights App for iOS


Download on the App Store


Learn more

Close icon

Relic Solution: Why do I only see one interaction?

android

#1

Where are my interactions?

After you’ve added the New Relic Android agent to your app, you’ll see data on app launches and HTTP requests. We love seeing that data roll in.

Depending on how your project is structured, you might only see the FragmentActivity or BaseFragment listed in your interactions. But, your app likely has multiple activities and/or fragments and these are all interactions just waiting to be traced. We’re here to help.

Why is this happening?

When super.onCreate() calls are made from subclasses, the interaction is named after the superclass. The superclass is called before the subclass, therefore the agent pulls the interaction name from the class which was executed first. While we’re always working to improve our agent, sometimes setting interaction names is required to split subclasses out.

Ok, but what are these “o” and “p” interactions?

Ah, I bet you are obfuscating your project with Proguard or Dexguard.

In the process of shrinking and obfuscating your code to be as small as possible, unused code instructions are removed and classes, fields, and methods are replaced by a few unique letters. So, your SuperImportantForAllTheStuff class can become simply s.

Keep 'em separated

Activities can be tracked into individual interactions by using the set custom interaction name method from the New Relic Mobile Agent SDK API. This is also an opportunity to assign interaction names more useful than its class name. Calling setInteractionName(); in the onCreate() method of each activity and fragment will assign unique names and give a greater look into individual interactions, like so.

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        NewRelic.setInteractionName(this.getClass().getSimpleName());
    }

Hope this helps in splitting out activities. Please refer to our Android SDK API documentation for more information.


Relic Solution: Android initialization and deep linking
#2

#3

Nice write up Nathan!