小编典典

Logcat中Choreographer消息的含义[重复]

all

这个问题在这里已经有了答案

应用程序可能在其主线程上做了太多工作 21 个答案

6年前关闭。

我安装了最新版本SDK (API 16)并获得了最新的 ADT。我现在在 logcat 中看到这些消息,我很确定,我以前从未见过。有人对此有任何想法吗?

06-29 23:11:17.796:I/Choreographer(691):跳过 647 帧!应用程序可能在其主线程上做了太多工作。

我进行了搜索,发现了这个链接:http:
//developer.android.com/reference/android/view/Choreographer.html。这是
API 16 中引入的一个新类。

我需要知道如何确定我的应用程序可能正在做哪些“太多工作”,因为我的所有处理都是在AsyncTasks 中完成的。


阅读 67

收藏
2022-07-08

共1个答案

小编典典

Choreographer 允许应用程序将自己连接到 vsync,并适当地计时以提高性能。

Android 视图动画在内部使用 Choreographer 的目的相同:正确计时动画并可能提高性能。

由于 Choreographer 被告知每个 vsync 事件,因此它可以判断 Choreographer.post* api 传递的 Runnable
之一是否没有在一帧的时间内完成,从而导致帧被跳过。

据我了解,Choreographer 只能检测到跳帧。它无法说明为什么会发生这种情况。

消息“应用程序可能在其主线程上做的工作过多。” 可能会产生误导。

2022-07-08