0

SOF上没有太多关于它的问题:

Android - 如何衡量 ListView 和其他视图的性能?

有一个使用Hierarchy Viewer的解决方案。但我只想.ListView

此外,层次结构查看器文档指出:

Hierarchy Viewer 只能连接到运行 Android 系统开发者版本的设备

而且那个控制台没有检测到我的设备。而且我不知道开发人员版本是什么。

我在某处读到模拟器是一种开发人员版本,但它们可能不准确

另外,当我滚动时,我在日志猫中发现了这个ListView

05-04 11:14:24.697: I/SurfaceTextureClient(20849): [STC::queueBuffer] (this:0x5e74b878) fps:0.39 , dur:17832.35, max:17194.94, min:17.54

那是与我的 ListView 相关的FPS吗?

因为它不同于0.3 to 60.1

AFAIK 60 是您获得的最大值。

4

1 回答 1

1

您需要继承一个 ListView 并覆盖它的 onDraw(),这里有一个示例代码,应该可以开箱即用:

public class FPSListView extends ListView
{
    private Toast fpsToast;
    private long currentTime;
    private long prevTime;

    public FPSListView(Context context){
        super(context);
        fpsToast = Toast.makeText(context, "", Toast.LENGTH_SHORT);
    }

    public FPSListView(Context context, AttributeSet attrs){
        super(context, attrs);
        fpsToast = Toast.makeText(context, "", Toast.LENGTH_SHORT);
    }

    @Override
    protected void onDraw(Canvas canvas) {          
        super.onDraw(canvas);

        currentTime = SystemClock.currentThreadTimeMillis();
        long deltaTime = currentTime - prevTime;
        long fps = 1000/deltaTime;
        fpsToast.setText("FPS: " + fps);
        fpsToast.show();
        prevTime = currentTime;
    }
}
于 2013-10-12T06:49:23.800 回答