JankStats

作者: ____Rainbow | 来源:发表于2022-09-23 16:57 被阅读0次

    JankStats 是首个专为在用户设备上检测及报告应用的性能问题而构建的 AndroidX 库。

    JankStats 是占用空间相对较小的 API,主要有三大目标: 捕获每帧的性能信息、在用户设备 (不仅是开发设备) 上运行、以及在应用出现性能问题时启用检测,并报告所发生的情况。

    每帧性能

    Android 平台已提供多种方法,用于获取帧性能数据。例如,从 API 24 开始就可以使用 FrameMetrics 获取相关数据,后续多个版本也在进一步丰富该功能,以便为您提供更多详细信息。
    因此,如果您想确保自己的帧持续时间逻辑适用于所有版本,就需要在不同的 API 版本中实现不同的测试和报告机制。现在,您可以使用统一的 JankStats API 来实现这些功能。除此之外,它还提供了其他。
    JankStats 通过提供单一 API 来报告每帧的时间,从而简化您的工作,并会在内部委派适当机制 (比如 API 24 以上会委派给 FrameMetrics)。您不必关心这些数据的来源,只需让 JankStats 告诉您完成特定事项花费的时间,然后便可在回调中获取相关信息。

    //frameStartNanos 帧开始时间
    //frameDurationUiNanos 在此帧的UI部分花费的时间(以纳秒为单位)。
    //frameDurationCpuNanos 在此帧的CPU部分花费的时间(以纳秒为单位)
    //isJank 帧是否应被视为卡顿
    //states 一组字符串对,其中包含呈现帧期间应用状态的相关信息
    I/JankStatsSample: FrameData(frameStartNanos=23391606297846, frameDurationUiNanos=130885528, frameDurationCpuNanos=132800944, isJank=true, states=[RecyclerView: Settling])
    

    管理状态

    您可能需要调用其他 API 来自定义 JankStats,例如,注入应用状态信息,使帧数据更有用。
    此静态方法可检索给定视图层次结构的当前 [PerformanceMetricsState] 对象。

    相关文章

      网友评论

        本文标题:JankStats

        本文链接:https://www.haomeiwen.com/subject/xryportx.html