- [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.