Android掉帧分析
1,概述
掉帧,即每个vsync信号到来时,应用无法送帧(doFrame太长)或者SurfaceFinger无法合成帧,导致对应进程视图缓冲变0,出现的抖动现象。此时,便需要应用开发进行性能分析,定位问题根源。
2,基本概念
分析掉帧之前,必须得知道几个基本概念,包括cpu状态,SurfaceFinger,SurfaceFinger缓冲区,RenderThread
1,进程cpu状态
此处我们以Settings滑动场景来抓取trace,图中框住的部分即process state,
大致是以上5个,
1,Sleeping,说明当前进程没有得到调度,通常出现在binder场景,即没有执行任何逻辑代码,回调等场景。
2,Running,这是process得到调度的状态,此时的running时长即应用逻辑执行时长,
3,Runnable,即将调度到running前的一个状态,如果此状态太长,说明系统正在执行优先级更高的任务,
4,Uniterr