Flashduty Android RUM SDK automatically collects multiple metrics and attributes for all RUM events by default. You can also add custom attributes via API to extend the default dataset.
Privacy and Permissions
Flashduty Android RUM SDK collects only the runtime information needed for real user monitoring, error diagnosis, performance analysis, and network request analysis. The SDK itself declares the following Android permissions:Device Identifiers Not Collected
The Android RUM SDK does not read or report the following unique device identifiers:RUM may generate an anonymous user ID by default to correlate the same anonymous user across sessions. This ID is a randomly generated UUID stored in the app’s local data directory. It is not derived from Android ID, IMEI, OAID, or advertising ID. You can disable anonymous user tracking in the RUM configuration.
System Context Collected
The SDK automatically attaches the following system context to help diagnose performance, crash, and network issues:The geo-location fields documented below are inferred by the Flashduty backend from the client request IP address. They are not collected from Android system location APIs. The SDK does not call GPS, cell-tower location, or fused location APIs, and it does not require location permissions.
App Startup Metrics
Flashcat automatically collects the following app startup performance metrics:Views Monitoring
A View represents a unique screen the user sees in the app. Each View creates a new RUM event when it starts, and updates that event throughout the View’s lifecycle.Views collect information about all resources, actions, errors, and long tasks that occur during their lifecycle.
Auto Tracking Strategies
In Android, Activities and Fragments are considered Views. The SDK provides the following auto tracking strategies:Default Attributes
RUM SDK automatically attaches default attributes to all events, helping you understand user devices, network status, and app context.Core Attributes
Core Attributes
Device Attributes
Device Attributes
The following device-related attributes are automatically collected in all RUM events:
Connectivity Attributes
Connectivity Attributes
The following network-related attributes are automatically collected in all RUM events:
Operating System Attributes
Operating System Attributes
The following OS-related attributes are automatically collected in all RUM events:
Geo-location Attributes
Geo-location Attributes
Flashcat RUM can infer geographic location information from user’s IP address:
Geo-location information is inferred by Flashcat backend based on client IP address. Precise GPS location is not collected on the Android client, and location permissions are not required.
Global User Attributes
Global User Attributes
You can set user information via the
setUser() API, which will be attached to all RUM events:Only the standard user fields above are supported. Other user attributes are not supported. If needed, configure them under
context.Event-Specific Attributes
In addition to default attributes, different types of RUM events collect specific metrics and attributes.Session Attributes
Session Attributes
View Attributes
View Attributes
View events include the following specific attributes and performance metrics:
Resource Attributes
Resource Attributes
Resource events represent network requests in the app. Collected attributes include:
Error Attributes
Error Attributes
Error events collect exception and crash information. Error messages and stack traces are automatically included:
Network Errors:Network errors contain information about failed HTTP requests and collect the following attributes:
Action Attributes
Action Attributes
Actions represent user interactions with the app (e.g., clicks, swipes, scrolls).Timing Attributes:
Basic Attributes:
Data Storage and Security
Local Storage Mechanism
Before data is uploaded to Flashcat, it is stored in plaintext in the app’s cache directory. Storage Location:Security Protection:
- Cache folder is protected by Android app sandbox
- On most devices, other apps cannot read this data
Data Upload Mechanism
Flashcat RUM Android SDK uses batch processing to upload events, ensuring data transmission while minimizing impact on user experience.Batch Processing Flow
1
Event Collection
SDK appends uncompressed events to batch files using TLV encoding format (Tag-Length-Value).
2
Batch Optimization
When batch closes:
- Read batch file and extract events
- Deduplicate RUM events (remove redundant View events)
- Build payload specific to each trace
3
Compressed Upload
Use gzip compression to reduce network traffic and upload time.
Upload Triggers
Batches are uploaded when any of the following occurs:Upload Strategy
Smart Upload Mechanism:
- Network Optimization - Prefer WiFi upload, mobile network also supported
- Battery Management - Ensures not to excessively drain device battery
- Failure Retry - Batches are retained locally on upload failure until successfully sent
- Data Compression - Uses gzip compression to reduce network traffic
Direct Boot Mode Support
If your app supports Direct Boot mode (launching before device unlock), note:Flashcat SDK will start collecting data after device unlock. If you need to collect data in Direct Boot mode, ensure you use device-encrypted storage instead of credential-encrypted storage.
Related Documentation
SDK Integration
Learn how to integrate the Android SDK
Advanced Configuration
Configure custom attributes, sampling, and event filtering
Insights
View and analyze collected RUM data