指标
最新更新 | 稳定版 | 候选发布版 | Beta 版 | Alpha 版 |
---|---|---|---|---|
2024 年 1 月 10 日 | - | - | 1.0.0-beta01 | - |
声明依赖项
要添加对 Metrics 的依赖项,您必须将 Google Maven 存储库添加到您的项目中。阅读 Google 的 Maven 存储库 以了解更多信息。
在应用程序或模块的 build.gradle
文件中添加您需要的工件的依赖项
Groovy
dependencies { implementation "androidx.metrics:metrics-performance:1.0.0-beta01" }
Kotlin
dependencies { implementation("androidx.metrics:metrics-performance:1.0.0-beta01") }
有关依赖项的更多信息,请参见 添加构建依赖项。
反馈
您的反馈有助于改进 Jetpack。如果您发现新问题或对改进此库有任何想法,请告诉我们。在创建新问题之前,请查看此库中 现有问题。您可以通过单击星形按钮为现有问题添加您的投票。
有关更多信息,请参见 问题跟踪器文档。
版本 1.0.0
版本 1.0.0-beta01
2024 年 1 月 10 日
此库的 API 和功能已稳定了一段时间。此版本只是将库推送到 beta 版。
androidx.metrics:metrics-performance:1.0.0-beta01
已发布。 版本 1.0.0-beta01 包含这些提交。
版本 1.0.0-alpha04
2023 年 4 月 5 日
此版本将 JankStats 更新为最新的修复程序,其中包括更准确和全面的计时信息。
androidx.metrics:metrics-performance:1.0.0-alpha04
已发布。 版本 1.0.0-alpha04 包含这些提交。
API 更改
cpuDuration
现在更准确,在 API31 上还有新的totalDuration
(I59ce8, b/243694893)
版本 1.0.0-alpha03
2022 年 7 月 27 日
androidx.metrics:metrics-performance:1.0.0-alpha03
已发布。 版本 1.0.0-alpha03 包含这些提交。
此版本包含了一些细微的 API 改进,以使库更接近 beta 版本。其中一项 API 更改是从用于创建
JankStats
对象的createAndTrack()
工厂方法中删除了 Executor。这会影响OnFrameListener
回调,因为现在该监听器是在将每帧数据传递给JankStats
的线程上调用的(在 API 24 之前的版本中是主线程/UI 线程,在 API 24 及更高版本中是FrameMetrics
线程)。此外,现在每帧都重用了传递给监听器的FrameData
对象,因此必须在回调期间将该对象中的数据复制并缓存到其他位置,因为该对象在监听器返回后应被视为已过时。还修复了各种错误,包括一些并发问题。
最后,重用
FrameData
的修复(如上所述)意味着现在每帧由于帧指标传递而产生的分配为零。以前分配并不多,但新方法意味着您可以使用JankStats
,而不会在应用程序中产生任何每帧 GC 负担。
API 更改
- 更新了
PerformanceMetricsState
中的方法和参数名称,以使这些调用结果更清晰。(I56da5,b/233421985) - 添加了基准测试以跟踪分配,消除了与状态管理和报告相关的某些内部分配。请注意,现在传递给监听器的
FrameData
被视为易变的;该结构将被重用于下一帧,并且数据仅在监听器返回之前才可靠。 - 从
JankStats
的构造函数中删除了 Executor;现在监听器将在接收内部数据的任何线程上被调用。(I12743)
错误修复
- 修复了由于
OnFrameMetricsAvailableListener
被重复移除而导致的崩溃。(I44094,b/239457413) - 返回到将
OnPreDrawListener
消息发布到队列前端的原始逻辑,以实现更一致和可预测的帧计时。(I05a43,b/233358407) - 修复了在同时修改监听器委托列表并遍历该列表以发送每帧数据时发生的
ConcurrentModificationException
错误。(Ib7693,b/236612357)
版本 1.0.0-alpha02
2022 年 6 月 29 日
androidx.metrics:metrics-performance:1.0.0-alpha02
已发布。 版本 1.0.0-alpha02 包含这些提交。
API 更改
- 将
MetricsStateHolder
重命名为 Holder(在PerformanceMetricsState
中):(I5a4d9,b/226565716,b/213499234)
错误修复
- 修复了在帧处理完毕之前,状态可能会被新的值替换,而旧状态本来是正确的计时问题 (aosp/2061892,b/213499234)
- 修复了在添加/删除监听器时发生的并发修改异常 (aosp/2092714,b/213499234)
- 使 startTime 计算更加准确 (aosp/2027704,b/213245198)
- 修复了
FrameData.equals()
实现中的错误 (aosp/2025866,b/218296544)
版本 1.0.0-alpha01
2022 年 2 月 9 日
androidx.metrics:metrics-performance:1.0.0-alpha01
已发布。 版本 1.0.0-alpha01 包含这些提交。
新功能
JankStats
库提供功能,以便在应用程序运行时进行检测并接收回调,这有助于发现实际的性能问题。JankStats
结合了使注入有关 UI 状态的信息变得容易的 API,以及跟踪和报告每帧性能的功能,使开发人员能够了解应用程序是否存在性能问题,以及何时出现以及原因。