1、背景需求
我们在进行布局优化的时候需要查看下页面的绘制耗时问题,在Hierarchy Viewer 停止维护后,Google 官方推荐使用
window.addOnFrameMetricsAvailableListener()的方式获取。
2、window.addOnFrameMetricsAvailableListener()的使用方法
在activity的onStart()方法中添加监听即可,如下
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
getWindow().addOnFrameMetricsAvailableListener(new Window.OnFrameMetricsAvailableListener() {
List<Integer> frameDurations = new ArrayList<>(1000);
@Override
public void onFrameMetricsAvailable(Window window, FrameMetrics frameMetrics, int dropCountSinceLastInvocation) {
frameDurations.add((int) (frameMetrics.getMetric(TOTAL_DURATION) / 1000000));
//这里获取了1000帧的数据
if (frameDurations.size() == 1000) {
getWindow().removeOnFrameMetricsAvailableListener(this);
Log.i(Arrays.toString(frameDurations.toArray()) + "aaa");
}
}
}, new Handler(Looper.getMainLooper()));
}