JankStats

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] 对象。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 作者 / Chet Haase, Android 开发技术推广工程师 卡顿 (名词): 指应用性能糟糕,可能导致丢...
    谷歌开发者阅读 2,849评论 0 1
  • Android 8.0 功能和 API API 级别:27Android 8.0 为用户和开发者引入多种新功能。本...
    icechao阅读 4,705评论 0 1
  • Java继承关系初始化顺序 父类的静态变量-->父类的静态代码块-->子类的静态变量-->子类的静态代码快-->父...
    第六象限阅读 6,516评论 0 9
  • 欢迎关注公众号“Tim在路上” 1.听说你对JVM有点研究,讲一讲JVM的内存模型吧(我说虚拟机栈,本地方法栈,程...
    Tim在路上阅读 9,194评论 4 91
  • RabbitMQ 主要处理的问题 限流(削峰) 解耦 异步 RabbitMq 常用的交换器类型 fanout (分...
    布衣码农阅读 9,598评论 0 0

友情链接更多精彩内容