在View.draw(Canvas, ViewGroup, long)中会判断绘制类型是否为软件类型,或者当前View是否不支持硬件加速绘制,若这两个条件有一个满足就会依次执行buildDrawingCache(),getDrawingCache()和draw(Canvas),把所有绘制缓存数据保存到一个bitmap中,然后由Canvas.drawBitmap()负责把数据进行传递渲染;若两个条件都不满足,则会依次执行updateDisplayListIfDirty()和draw(Canvas)将得到的DisplayList数据保存到View的绘制节点RenderNode中,然后交给DisplayListCanvas.drawRenderNode()处理渲染操作。
参照: