联系
我们
投稿
反馈
评论 返回
顶部

内容字号: 默认 大号超大号

段落设置: 段首缩进取消段首缩进

字体设置:切换到微软雅黑切换到宋体

在 Android Studio 中使用 CPU 性能分析器锁定界面卡顿

2022-07-23 17:18 出处:互联网 人气: 评论(
饶客营销软件站 界首市房产局 古诗改编的歌曲 彩钻怎么点亮

Android Studio Bumblebee (2021.1.1) 稳定版

声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。

此外,如详细分析窗格中的主线程状态所示,大量线程所处的状态是正在休眠。

由于应用进程运行时间超出预期并且错过了预期帧时长的截止时间,被视为卡顿的帧。从应用开发者的角度来看,可操作帧通常是红色帧。

Android 的用户界面渲染是从应用中 "生成" 一帧然后显示在屏幕上,为了确保用户能够获得顺畅的交互体验,您的应用需要根据设备的刷新率完成每一帧的 "生成"。例如,Pixel 6 设备支持每秒最多渲染 90 帧,这就意味着应用的每一帧任务都要在 1000/90 = 11ms 内完成,如果没有,Android 框架就会将这一帧的渲染跳过,用户就会从视觉上感受到界面运行缓慢,我们称这种情况为 "卡顿"。

https://developer.android.google.cn/topic/performance/benchmarking/microbenchmark-overview

  • 绿色帧

    不卡顿的正常帧

  • SurfaceFlinger

    发布于:山西省

    https://developer.android.google.cn/studio/profile#profileable-apps

  • 注意: 本文所展示的是 Android Studio Chipmunk 更新后的卡顿检测界面,使用 Android 12 (API 级别 31) 或更高版本的真机或模拟器。

    接下来,我们来找出卡顿帧出现的原因。

    责任编辑:

    检查卡顿帧

    https://developer.android.google.cn/studio/profile/jank-detection#jank-detection-android-11

    ){
  • 文档

    原标题:在 Android Studio 中使用 CPU 性能分析器锁定界面卡顿

    https://developer.android.google.cn/reference/androidx/tracing/Trace

  • 红色帧

    https://github.com/android/performance-samples/blob/main/JankStatsSample/app/src/main/java/com/example/jankstats/JankyView.kt#L36

    注意: 系统轨迹显示的是由平台代码和属于应用的库捕获的多个部分,通常没有足够的信息。添加自定义轨迹能够改善这样的情况,添加的方法之一是使用 AndroidX Tracing库中的 trace(“MySection”) { /* this will be in the trace */ }

    ) {(e: Exception) {

    四个轨迹:

    阅读 ()

    { delay = {

  • 黄色帧

    https://developer.android.google.cn/studio/profile/jank-detection#jank-detection-android-11

  • AndroidX Tracing

    从实时交互记录轨迹

    https://github.com/android/performance-samples/tree/main/JankStatsSample

    被视为缓冲区填充的帧,这表示应用会在呈现前一帧之前不断将帧发送到系统。这通常是前一帧卡顿所致,应用开发者面对黄帧无能为力。

    https://perfetto.dev/docs/data-sources/frametimeline#janks-explained

    ){

    https://github.com/android/performance-samples/blob/main/JankStatsSample/app/src/main/java/com/example/jankstats/tools/simulateJank.kt#L29

    2. 如果您看一下应用主线程相应的轨迹窗格,可以看到大量的时间花费在 "View#draw" 中。

    注意: 虽然在这个示例中调用 Thread.sleep明显有问题,但实际上,在优化实际应用代码时,您将面临更困难的决定。Microbenchmark 开发库有助于衡量所做的更改能否达成预期效果:

    注意: 虽然可以分析 "可调试应用" (debuggable app),但推荐做法是分析 "可分析应用" (profileable app),因为分析 "可调试应用" 会导致性能开销显著增加。更多详细信息,请参阅关于可分析应用的文档:

    您还可以在 Android Studio 的右侧窗格中查看详细分析。

    在 Android Studio 中使用 CPU 性能分析器锁定界面卡顿

    2022-07-20 17:42 来源: 科技圈主持人

  • 分享给小伙伴们:
    本文标签:

    更多文章

    相关文章

  • 蛮便宜
  • 抠门网
  • Copyright © 2002-2014 版权所有