Skip to main content
Availability2022.1 or later

Activity and View Navigation

Automatic screen navigation tracking

Naming Guidelines

Stable screen naming conventions

Android Lifecycle Considerations

Recreation effects on counts

Troubleshooting

Fix missing screen tracking

Configure Fragment and View Monitoring for an Android Application

Overview

The GermainUX Mobile App library can automatically monitor navigation between supported Android activities and the loading of supported fragments. This provides visibility into:
  • Screens and fragments used
  • Navigation paths
  • View and fragment load duration
  • Time spent in application areas
  • Errors associated with a screen
  • Business-process steps
  • Performance by application version, Android version, or device
The available telemetry depends on the Android UI framework, lifecycle implementation, and installed GermainUX library version.

Activity and View Navigation

View-navigation monitoring is enabled automatically for supported activities that participate in the standard Android activity lifecycle, including supported activities based on AppCompatActivity. GermainUX can use this lifecycle information to measure navigation between application views. Common analysis includes:
  • Number of visits
  • Navigation duration
  • Previous and next view
  • Session context
  • Application version
  • Android version
  • Device model
  • Related transactions
  • Related errors and exceptions
No additional application code is normally required for supported activity navigation.

Fragment Monitoring

Fragment monitoring is enabled by default for supported AndroidX fragment implementations. GermainUX can capture configured fragment lifecycle and load-duration information for supported:
  • FragmentActivity
  • Fragment
  • AppCompatActivity applications using AndroidX fragments
Fragment visibility can be more complex than activity visibility. Multiple fragments may exist simultaneously, and a fragment can remain created while no longer being the primary content shown to the user. Interpret fragment telemetry according to the application’s navigation and lifecycle design.

Disable Fragment Monitoring

Disable automatic fragment monitoring when:
  • The application does not use fragments.
  • Fragment telemetry is unnecessary.
  • A custom navigation model produces misleading measurements.
  • Monitoring creates excessive low-value data.
  • The application uses another UI framework that requires custom instrumentation.
Set the configuration before initializing GermainUX.

Java

Kotlin

Disabling fragment monitoring does not disable the other configured Android monitoring capabilities.

Custom Views and Navigation Frameworks

Automatic monitoring depends on standard Android lifecycle callbacks. Additional instrumentation may be required for:
  • Custom view frameworks
  • Single-activity applications with non-fragment navigation
  • Views that change without an activity or fragment transition
  • Custom rendering engines
  • Jetpack Compose destinations
  • Business steps that do not correspond directly to a screen
Use GermainUX custom transactions or events to represent navigation and load performance not captured automatically. For example, a transaction can measure the time required to load a Compose destination or render a custom dashboard. A custom event can record that the user entered a specific workflow step.

Naming Guidelines

Use stable, meaningful screen and fragment names. Good names include:
  • Login
  • Customer Search
  • Customer Details
  • Order Review
  • Payment
  • Work Order
Avoid including:
  • User names
  • Email addresses
  • Record identifiers
  • Account numbers
  • Search terms
  • Timestamps
  • Other dynamic or sensitive values
Stable names allow GermainUX to aggregate performance and usage across sessions.

Business-Process Monitoring

Activities and fragments can represent steps within an application business process. For example: GermainUX can combine navigation data with transactions, events, errors, and sessions to analyze:
  • Process completion
  • Step duration
  • Repeated navigation
  • Unexpected paths
  • Abandonment
  • Process overrun
  • Lost productivity
A screen visit alone does not always prove that a business step completed. Use a transaction or business event when confirmation of the outcome is required.

Analyze Views and Fragments

Use GermainUX dashboards to analyze:
  • View and fragment usage
  • Load duration
  • Navigation frequency
  • Entry and exit points
  • Navigation paths
  • Errors by view
  • Transactions by view
  • Application-version differences
  • Device and Android-version differences
  • User-session context
  • Business-process progression
Use percentiles and affected-user counts alongside average load duration.

Alerts

Configure alerts for important conditions such as:
  • Critical view or fragment loading slowly
  • Increased navigation failures
  • New errors associated with a screen
  • Performance regression after a release
  • Critical screen no longer reached
  • Increased abandonment at a business-process step
Use minimum-volume and persistence conditions to avoid alerts caused by isolated sessions.

Android Lifecycle Considerations

Android can recreate activities and fragments because of:
  • Configuration changes
  • Process recreation
  • Navigation behavior
  • Memory pressure
  • Device rotation
  • Application restoration
These lifecycle events can create additional loads that do not represent deliberate user navigation. When analyzing unusual counts or durations, compare the data with:
  • Configuration changes
  • Device orientation
  • Application state
  • Process restarts
  • Android version
  • Application navigation design

Privacy

Activity and fragment class names are generally technical, but custom names or attributes can expose sensitive business context. Before production deployment:
  • Review all screen and fragment names.
  • Remove personal and record-specific values.
  • Avoid capturing user-entered content.
  • Apply anonymization or exclusion rules.
  • Restrict access to session-level navigation data.
  • Define an appropriate retention period.

Validation

After enabling monitoring:
1

Start the application

2

Navigate through supported activities

3

Open and replace fragments

4

Return to previous screens

5

Rotate the device where applicable

6

Place the application in the background and return

7

Verify view and fragment telemetry in GermainUX

8

Confirm that names and durations are meaningful

9

Test screens implemented with custom UI frameworks

10

Add custom transactions or events where automatic monitoring is insufficient

11

Confirm that no sensitive values are collected

Troubleshooting

Activity navigation is missing

Verify that:
  • GermainUX initializes before navigation occurs.
  • The activity uses a supported Android lifecycle.
  • The application is included in the GermainUX monitoring scope.
  • Telemetry reaches the ingestion endpoint.
  • The release build contains the GermainUX library.

Fragment telemetry is missing

Confirm that:
  • Fragment monitoring is enabled.
  • The application uses a supported fragment implementation.
  • The fragment participates in normal lifecycle callbacks.
  • The installed GermainUX library supports the AndroidX version in use.

View counts are higher than expected

Check for:
  • Configuration changes
  • Activity or fragment recreation
  • Process restoration
  • Nested fragments
  • Background and foreground transitions
  • Custom navigation behavior

A Compose or custom view is not detected

Automatic activity and fragment monitoring may not represent that UI transition. Add a custom transaction or event for the destination or business step.

Get Help

Contact GermainUX Support

The GermainUX team helps you get up and running faster, empower your team, turn data into actionable insights, and optimize performance to deliver measurable business outcomes.

Can't find what you need?

Search all GermainUX docs with Ctrl + K, or use the feedback buttons at the bottom of this page to tell us what is missing.

The content of this document is proprietary to GERMAIN SOFTWARE.