- [changed] Bumped internal dependencies.
- [fixed] Fixed StrictMode DiskReadViolation prompted by AppStartTrace setup. [#7340]
- [changed] Bumped dependency on OkHTTP to version 4.12.0 from version 3.12.13. If your app depends on OkHTTP version 3.x the change is both binary- and Java source-compatible, with a few small exceptions. See https://square.github.io/okhttp/changelogs/upgrading_to_okhttp_4/ for more details.
- [changed] Bumped internal dependencies.
- [fixed] Fixed the behavior of app start traces on API 34+ devices. [#5920]
- [fixed] Fixed an ANR on app launch. [#4831]
- [changed] Breaking Change: Updated minSdkVersion to API level 23 or higher.
- [removed] Breaking Change: Stopped releasing the deprecated Kotlin extensions (KTX) module and removed it from the Firebase Android BoM. Instead, use the KTX APIs from the main module. For details, see the FAQ about this initiative.
- [changed] Updated
protolite-well-known-typesdependency to v18.0.1 [#6716] - [fixed] Fixed a bug that allowed invalid payload bytes value in network request metrics [#6721]
The Kotlin extensions library transitively includes the updated firebase-performance library. The
Kotlin extensions library has no additional updates.
- [fixed] Fixed a performance issue with shared preferences calling
.apply()every time a value is read from remote config (#6407)
The Kotlin extensions library transitively includes the updated firebase-performance library. The
Kotlin extensions library has no additional updates.
- [changed] Bump internal dependencies.
The Kotlin extensions library transitively includes the updated firebase-performance library. The
Kotlin extensions library has no additional updates.
- [fixed] Fixed
IllegalStateExceptionthat happened when starting a trace before Firebase initializes. - [changed] Updated protobuf dependency to
3.25.5to fix CVE-2024-7254.
The Kotlin extensions library transitively includes the updated firebase-performance library. The
Kotlin extensions library has no additional updates.
- [fixed] Fixed an
ExceptionInInitializerErrorwhere theurl.openStream()causes a crash if FirebasePerf is not yet initialized (Github #5584).
The Kotlin extensions library transitively includes the updated firebase-performance library. The
Kotlin extensions library has no additional updates.
- [changed] Bump internal dependencies
The Kotlin extensions library transitively includes the updated firebase-performance library. The
Kotlin extensions library has no additional updates.
- [changed] Bump internal dependencies.
The Kotlin extensions library transitively includes the updated firebase-performance library. The
Kotlin extensions library has no additional updates.
- [changed] Make Fireperf generate its own session Id.
- [changed] Added Kotlin extensions (KTX) APIs from
com.google.firebase:firebase-perf-ktxtocom.google.firebase:firebase-perfunder thecom.google.firebase.perfpackage. For details, see the FAQ about this initiative - [deprecated] All the APIs from
com.google.firebase:firebase-perf-ktxhave been added tocom.google.firebase:firebase-perfunder thecom.google.firebase.perfpackage, and all the Kotlin extensions (KTX) APIs incom.google.firebase:firebase-perf-ktxare now deprecated. As early as April 2024, we'll no longer release KTX modules. For details, see the FAQ about this initiative
- [changed] Updated
firebase-sessionsdependency to v1.0.2 - [fixed] Make fireperf data collection state is reliable for Firebase Sessions library.
- [feature] Integrated with Firebase sessions library to enable upcoming features related to session-based performance metrics.
The Kotlin extensions library transitively includes the updated firebase-performance library. The
Kotlin extensions library has no additional updates.
- [fixed] Fixed app start trace creation where some measured time could be NULL (#4730).
- [changed] Adjusted default behavior when remote config fetch fails.
The Kotlin extensions library transitively includes the updated firebase-performance library. The
Kotlin extensions library has no additional updates.
- [changed] Updated JavaLite, protoc, protobuf-java-util to 3.21.11.
- [changed] Updated [perfmon] to use double-precision for sampling.
The Kotlin extensions library transitively includes the updated firebase-performance library. The
Kotlin extensions library has no additional updates.
- [changed] Migrated [perfmon] to use standard Firebase executors.
The Kotlin extensions library transitively includes the updated firebase-performance library. The
Kotlin extensions library has no additional updates.
- [fixed] Fixed a
NullPointerExceptioncrash when instrumenting screen traces on Android 7, 8, and 9. (#4146)
The Kotlin extensions library transitively includes the updated firebase-performance library. The
Kotlin extensions library has the following additional updates:
- [feature] Added a
trace(String, Trace.() -> T)extension function to create a custom trace with the specified name.
- [unchanged] Updated to accommodate the release of the updated [perfmon] Kotlin extensions library.
The Kotlin extensions library transitively includes the updated firebase-performance library. The
Kotlin extensions library has the following additional updates:
- [feature] Firebase now supports Kotlin coroutines. With this release, we added
kotlinx-coroutines-play-services{: .external} tofirebase-performance-ktxas a transitive dependency, which exposes theTask<T>.await()suspend function to convert aTaskinto a Kotlin coroutine.
- [changed] Updated dependency of
play-services-basementto its latest version (v18.1.0).
The Kotlin extensions library transitively includes the updated firebase-performance library. The
Kotlin extensions library has no additional updates.
- [feature] Added support for out-of-the-box measurement of screen performance metrics for Fragments{: .external}. For more details, visit Learn about screen rendering performance data.
- [fixed] Fixed a bug where screen traces were not capturing frame metrics for multi-Activity apps.
- [fixed] Excluded custom attributes that have key/value lengths of 0.
The Kotlin extensions library transitively includes the updated firebase-performance library. The
Kotlin extensions library has no additional updates.
- [fixed] Fixed a null pointer exception (NPE) when instrumenting network requests. (#3406)
- [fixed] Fixed a bug where incorrect session IDs were associated with some foreground and background traces.
- [changed] Updated dependencies of
play-services-basement,play-services-base, andplay-services-tasksto their latest versions (v18.0.0, v18.0.1, and v18.0.1, respectively). For more information, see the note at the top of this release entry.
The Kotlin extensions library transitively includes the updated firebase-performance library. The
Kotlin extensions library has no additional updates.
- [feature] Enabled global custom attributes for network request traces.
- [fixed] Updated log statement to differentiate an event being dropped due to rate limiting and sampling.
The Kotlin extensions library transitively includes the updated firebase-performance library. The
Kotlin extensions library has no additional updates.
- [changed] Improved [perfmon] start up time by 25%. This improvement was achieved by moving some component initialization to background threads.
The Kotlin extensions library transitively includes the updated firebase-performance library. The
Kotlin extensions library has no additional updates.
- [changed] [perfmon] now has a random delay of 5 to 30 seconds before fetching [remote_config] upon app startup.
- [fixed] Added a validation to stop screen traces with 0 total frames from being sent to the backend.
The Kotlin extensions library transitively includes the updated firebase-performance library. The
Kotlin extensions library has no additional updates.
- [fixed] Fixed inaccurate calculation of screen activity metrics for multi-activity apps. (#2672) Note: You may see some changes in data for frozen frames and slow rendering metrics.
- [fixed] Fixed issue where screen traces were not being tracked for Android API levels 23 and below.
The Kotlin extensions library transitively includes the updated firebase-performance library. The
Kotlin extensions library has no additional updates.
- [feature] Logs for [firebase_perfmon] now contain URLs to view performance data in the [name_appmanager].
- [fixed] Fixed
RateLimiterreplenishment logic and unit alignment.
The Kotlin extensions library transitively includes the updated firebase-performance library. The
Kotlin extensions library has no additional updates.
- [feature] Introduce Dagger as a dependency injection framework for some parts of the code.
- [changed] Improved the code organization of the SDK (package restructure, code conventions, remove unncessary annotations).
- [changed] Improve the launch time of the SDK.
The Kotlin extensions library transitively includes the updated firebase-performance library. The
Kotlin extensions library has no additional updates.
- [feature] The [firebase_perfmon] SDK is now open sourced{: .external}.
- [fixed] Fixed issue on the console logger to avoid throwing
UnknownFormatConversionException.
The Kotlin extensions library transitively includes the updated firebase-performance library. The
Kotlin extensions library has no additional updates.
- [changed] Removed GMS dependency from [perfmon]. Google Play services installation is no longer required to use [perfmon].
- [changed] Improved performance event dispatch wait time from 2 hours to 30 seconds.
The Kotlin extensions library transitively includes the updated firebase-performance library. The
Kotlin extensions library has no additional updates.
- [fixed] Upgraded protobuf dependency to the latest released version (#2158)
The Kotlin extensions library transitively includes the updated firebase-performance library. The
Kotlin extensions library has no additional updates.
Note: We recommend using [perfmon] Gradle plugin v1.3.4+ with this version of the [perfmon] SDK and above.
- [changed] Integrated with the
firebase-datatransportlibrary for performance log dispatch mechanism. - [fixed] Synchronized the access to fix a race condition that was causing a
NullPointerExceptionwhen making network requests. (#2096)
The Kotlin extensions library transitively includes the updated firebase-performance library. The
Kotlin extensions library has no additional updates.
- [fixed] Created lazy dependency on [firebase_remote_config] to avoid main thread contention issue. (#1810)
- [changed] Updated the protocol buffer dependency to the
protobuf-javaliteartifact to allow for backward compatibility. - [changed] Removed Guava dependency from the SDK to avoid symbol collision with any other SDKs.
- [changed] Removed proguarding for SDK; logcat messages will show original class paths for debugging.
- [changed] Improved build configurations and dependencies to reduce SDK size.
- [feature] The [firebase_perfmon] Android library with Kotlin extensions is now available. The
Kotlin extensions library transitively includes the base
firebase-performancelibrary. To learn more, visit the [perfmon] KTX documentation.
-
[changed] Updated the logging message for performance events.
-
[fixed] Silenced [firebase_remote_config] logging triggered by [firebase_perfmon]. (#403)
-
[fixed] Removed unnecessary logging. [perfmon] now only logs debug information if the
firebase_performance_logcat_enabledsetting istrueinAndroidManifest.xml. Visit the documentation for details about explicitly enabling debug logging. -
[changed] Migrated to use the [firebase_installations] service directly instead of using an indirect dependency via the Firebase Instance ID SDK.
{% include "docs/reference/android/client/_includes/_iid-indirect-dependency-solutions.html" %}
-
[changed] Updated dependency on the Firebase Instance ID library to v20.1.5, which is a step towards a direct dependency on the [firebase_installations] service in a future release.
This update to
firebase-iidv20.1.5 fixed the following GitHub issues: #1454, #1397, and #1339.
- [fixed] Fixed an NPE crash when calling
trace.stop(). (#1383)
- [fixed] Muted logcat logging for [firebase_perfmon] when
firebase_performance_logcat_enabledis not set or set to false. (#403) - [fixed] Skipped automatic performance event creation when
firebase_performance_collection_enabledis set to false. - [changed] Internal infrastructure improvements.
- [changed] Improved internal infrastructure to work better with [firebase_remote_config].
- [changed] Internal infrastructure improvements.
- [changed] Internal infrastructure improvements.
- [changed] Internal infrastructure improvements.
- [changed] Versioned to add nullability annotations to improve the Kotlin developer experience. No other changes.
- [fixed] Fixed an
IllegalStateExceptionthat was thrown when an activity with hardware acceleration disabled was stopped.
- [fixed] Fixed a
Null Pointer Exceptionthat was being observed on certain Android 7.0 devices. - [fixed] Updates to make [perfmon] work better with the latest version of [firebase_remote_config].
- [removed] Removed the deprecated counter API. Use metrics API going forward.
- [fixed] Fixed a bug that was causing apps using multiple processses to throw an
IllegalStateExceptionin the non-main processes.
- [fixed] Fixed a bug that was causing a
NoClassDefFoundErrorto be thrown which resulted in intermittent app crashes. - [fixed] Updates to make [perfmon] work better with the latest version of [firebase_remote_config].
- [changed] [firebase_perfmon] no longer depends on [firebase_analytics].
- [fixed] Bug fixes.
- [fixed] SDK size is now smaller.
- [feature] Introduces the Sessions feature, which gives developers access to actionable insights about data captured using [perfmon].
- [fixed] Minor bug fixes and improvements.
- [fixed] Fixed a
SecurityExceptioncrash on certain devices that do not have Google Play Services on them.