Changelog¶
ft-sdk¶
1.7.2 (2026/05/20)¶
- Added DataKit-compatible data filtering capability, supporting local and remote rule filtering for Logging and RUM data. Enabled by default, can be disabled via
FTSDKConfig.setEnableDataFilter(false). - Added
FTSDKConfig.setDataFilters, supporting configuration of local filtering rules and remote filtering rule fetch intervals. Filtering rules are executed afterLineDataModifierand before local cache write. - Added general cache size limit configuration
FTSDKConfig.enableLimitWithCacheSize,FTSDKConfig.setCacheDiscard, andCacheDiscard. OriginalenableLimitWithDbSizeandsetDbCacheDiscardremain compatible but migration to the new interfaces is recommended. - Added file cache capability for synchronous cache and RUM aggregated data, providing a migration path compatible with old caches.
ft-sdkno longer strongly depends onft-session-replay. Applications not enabling Session Replay do not need to include theft-session-replaydependency.- Added
app_launch_typefield to cold-start Action to distinguish between foreground launch and background launch. - Added RUM fallback View data, generating real View summary records in
ApplicationLaunch,BackgroundView, andRootViewscenarios, enabling RUM events like startup, background, and those lacking a foreground View to be associated with a randomview_id. - Optimized data synchronization strategy, prioritizing RUM data synchronization and isolating retry and backoff states by data type to reduce the impact of log synchronization on RUM data reporting.
- Fixed an issue where custom Resource attributes could overwrite the SDK-calculated
duration, and added non-negative value protection for fallback durations in exceptions. - Fixed Session Replay upload retry and upload address validation logic to avoid repeated triggering of uploads for invalid addresses and to ensure retryable failures are handled according to the backoff strategy.
1.7.1 (2026/04/30)¶
- Added View RUM metric
view_long_task_rateto calculate the proportion of total Long Task duration within the View lifecycle, with a maximum value of1. - Added crash RUM Error metrics
foreground_crash_free_durationandbackground_crash_free_durationto distinguish crash-free run durations in foreground and background. - Added Resource network snapshot fields, including
network_available,network_validated,network_downlink_kbps,network_uplink_kbps, andnetwork_signal_strength. - SDK data synchronization now enables deflate compression by default, can be disabled via
FTSDKConfig.setCompressIntakeRequests(false). - Corrected version dependency constraints between
ft-sdkand the Session Replay module, improving integration compatibility check accuracy.
1.7.0 (2026/04/17)¶
- Added Session Replay capability, supporting WebView Session Replay, DCloud WebView, and full snapshot keyframe collection for WebView containers.
- Added Session Replay and RUM context association capability, allowing association between WebView containers and the context of loaded HTML content.
- Added Session Replay error sampling capability, supporting dynamic control of Session Replay via remote configuration.
- Added Session Replay image resource upload capability, supplementing parameter passthrough like userAgent, appVersion, and synchronization link adaptation.
- Optimized Session Replay initialization, fragment frame complementation, frame generation and consumption, delayed writing, disk write limits, etc., improving recording and synchronization stability.
- Fixed issues including WebView data loss, abnormal handling in invisible scenarios, premature writing causing white screens, inability to synchronize with low-version OkHttp, Bitmap recycling causing recording failures, etc.
- Fixed crash issues caused by calling related methods on some controls before layout completion, improving overall stability and compatibility.
1.6.17 (2026/3/25)¶
- Fixed an issue introduced in version 1.6.16: remote dynamic configuration not taking effect on first load.
- Added
TraceContextandTraceContext.Simplefor custom Trace Header handling. Can overrideHeaderHandler.getTraceContext(Request)to provideheaders,traceId, andspanIdat once, fully compatible with existinggetTraceHeader,getTraceID/getSpanIDimplementations. - Support dynamically changing transmission addresses via
FTSdk.setDatakitUrl(url),FTSdk.setDatawayUrl(datawayUrl, clientToken).
1.6.16 (2026/1/08)¶
- Added illegal character filtering for globalContext and attribute keys.
- Expanded
resource_typesupport range, adding image, media, font, CSS, JS, native types. - Support custom parsing and configuration of remote variables via
FTSDKConfig.setRemoteConfigurationCallBack(FTRemoteConfigManager.FetchResult),FTSdk.updateRemoteConfig(int remoteConfigMiniUpdateInterval, FTRemoteConfigManager.FetchResult result). Custom parsing and configuration example. - Added
resource_http_protocol,resource_request_size,resource_connection_reusefields to Resource. - Refined cold-start time metrics, added
app_pre_application_init_time,app_application_init_time, andapp_first_frame_init_time. - Added compatibility support for OkHttp 3.12 and above.
- Fixed inaccurate Resource request start time.
- Fixed occasional null pointer exceptions when obtaining Action and View during SDK shutdown.
- Optimized error stack format, fixing line break errors in specific scenarios.
- Added limited Long Task monitoring capability when the application is in the background.
- Optimized Session refresh mechanism when the application is in the background.
- Optimized nanosecond-level duration calculation logic in Action, View, and Resource.
1.6.15 (2025/12/03)¶
- Optimized FPS monitoring mechanism: starts on the main thread, automatically stops monitoring when the app goes to the background.
- Optimized long log output mechanism exceeding 4K, improving log readability and completeness.
- Optimized generation logic for resource, long task, and error within View context.
- Increased View generation rate and reduced traffic data generated with the same
view_id. - Removed restrictions on ActivityLifecycleCallbacks in child processes, making lifecycle monitoring more complete.
- Fixed occasional View data update loss.
- Fixed session refresh anomalies caused by asynchronous network requests.
- Fixed issue where idle DB release could not be triggered after SDK shutdown and re-initialization.
1.6.14 (2025/08/20)¶
- Used ContentProvider to optimize compatibility issues in high-load multi-process data collection scenarios.
- Removed SDK AndroidManifest declaration for
android.permission.READ_PHONE_STATE. Integrators need to add it based on actual requirements. Permission usage instructions can be found in the integration documentation. - Restricted data synchronization in child processes. Data collected by child processes will be reported by the main process.
1.6.13 (2025/08/10)¶
- Added
FTRUMConfig.setActionTrackingHandlerto support custom user action tracking. This handler allows developers to customize how user actions (app launch, clicks) are tracked in RUM data. Developers can modify action names, add custom attributes, or skip tracking for specific actions. - Added
FTRUMConfig.setViewActivityTrackingHandlerto support custom Activity page tracking. This handler allows developers to customize how Activity pages are tracked in RUM data. Developers can modify page names, add custom attributes, or skip tracking for specific Activities. - Added
FTRUMConfig.setViewFragmentTrackingHandlerto support custom Fragment page tracking. This handler allows developers to customize how Fragment pages are tracked in RUM data. Developers can modify page names, add custom attributes, or skip tracking for specific Fragments. - Fixed issue where
FTRUMGlobalManager.addActionlacked binding information forbindUserData, e.g., userid. - Added
load_timedata metric forFragmentin View. - Added
FTRUMGlobalManager.updateTimefor customizing the current view's loading time. - Improved compatibility with OkHttp 3.12.x versions.
- Tags added via
FTRUMConfig.appendRUMGlobalContextcan now be updated during a session.
1.6.12 (2025/06/11)¶
- Added
FTRUMConfig.setEnableTraceWebViewto configure whether to enable WebView data collection via Android SDK. UseFTRUMConfig.setAllowWebViewHostto control which host addresses to filter. - Added
ContentHandlerHelperEx.onExceptionWithFilterto filter local network errors. - Added
FTSDKConfig.setRemoteConfigurationto support enabling remote conditional configuration. AddedFTSDKConfig.setRemoteConfigMiniUpdateIntervalto set the minimum update interval after enabling remote control.
1.6.11 (2025/05/15)¶
- Added
FTRUMConfig.setEnableTraceUserViewInFragmentto support fragment view data collection, default isfalse. - Added
FTSDKConfig.setLineDataModifier,FTSDKConfig.setDataModifierto support data write replacement and data desensitization. - Added
FTRUMConfig.setSessionErrorSampleRateto support error sampling. When not sampled bysetSamplingRate, errors can trigger sampling collection for RUM data from up to 1 minute ago. - When
FTSDKConfig.setEnableAccessAndroidID(false), use a local randomuuidas thedevice_uuid. - Optimized high-frequency log writing, data synchronization, and data idle shutdown logic.
1.6.10 (2025/04/18)¶
- Added
FTSDKConfig.setEnableOkhttpRequestTagto support adding unique ResourceID to OkHttp requests, solving the issue oftrace_idandspan_idmisalignment in high-concurrency scenarios for identical requests. ft-plugin version 1.3.5+ supports automatic ResourceID addition. - Fixed an issue where repeated RUM configuration initialization could cause circular calls with other crash collection SDKs.
- When navigating from a native page to a WebView page, use the native page name to populate
view_referrer. - Fixed an issue where re-throwing IOException from network requests could alter the original exception type.
- Added
setProxy,setProxyAuthenticator,setDnsto FTSDKConfig for configuring Proxy, ProxyAuthenticator, and Dns for OkHttp data synchronization network requests. - OkHttp data synchronization network requests now support DNS IP round-robin connection for known hostNames.
1.6.9 (2025/03/07)¶
- Modified
isAppForegroundjudgment mechanism to adapt to privacy-sensitive information detection. - Added
resourcedata fields:resource_first_byte_time,resource_dns_time,resource_download_time,resource_connect_time,resource_ssl_time. Supports enhanced Resource duration display on TrueWatch and aligns with APM flame graph timelines. - Optimized synchronization retry mechanism, removed the configuration option
FTSDKConfig.setDataSyncRetryCount(0)which directly discarded data. FTSDKConfig.enableDataIntegerCompatibleis enabled by default for compatibility with web numeric floating-point type data.- Fixed an issue where repeated RUM configuration initialization could cause duplicate crash data generation.
1.6.8 (2025/01/21)¶
- Fixed inaccurate fps collection when RUM configuration was initialized multiple times.
- Added fault tolerance for cache data upgrade from older versions.
- Migrated
FTRUMConfig.setOkHttpTraceHeaderHandlertoFTTraceConfig.setOkHttpTraceHeaderHandler. - Enhanced WebView SDK internal information and optimized performance.
1.6.7 (2025/01/10)¶
- Support custom
FTTraceInterceptor.HeaderHandlerfor association with RUM data. - Support modifying ASM-written
FTTraceInterceptor.HeaderHandlercontent viaFTRUMConfig.setOkHttpTraceHeaderHandler, and modifying ASM-writtenFTResourceInterceptor.ContentHandlerHelpercontent viaFTRUMConfig.setOkHttpResourceContentHandler. - Optimized crash collection capability, adapting to scenarios where
system.exittriggered by certain OS prevents crash data collection. - Fixed occasional empty string tags causing data reporting failure.
- Optimized ASM OkHttpListener EventListener override logic, supporting preservation of original project EventListener event parameter passing.
1.6.6 (2024/12/27)¶
- Optimized network status and type acquisition, supporting display of ethernet network type.
- Optimized frequent database closure during data writing when network is unavailable.
- Fixed discrepancy between the number of discarded log/RUM entries and the configured limit when discarding old data.
- Adapted TV device key events, filtering out non-TV device tags.
- Support limiting RUM data cache entry count via
FTRUMConfig.setRumCacheLimitCount(int), default is 100,000. - Support limiting total cache size via
FTSDKConfig enableLimitWithDbSize(long dbSize). When enabled,FTLoggerConfig.setLogCacheLimitCount(int)andFTRUMConfig.setRumCacheLimitCount(int)become ineffective. - Optimized Session refresh rules when the device is idle.
1.6.5 (2024/12/24)¶
- Weakened warnings for null parameters during WebView AOP processing.
- Optimized long Session update mechanism when the application is in the background.
1.6.4 (2024/12/03)¶
- Optimized App startup time statistics for API 24 and above.
- Support setting detection time range via
FTRUMConfig.setEnableTrackAppUIBlock(true, blockDurationMs).
1.6.3 (2024/11/18)¶
- Optimized performance of custom
addActionduring high-frequency calls. - Support using
FTSDKConfig.setCompressIntakeRequeststo configuredeflatecompression for synchronized data.
1.6.2 (2024/10/24)¶
- RUM added
addActionmethod, supporting property extension attributes and frequent continuous data reporting.
1.6.1 (2024/10/18)¶
- Fixed an issue where custom
startViewcalls in RUM alone caused the monitoring metricFTMetricsMTRthread not being recycled. - Support adding dynamic attributes via
FTSdk.appendGlobalContext(globalContext),FTSdk.appendRUMGlobalContext(globalContext),FTSdk.appendLogGlobalContext(globalContext). - Support clearing unreported cached data via
FTSdk.clearAllData(). - Extended maximum limit for SDK
setSyncSleepTimeto 5000 ms.
1.6.0 (2024/08/18)¶
- Optimized data storage and synchronization performance.
(Upgrading from older versions to 1.6.0 requires configuring
FTSDKConfig.setNeedTransformOldCachefor old data compatibility synchronization.) - Fixed an issue where calling
Log.w(String,Throwable)with ft-plugin could cause an exception.
1.5.2 (2024/07/10)¶
- Added local network error type hints to Error
network_error, supplementing scenarios whereresource_status=0in Resource data. - Fixed
uncaughtExceptionrethrow propagation issue whensetEnableTrackAppCrash(false).
1.5.1 (2024/06/19)¶
- Added other thread code stacks to Java Crash and ANR.
- Added additional logcat configuration capability for Java Crash, Native Crash, and ANR.
- Fixed frequent
session_idupdates in scenarios with long sessions and no action updates.
1.5.0 (2024/06/03)¶
- Added remote IP address resolution capability for RUM resource network requests.
- Fixed array thread safety issues caused by high-concurrency network requests when RUM SampleRate is enabled.
- Fault tolerance optimization for the
ConnectivityManager.registerDefaultNetworkCallbackmethod. - Added line protocol Integer data compatibility mode to handle web data type conflicts.
- Optimized automatic collection of control resource name IDs in Action clicks.
- Fault tolerance optimization for SDK config configuration reading exceptions.
1.4.6 (2024/05/15)¶
- SDK initialization fault tolerance optimization.
- Added new log type Status.Debug.
- Adjusted console log capture level mapping:
Log.i->info,Log.d->debug. - FTLogger custom logs support custom
statusfield.
1.4.5 (2024/04/26)¶
- Optimized handling for repeated initialization compatibility.
- Optimized C/C++ crash collection data synchronization logic to avoid deadlocks caused by unexpected exits in certain scenarios.
- Optimized
startActionProperty attribute writing logic to avoid thread-safe access issues.
1.4.4 (2024/04/01)¶
- Database connection fault tolerance protection.
- Fixed issue where child process configuration partially ineffective when
setOnlySupportMainProcessis true. - Fixed issue where Crash would not rethrow when RUM View collection is not enabled.
1.4.3 (2024/03/22)¶
- Support uploading to Dataway and Datakit addresses.
- Support sending RUM data types: Action, View, Resource, LongTask, Error.
- Automatic collection of View, Action page navigation, control clicks requires ft-plugin.
- Automatic collection of Resource, only supports OkHttp, requires ft-plugin.
- Native Crash and ANR in Error require ft-native.
- Support sending Log data, automatic console writing requires ft-plugin.
- Trace http header propagation, only supports OkHttp, requires ft-plugin.
- Support data synchronization parameter configuration: request entry count, sync interval time, and log cache entry count.
- Support converting SDK internal logs to files.
ft-session-replay¶
0.1.5 (2026/05/19)¶
ft-session-replay¶
- Added Flutter Session Replay upload compatibility, supporting mapping Replay batches to corresponding Segments via Flutter RUM context Key.
- Fixed compatibility issues with Session Replay file read/write factories between regular storage and encrypted storage implementations.
- Fixed retry state handling for Session Replay data and resource uploads. Upload failures are retried according to backoff strategy; invalid upload addresses are skipped until a valid address configuration is available.
- Replaced remaining JetBrains nullability annotations in Session Replay with AndroidX annotations, reducing redundant annotation dependencies.
ft-session-replay-material¶
- No changes.
ft-session-replay-compose¶
- No changes.
0.1.4 (2026/04/30)¶
ft-session-replay¶
- Removed redundant Kotlin dependencies, simplifying Session Replay dependency relationships.
- Enhanced public API documentation for Session Replay configuration, privacy control, custom Mapper extensions, resource upload callbacks, etc., improving IDE hints and custom extension development experience for Java/Kotlin integration.
ft-session-replay-material¶
- Version aligned with
ft-session-replay0.1.4, no API or behavioral changes.
ft-session-replay-compose¶
- Fixed crash when recording
AndroidViewinterop nodes caused by missingMappingContext.getInteropViewCallback()in lower versions of Session Replay Core. - Added consumer ProGuard rules to preserve
MappingContextAndroidView interop callback access methods required by Compose Replay. - Enhanced documentation for Compose Replay's
Modifierprivacy masking, extension support, text truncation modes, and image Wireframe helper methods, improving IDE hints for Kotlin/Compose integration.
0.1.3 (2026/04/17)¶
ft-session-replay¶
- Added WebView Session Replay capability, supporting DCloud WebView and full snapshot keyframe collection for WebView containers.
- Added Session Replay and RUM context association capability, allowing association between WebView containers and the context of loaded HTML content.
- Added error sampling capability, supporting dynamic control of Session Replay via remote configuration.
- Added image resource upload capability, improved metadata handling for userAgent, appVersion, forceFullSnapshot, etc.
- Optimized frame generation and consumption, fragment complementation, WebView Replay data delayed writing, invisible WebView handling, and disk write limits, improving stability and performance.
- Fixed issues including WebView Replay data loss, premature writing causing white screens, synchronization failure with low-version OkHttp, Bitmap recycling causing recording failure, rumLinkKey null handling, and recording timeout in multi-image scenarios.
ft-session-replay-material¶
- Added Session Replay support for Material components, including CardView and Chip.
- Optimized compatibility and debugging support for lower Android versions.
- Optimized rendering performance of Material components in Replay data, updated MaterialDrawableToColorMapper rules.
- Aligned version strategy with
ft-session-replay, improving release management and integration consistency.
ft-session-replay-compose¶
- Added Jetpack Compose Session Replay support, enabling recording and playback for
ComposeViewandAndroidComposeViewscenarios. - Supports semantic mapping and playback for common Compose components, including Text, TextField, Button, Image, Slider, Switch, Checkbox, RadioButton, Tab, and container nodes.
- Supports Session Replay privacy masking via
Modifierin Compose, including node hiding, image privacy, text and input privacy, touch privacy. - Current Compose playback is based on semantic node mapping and does not guarantee pixel-perfect reproduction;
Brushbackgrounds (e.g., linear gradients, radial gradients) are not supported and will not be played back with original effects.
More logs for ft-session-replay
More logs for ft-session-replay-material
More logs for ft-session-replay-compose
ft-native¶
1.1.3 (2026/04/30)¶
- Enhanced Native Crash backtrace robustness, added null address detection, and strengthened null pointer and wild pointer checks during libunwind.so backtracing in libft_native_exp_lib.so.
- Fixed potential secondary crash issue with libunwind.so during Native Crash handling.
1.1.2 (2025/07/18)¶
- Adapted to Android 16K page size (compatible with Android 15+).
1.1.1 (2024/06/22)¶
- Added logcat configuration capability for Native Crash and ANR.
1.1.0 (2024/03/22)¶
- Support capturing ANR Crash.
- Support capturing C/C++ Native Crash.
- Support collecting application runtime state upon crash.
- Support callbacks triggered by ANR and Native Crash.
ft-plugin ( AGP >=7.4.2 )¶
1.3.6 (2025/12/03)¶
- Support for UniApp WebView.
- Added
knownWebViewClassesparameter to support ASM writing. - Added functionality to output logs to files.
- Added
verboseLogparameter for more verbose log output. - Added numerical boundary handling in FTMethodAdapter.
- Added ignore configuration to filter internal methods of custom WebViews.
1.3.5 (2025/04/18)¶
- Optimized stability of plugin parameters during concurrent compilation.
- Added ASM writing for
FTAutoTrack.trackRequestBuildermethod, requires ft-sdk version 1.6.10 or above. - Support automatic capture of
Log.printlnlogs, requires ft-sdk version 1.6.8 or above.
1.3.4 (2024/12/11)¶
- Optimized error log output.
- Fixed issue where
minifyEnablednot being enabled caused sourcemap symbol files not to be generated. - Support generating sourcemap without automatic upload via
generateSourceMapOnly true.
1.3.3 (2024/09/04)¶
- Optimized automatic acquisition and upload of native symbol so files, support custom
nativeLibPathspecification.
1.3.2 (2024/08/13)¶
- Support automatic capture of React Native WebView events.
1.3.1 (2024/07/04)¶
- Added
asmVersionconfiguration capability, supporting asm7 - asm9, default is asm9. - Fixed an issue where custom WebView methods after ASM writing caused circular calls, preventing WebView content loading.
(Involved methods:
loadUrl,loadData,loadDataWithBaseURL,postUrl). IgnoreAOPsupports declaration within a class to ignore all methods in that class.- Added
ignorePackagesconfiguration to support ignoring ASM by package path.
1.3.0 (2024/03/22)¶
- Support automatic upload of datakit source maps, support upload of native symbols.
- Support capturing Application cold/warm start, Activity page navigation, View, ListView, Dialog, Tab click events.
- Support writing WebView Js listener methods.
- Support automatic writing of OkHttp Trace and Resource data.
- Support Gradle 8.0, AGP 8.0.
- Support
IgnoreAOPignore marker. - Support compatibility with Alibaba Cloud hotfix framework.
ft-plugin-legacy ( AGP <=7.4.2 )¶
1.1.9 (2025/12/09)¶
- Support for UniApp WebView.
- Added
knownWebViewClassesparameter to support ASM writing. - Added functionality to output logs to files.
- Added
verboseLogparameter for more verbose log output. - Added numerical boundary handling in FTMethodAdapter.
- Added ignore configuration to filter internal methods of custom WebViews.
1.1.8 (2024/08/13)¶
- Support automatic capture of React Native WebView events.
1.1.7 (2024/07/04)¶
- Fixed an issue where overriding WebView subclass methods after ASM writing caused circular calls, preventing WebView content loading.
(Involved methods:
loadUrl,loadData,loadDataWithBaseURL,postUrl). IgnoreAOPsupports declaration within a class to ignore all methods in that class.- Added
ignorePackagesconfiguration to support ignoring ASM by package path.
1.1.6 (2024/03/22)¶
- Support automatic upload of datakit source maps, support upload of native symbols.
- Support capturing Application cold/warm start, Activity page navigation, View, ListView, Dialog, Tab click events.
- Support writing WebView Js listener methods.
- Support automatic writing of OkHttp Trace and Resource data.
- Support AGP versions below 7.4.2.
- Support
IgnoreAOPignore marker. - Support compatibility with Alibaba Cloud hotfix framework.