本文主要解决以下几个问题: 我们都知道Android的刷新频率是60帧/秒,这是不是意味着每隔16ms就会调用一次onDraw方法? 如果界面不需要重绘,那么16ms到后还会刷新屏幕吗? 我们调用invalidate()之后会马上进行屏幕刷新吗? 我们说丢帧是因为主线程做了耗时操作,为什么主线程做了耗时操作就会引起丢帧? 如果在屏幕快要刷新的时候才去OnDraw()绘制,会丢帧吗? 好了,带着以上问题,我们进入源码来找寻答案。 一、屏幕绘制流程 屏幕绘制机制的基本原理可以概括如下: 整个屏幕绘制的基本流程是: 应用向系统服务申请buffer 系统服务返回buff