指标
最新更新 | 稳定版 | 候选版本 | Beta 版 | Alpha 版 |
---|---|---|---|---|
2025 年 3 月 12 日 | - | - | 1.0.0-beta02 | - |
声明依赖项
要添加对 Metrics 的依赖项,您必须将 Google Maven 代码库添加到项目中。如需了解详情,请阅读Google 的 Maven 代码库。
在应用或模块的 build.gradle
文件中添加所需工件的依赖项
Groovy
dependencies { implementation "androidx.metrics:metrics-performance:1.0.0-beta02" }
Kotlin
dependencies { implementation("androidx.metrics:metrics-performance:1.0.0-beta02") }
如需详细了解依赖项,请参阅添加构建依赖项。
反馈
您的反馈有助于改进 Jetpack。如果您发现新问题或有改进此库的建议,请告诉我们。在创建新问题之前,请先查看此库中现有问题。您可以通过点击星形按钮为现有问题投票。
如需了解详情,请参阅问题跟踪器文档。
版本 1.0.0
版本 1.0.0-beta02
2025 年 3 月 12 日
androidx.metrics:metrics-performance:1.0.0-beta02
已发布。版本 1.0.0-beta02 包含这些提交。
Bug 修复
- 修复崩溃问题
DelegatingFrameMetricsListener cannot be cast...
(Id891c, b/311218678)。
版本 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
现在更准确,API 31 上还有新的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
对象现在每帧都会被重复使用,因此在该回调期间,该对象中的数据必须复制并缓存到其他位置,因为一旦监听器返回,该对象就应该被视为已过时。还有各种 bug 修复,包括一些并发问题。
最后,修复了重复使用
FrameData
(如上所述)的问题,这意味着由于帧指标传递,现在每帧的分配为零。之前没有太多分配,但新方法意味着您可以使用JankStats
,而不会在应用中产生任何每帧 GC 开销。
API 变更
- 更新了
PerformanceMetricsState
中的方法和参数名称,以使这些调用的结果更清晰。(I56da5, b/233421985) - 添加了基准测试以跟踪分配,并消除了一些与状态管理和报告相关的内部分配。请注意,传递给监听器的
FrameData
现在被认为是易失的;该结构将在下一帧中重复使用,并且数据仅在监听器返回之前可靠。 - 从
JankStats
的构造函数中移除了 Executor;监听器现在在收到内部数据的任何线程上被调用。(I12743)
Bug 修复
- 修复了由于双重移除
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)
Bug 修复
- 修复了时序问题,即在处理旧状态正确的帧之前,状态可能会被新值替换 (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
将一个易于注入界面状态信息的 API 与跟踪和报告每帧性能的功能相结合,让开发者不仅能了解应用是否存在性能问题,还能了解何时以及为何出现问题。