这个问题在这里已经有了答案 :
应用程序可能在其主线程上做了太多工作 21 个答案
6年前关闭。
我安装了最新版本SDK (API 16)并获得了最新的 ADT。我现在在 logcat 中看到这些消息,我很确定,我以前从未见过。有人对此有任何想法吗?
SDK (API 16)
06-29 23:11:17.796:I/Choreographer(691):跳过 647 帧!应用程序可能在其主线程上做了太多工作。
我进行了搜索,发现了这个链接:http: //developer.android.com/reference/android/view/Choreographer.html。这是 API 16 中引入的一个新类。
我需要知道如何确定我的应用程序可能正在做哪些“太多工作”,因为我的所有处理都是在AsyncTasks 中完成的。
AsyncTask
Choreographer 允许应用程序将自己连接到 vsync,并适当地计时以提高性能。
Android 视图动画在内部使用 Choreographer 的目的相同:正确计时动画并可能提高性能。
由于 Choreographer 被告知每个 vsync 事件,因此它可以判断 Choreographer.post* api 传递的 Runnable 之一是否没有在一帧的时间内完成,从而导致帧被跳过。
据我了解,Choreographer 只能检测到跳帧。它无法说明为什么会发生这种情况。
消息“应用程序可能在其主线程上做的工作过多。” 可能会产生误导。