ui卡顿面试问题讲解

一、UI卡顿原理

60fps ---> 16ms

60fps:60帧

16ms:Android每隔16ms发出信号触发对UI进行渲染

overdraw(过多绘制)

某一像素在同一时间内被绘制了很多次.经常出现在多层次的UI结构里面.

UI布局中有大量重叠部分

二、UI卡顿的原因分析(主要根源来自于Android的渲染性能)

1.人为在UI线程中做轻微耗时操作,导致UI卡顿。

2.布局Layout过于复杂,无法在16ms内无法完成渲染。

3.同一时间动画执行的次数过多。

4.View的过度绘制,导致了某些像素在同一帧时间内被绘制多次,从而使CPU或GPU负载过重。

5.View频繁绘制出触发measure,layout.导致measure,layout累计耗时过多及整个View频繁的重新渲染。

6.内存频繁触发GC过多,导致暂时阻塞渲染操作。

7.冗余资源及逻辑等导致加载和执行缓慢。

8.ANR(在主线程中做了耗时操作) UI卡顿=轻量版的ANR

三、UI卡顿的优化

1.布局优化

2.列表及Adapter优化

3.背景和图片等内存分配优化

4.避免ANR

你可能感兴趣的:(ui卡顿面试问题讲解)