Optimized compatibility issues in high-load scenarios for multi-process data collection using ContentProvider
Removed the android.permission.READ_PHONE_STATE declaration from the SDK AndroidManifest. Integrators need to add it based on actual requirements. For permission usage, refer to the Integration Documentation
Restricted data synchronization in child processes. Data collected by child processes will be reported by the main process.
Added FTRUMConfig.setActionTrackingHandler to support custom user action tracking. This handler allows developers to customize the tracking of user actions (app launches, clicks) in RUM data. Developers can modify action names, add custom attributes, or skip tracking specific actions.
Added FTRUMConfig.setViewActivityTrackingHandler to support custom Activity view tracking. This handler allows developers to customize the tracking of Activity views in RUM data. Developers can modify view names, add custom attributes, or skip tracking specific Activities.
Added FTRUMConfig.setViewFragmentTrackingHandler to support custom Fragment view tracking. This handler allows developers to customize the tracking of Fragment views in RUM data. Developers can modify view names, add custom attributes, or skip tracking specific Fragments.
Fixed the issue where FTRUMGlobalManager.addAction was missing bindUserData related information, such as userid
Added load_time metric for Fragment in View
Added FTRUMGlobalManager.updateTime to customize the loading time of the current view
Improved compatibility with OkHttp 3.12.x
Tags added via FTRUMConfig.appendRUMGlobalContext can now be updated during the session.
Added FTRUMConfig.setEnableTraceWebView to configure whether to enable WebView data collection via Android SDK. Use FTRUMConfig.setAllowWebViewHost to control host address filtering
Added ContentHandlerHelperEx.onExceptionWithFilter to filter local network errors
Added FTSDKConfig.setRemoteConfiguration to enable remote conditional configuration. Added FTSDKConfig.setRemoteConfigMiniUpdateInterval to set the minimum update interval after enabling remote control
Added FTRUMConfig.setEnableTraceUserViewInFragment to support fragment view data collection, default is false
Added FTSDKConfig.setLineDataModifier and FTSDKConfig.setDataModifier to support data write replacement and data desensitization
Added FTRUMConfig.setSessionErrorSampleRate to support error sampling. When not sampled by setSamplingRate, RUM data from 1 minute before the error can be sampled
When FTSDKConfig.setEnableAccessAndroidID(false), use a local random uuid as device_uuid
Optimized high-frequency log writing, data synchronization, and idle data closure logic
Added FTSDKConfig.setEnableOkhttpRequestTag to support adding a unique ResourceID to OkHttp requests to resolve trace_id and span_id misalignment issues in high-concurrency scenarios. ft-plugin 1.3.5 and above supports automatic ResourceID addition.
Fixed the issue of circular calls caused by multiple RUM initializations with other crash collection SDKs
When navigating from a native view to a WebView, the native view name is used to populate view_referrer
Fixed the issue where IOException in network requests was rethrown, altering the original type
Added setProxy, setProxyAuthenticator, and setDns to FTSDKConfig for configuring Proxy, ProxyAuthenticator, and Dns in OkHttp data synchronization network requests
OkHttp data synchronization network requests support DNS IP round-robin connections for known hostNames
Modified the isAppForeground judgment mechanism to adapt to privacy-sensitive information detection
Added resource_first_byte_time, resource_dns_time, resource_download_time, resource_connect_time, and resource_ssl_time fields to resource data for enhanced Resource time display in Guance and alignment with the timeline in APM flame graphs
Optimized synchronization retry mechanism, removed the FTSDKConfig.setDataSyncRetryCount(0) option for direct data discard
FTSDKConfig.enableDataIntegerCompatible is enabled by default to ensure compatibility with web floating-point number data types
Fixed the issue of duplicate crash data caused by multiple RUM initializations
Supported custom FTTraceInterceptor.HeaderHandler to associate with RUM data
Supported modifying ASM-written FTTraceInterceptor.HeaderHandler content via FTRUMConfig.setOkHttpTraceHeaderHandler and ASM-written FTResourceInterceptor.ContentHandlerHelper content via FTRUMConfig.setOkHttpResourceContentHandler
Optimized crash collection to adapt to scenarios where system.exit is triggered by certain OS, preventing crash data collection
Fixed the issue where tags occasionally being empty strings caused data upload failures
Optimized ASM OkHttpListener EventListener coverage logic to retain original project EventListener event parameter passing
Optimized network status and type acquisition, supporting ethernet type display
Optimized frequent database closure issues in no-network states
Fixed the issue of discrepancies between the number of discarded logs and RUM old data and the set number of entries
Adapted TV device button events, removed non-TV device tags
Supported limiting RUM data cache entry count via FTRUMConfig.setRumCacheLimitCount(int), default is 100_000
Supported limiting total cache size via FTSDKConfig enableLimitWithDbSize(long dbSize). After enabling, FTLoggerConfig.setLogCacheLimitCount(int) and FTRUMConfig.setRumCacheLimitCount(int) will be invalid
Optimized Session refresh rules in scenarios with no device operation
Fixed the issue where custom startView in RUM caused the FTMetricsMTR monitoring thread to not be recycled
Supported adding dynamic attributes via FTSdk.appendGlobalContext(globalContext), FTSdk.appendRUMGlobalContext(globalContext), and FTSdk.appendLogGlobalContext(globalContext)
Supported clearing unreported cache data via FTSdk.clearAllData()
Extended the maximum limit of SDK setSyncSleepTime to 5000 ms
Optimized data storage and synchronization performance
(Upgrading from older versions to 1.6.0 requires configuring FTSDKConfig.setNeedTransformOldCache for old data compatibility synchronization)
Fixed the issue where calling Log.w(String,Throwable) with ft-plugin caused exceptions