使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

指标

  
跟踪和报告应用的各种运行时指标
最近更新时间 稳定版 候选版本 Beta 版 Alpha 版
2022 年 7 月 27 日 - - - 1.0.0-alpha03

声明依赖项

如需添加 Metrics 的依赖项,您必须将 Google Maven 代码库添加到项目中。如需了解详情,请参阅 Google Maven 代码库

在应用或模块的 build.gradle 文件中添加所需工件的依赖项:

Groovy

dependencies {
    implementation "androidx.metrics:metrics-performance:1.0.0-alpha03"
}

Kotlin

dependencies {
    implementation("androidx.metrics:metrics-performance:1.0.0-alpha03")
}

如需详细了解依赖项,请参阅添加 build 依赖项

反馈

您的反馈将帮助我们改进 Jetpack。如果您发现了新问题,或对此库的改进有自己的见解,请告诉我们。创建新问题前,请先查看此库中的现有问题。您可以点击星标按钮,为现有问题投票。

创建新问题

如需了解详情,请参阅问题跟踪器文档

版本 1.0.0

版本 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 中的方法和参数名称,以使这些调用的结果更清晰。(I56da5b/233421985
  • 添加了跟踪分配情况的基准测试,消除了与状态管理和报告相关的一些内部分配。请注意,已传递给监听器的 FrameData 现被视为易失的;该结构将在下一帧中重复使用,并且只有在监听器返回之前数据才是可靠的。
  • JankStats 的构造函数中移除了执行器;现在,在接收内部数据的任何线程上都会调用监听器。(I12743)

bug 修复

  • 修复了因重复移除 OnFrameMetricsAvailableListener 而导致的崩溃(I44094b/239457413
  • 返回到在队列前发布 OnPreDrawListener 消息的原始逻辑,以实现更一致且可预测的帧时间。(I05a43b/233358407
  • 已修复 ConcurrentModificationException bug:此错误发生时监听器委托列表在被修改的同时进行迭代以发送每帧数据。(Ib7693b/236612357

版本 1.0.0-alpha02

2022 年 6 月 29 日

发布了 androidx.metrics:metrics-performance:1.0.0-alpha02版本 1.0.0-alpha02 中包含这些提交

API 变更

bug 修复

版本 1.0.0-alpha01

2022 年 2 月 9 日

发布了 androidx.metrics:metrics-performance:1.0.0-alpha01版本 1.0.0-alpha01 中包含这些提交内容

新功能

  • JankStats 库提供了在运行时您的应用中检测和接收回调的功能,这有助于发现实际性能问题。
  • JankStats 与 API 结合使用,使您能够轻松注入有关界面状态的信息,并跟踪和报告每帧性能,让开发者了解的不是应用是否存在性能问题,而是发生性能问题的时间和原因。