This question already has answers here:
The application may be doing too much work on its main thread

(18个回答)


5年前关闭。




我安装了最新版本的SDK (API 16)并获得了最新的ADT。我现在可以肯定在以前的日志中看到了这些消息。有人对此有想法吗?



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

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

最佳答案

Choreographer允许应用程序将其自身连接到vsync,并适当安排时间以提高性能。
Android View 动画在内部使用Choreographer来实现相同的目的:正确地设置动画时间并可能改善性能。
由于Choreographer被告知每个vsync事件,因此它可以判断Choreographer.post * api传递的Runnable之一是否在一帧时间内未完成,从而导致跳过帧。
以我的理解,编舞只能检测到跳帧。它无法告诉您为什么会发生这种情况。
消息“应用程序可能在其主线程上做过多的工作”。可能会产生误导。

10-04 23:41