Optimized multi-process data collection in high-load scenarios 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 for 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 for 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 for specific Fragments.
Fixed the issue where FTRUMGlobalManager.addAction lacked 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 through the Android SDK. Use FTRUMConfig.setAllowWebViewHost to filter specific host addresses.
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 prior can be sampled when an error occurs.
When FTSDKConfig.setEnableAccessAndroidID(false) is set, a local random uuid is used 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, resolving issues with trace_id and span_id misalignment in high-concurrency scenarios. ft-plugin 1.3.5 and above support automatic ResourceID addition.
Fixed the issue of circular calls with other crash collection SDKs when initializing RUM configurations multiple times.
When navigating from a native view to a WebView, the native view name is used to fill 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 now support DNS IP round-robin 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, enhancing Resource time display on Guance and aligning with the APM flame chart timeline.
Optimized the synchronization retry mechanism, removing the FTSDKConfig.setDataSyncRetryCount(0) option for direct data discard.
FTSDKConfig.enableDataIntegerCompatible is now enabled by default to ensure compatibility with web floating-point data types.
Fixed the issue of duplicate crash data generation when initializing RUM configurations multiple times.
Supported custom FTTraceInterceptor.HeaderHandler for association 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 triggered by certain OS prevents crash data collection.
Fixed the occasional issue where tags were empty, preventing normal data reporting.
Optimized ASM OkHttpListener EventListener coverage logic to retain original project EventListener parameter passing.
Optimized network status and type acquisition, supporting ethernet type display.
Optimized database closure frequency in no-network states.
Fixed the issue where the number of discarded logs and RUM data entries deviated from the set number.
Adapted TV device button events, filtering non-TV device tags.
Supported limiting RUM data cache entry count via FTRUMConfig.setRumCacheLimitCount(int), defaulting to 100,000.
Supported limiting total cache size via FTSDKConfig enableLimitWithDbSize(long dbSize). When enabled, FTLoggerConfig.setLogCacheLimitCount(int) and FTRUMConfig.setRumCacheLimitCount(int) become invalid.
Optimized Session refresh rules in no-operation scenarios.
Fixed the issue where custom startView calls 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 cached 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.)
Fixed the issue where calling Log.w(String,Throwable) with ft-plugin caused exceptions.