指标
最近更新时间 | 稳定版 | 候选版 | 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") }
如需详细了解依赖项,请参阅添加 build 依赖项。
反馈
您的反馈将帮助我们改进 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 中包含这些提交内容。
随着库越来越接近 Beta 版,此版本包含一些细微的 API 优化。其中一项 API 变更是从用于创建
JankStats
对象的createAndTrack()
工厂方法中移除执行器。这对OnFrameListener
回调有影响,因为把每帧数据交付到JankStats
的线程(低于 API 24 的版本上的主/界面线程,以及 API 24 及更高级别的版本上的FrameMetrics
线程)现在会调用监听器。此外,已传递给监听器的FrameData
对象现已会在每一帧中重复使用,因此在回调期间,必须复制该对象中的数据并将其缓存在其他位置,因为一旦监听器返回,该对象就会被视作过时。此外,还修复了各种 bug,包括一些并发问题。
最后,为了重复使用
FrameData
(上面已提及)而进行的修复意味由于帧指标传递,现在每帧的分配数为零。之前没有太多分配,但新的方法意味着您可以使用JankStats
,而不会产生任何每帧 GC 开销。
API 变更
- 更新了
PerformanceMetricsState
中的方法和参数名称,以使这些调用的结果更清晰。(I56da5、b/233421985) - 添加了跟踪分配情况的基准测试,消除了与状态管理和报告相关的一些内部分配。请注意,已传递给监听器的
FrameData
现被视为易失的;该结构将在下一帧中重复使用,并且只有在监听器返回之前数据才是可靠的。 - 从
JankStats
的构造函数中移除了执行器;现在,在接收内部数据的任何线程上都会调用监听器。(I12743)
bug 修复
- 修复了因重复移除
OnFrameMetricsAvailableListener
而导致的崩溃(I44094、b/239457413) - 返回到在队列前发布
OnPreDrawListener
消息的原始逻辑,以实现更一致且可预测的帧时间。(I05a43、b/233358407) - 已修复
ConcurrentModificationException
bug:此错误发生时监听器委托列表在被修改的同时进行迭代以发送每帧数据。(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()
实现中的 bug(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 结合使用,使您能够轻松注入有关界面状态的信息,并跟踪和报告每帧性能,让开发者了解的不是应用是否存在性能问题,而是发生性能问题的时间和原因。